1. 13 Nov, 2020 1 commit
    • shiyu1994's avatar
      Optimization of row-wise histogram construction (#3522) · 0655d67c
      shiyu1994 authored
      
      
      * store without offset in multi_val_dense_bin
      
      * fix offset bug
      
      * add comment for offset
      
      * add comment for bin type selection
      
      * faster operations for offset
      
      * keep most freq bin in histogram for multi val dense
      
      * use original feature iterators
      
      * consider 9 cases (3 x 3) for multi val bin construction
      
      * fix dense bin setting
      
      * fix bin data in multi val group
      
      * fix offset of the first feature histogram
      
      * use float hist buf
      
      * avx in histogram construction
      
      * use avx for hist construction without prefetch
      
      * vectorize bin extraction
      
      * use only 128 vec
      
      * use avx2
      
      * use vectorization for sparse row wise
      
      * add bit size for multi val dense bin
      
      * float with no vectorization
      
      * change multithreading strategy to dynamic
      
      * remove intrinsic header
      
      * fix dense multi val col copy
      
      * remove bit size
      
      * use large enough block size when the bin number is large
      
      * calc min block size by sparsity
      
      * rescale gradients
      
      * rollback gradients scaling
      
      * single precision histogram buffer as an option
      
      * add float hist buffer with thread buffer
      
      * fix setting zero in hist data
      
      * fix hist begin pointer in tree learners
      
      * remove debug logs
      
      * remove omp simd
      
      * update Makevars of R-package
      
      * fix feature group binary storing
      
      * two row wise for double hist buffer
      
      * add subfeature for two row wise
      
      * remove useless code and fix two row wise
      
      * refactor code
      
      * grouping the dense feature groups can get sparse multi val bin
      
      * clean format problems
      
      * one thread for two blocks in sep row wise
      
      * use ordered gradients for sep row wise
      
      * fix grad ptr
      
      * ordered grad with combined block for sep row wise
      
      * fix block threading
      
      * use the same min block size
      
      * rollback share min block size
      
      * remove logs
      
      * Update src/io/dataset.cpp
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      
      * fix parameter description
      
      * remove sep_row_wise
      
      * remove check codes
      
      * add check for empty multi val bin
      
      * fix lint error
      
      * rollback changes in config.h
      
      * Apply suggestions from code review
      Co-authored-by: default avatarUbuntu <shiyu@gbdt-04.ren3kv4wanvufliwrpy4k03lsf.xx.internal.cloudapp.net>
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      0655d67c
  2. 18 Oct, 2020 1 commit
    • James Lamb's avatar
      [ci] [R-package] Fix memory leaks found by valgrind (#3443) · 81d76113
      James Lamb authored
      
      
      * fix int64 write error
      
      * attempt
      
      * [WIP] [ci] [R-package] Add CI job that runs valgrind tests
      
      * update all-successful
      
      * install
      
      * executable
      
      * fix redirect stuff
      
      * Apply suggestions from code review
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      
      * more flags
      
      * add mc to msvc proj
      
      * fix memory leak in mc
      
      * Update monotone_constraints.hpp
      
      * Update r_package.yml
      
      * remove R_INT64_PTR
      
      * disable openmp
      
      * Update gbdt_model_text.cpp
      
      * Update gbdt_model_text.cpp
      
      * Apply suggestions from code review
      
      * try to free vector
      
      * free more memories.
      
      * Update src/boosting/gbdt_model_text.cpp
      
      * fix using
      
      * try the UNPROTECT(1);
      
      * fix a const pointer
      
      * fix Common
      
      * reduce UNPROTECT
      
      * remove UNPROTECT(1);
      
      * fix null handle
      
      * fix predictor
      
      * use NULL after free
      
      * fix a leaking in test
      
      * try more fixes
      
      * test the effect of tests
      
      * throw exception in Fatal
      
      * add test back
      
      * Apply suggestions from code review
      
      * commet some tests
      
      * Apply suggestions from code review
      
      * Apply suggestions from code review
      
      * trying to comment out tests
      
      * Update openmp_wrapper.h
      
      * Apply suggestions from code review
      
      * Update configure
      
      * Update configure.ac
      
      * trying to uncomment
      
      * more comments
      
      * more uncommenting
      
      * more uncommenting
      
      * fix comment
      
      * more uncommenting
      
      * uncomment fully-commented out stuff
      
      * try uncommenting more dataset tests
      
      * uncommenting more tests
      
      * ok getting closer
      
      * more uncommenting
      
      * free dataset
      
      * skipping a test, more uncommenting
      
      * more skipping
      
      * re-enable OpenMP
      
      * allow on OpenMP thing
      
      * move valgrind to comment-only job
      
      * Apply suggestions from code review
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * changes from code review
      
      * Apply suggestions from code review
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * linting
      
      * issue comments too
      
      * remove issue_comment
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      81d76113
  3. 19 Jul, 2020 1 commit
    • Joan Fontanals's avatar
      Change locking strategy of Booster, allow for share and unique locks (#2760) · 1c35c3b9
      Joan Fontanals authored
      
      
      * Add capability to get possible max and min values for a model
      
      * Change implementation to have return value in tree.cpp, change naming to upper and lower bound, move implementation to gdbt.cpp
      
      * Update include/LightGBM/c_api.h
      Co-Authored-By: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Change iteration to avoid potential overflow, add bindings to R and Python and a basic test
      
      * Adjust test values
      
      * Consider const correctness and multithreading protection
      
      * Put everything possible as const
      
      * Include shared_mutex, for now as unique_lock
      
      * Update test values
      
      * Put everything possible as const
      
      * Include shared_mutex, for now as unique_lock
      
      * Make PredictSingleRow const and share the lock with other reading threads
      
      * Update test values
      
      * Add test to check that model is exactly the same in all platforms
      
      * Try to parse the model to get the expected values
      
      * Try to parse the model to get the expected values
      
      * Fix implementation, num_leaves can be lower than the leaf_value_ size
      
      * Do not check for num_leaves to be smaller than actual size and get back to test with hardcoded value
      
      * Change test order
      
      * Add gpu_use_dp option in test
      
      * Remove helper test method
      
      * Remove TODO
      
      * Add preprocessing option to compile with c++17
      
      * Update python-package/setup.py
      Co-Authored-By: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Remove unwanted changes
      
      * Move option
      
      * Fix problems introduced by conflict fix
      
      * Avoid switching to c++17 and use yamc mutex library to access shared lock functionality
      
      * Add extra yamc include
      
      * Change header order
      
      * some lint fix
      
      * change include order and remove some extra blank lines
      
      * Further fix lint issues
      
      * Update c_api.cpp
      
      * Further fix lint issues
      
      * Move yamc include files to a new yamc folder
      
      * Use standard unique_lock
      
      * Update windows/LightGBM.vcxproj
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      
      * Update windows/LightGBM.vcxproj.filters
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      
      * Update windows/LightGBM.vcxproj.filters
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Update windows/LightGBM.vcxproj.filters
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Update windows/LightGBM.vcxproj.filters
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Fix problems coming from merge conflict resolution
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      Co-authored-by: default avatarjoanfontanals <jfontanals@ntent.com>
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      1c35c3b9
  4. 01 Apr, 2020 1 commit
  5. 19 Mar, 2020 1 commit
  6. 08 Mar, 2020 1 commit
  7. 06 Mar, 2020 1 commit
  8. 05 Mar, 2020 1 commit
    • Guolin Ke's avatar
      speed up `FindBestThresholdFromHistogram` (#2867) · 77d92b7c
      Guolin Ke authored
      * speed up for const hessian
      
      * rename template
      
      * some refactorings
      
      * refine
      
      * refine
      
      * simplify codes
      
      * fix random in feature histogram
      
      * code refine
      
      * refine
      
      * try fix
      
      * make gcc happy
      
      * remove timer
      
      * rollback some changes
      
      * more templates
      
      * fix a bug
      
      * reduce the cost of timer
      
      * fix gpu
      
      * fix bug
      
      * fix gpu
      77d92b7c
  9. 01 Mar, 2020 1 commit
  10. 26 Feb, 2020 2 commits
  11. 03 Feb, 2020 1 commit
  12. 02 Feb, 2020 1 commit
    • Guolin Ke's avatar
      Support both row-wise and col-wise multi-threading (#2699) · 509c2e50
      Guolin Ke authored
      
      
      * commit
      
      * fix a bug
      
      * fix bug
      
      * reset to track changes
      
      * refine the auto choose logic
      
      * sort the time stats output
      
      * fix include
      
      * change  multi_val_bin_sparse_threshold
      
      * add cmake
      
      * add _mm_malloc and _mm_free for cross platform
      
      * fix cmake bug
      
      * timer for split
      
      * try to fix cmake
      
      * fix tests
      
      * refactor DataPartition::Split
      
      * fix test
      
      * typo
      
      * formating
      
      * Revert "formating"
      
      This reverts commit 5b8de4f7fb9d975ee23701d276a66d40ee6d4222.
      
      * add document
      
      * [R-package] Added tests on use of force_col_wise and force_row_wise in training (#2719)
      
      * naming
      
      * fix gpu code
      
      * Update include/LightGBM/bin.h
      Co-Authored-By: default avatarJames Lamb <jaylamb20@gmail.com>
      
      * Update src/treelearner/ocl/histogram16.cl
      
      * test: swap compilers for CI
      
      * fix omp
      
      * not avx2
      
      * no aligned for feature histogram
      
      * Revert "refactor DataPartition::Split"
      
      This reverts commit 256e6d9641ade966a1f54da1752e998a1149b6f8.
      
      * slightly refactor data partition
      
      * reduce the memory cost
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      509c2e50
  13. 30 Jan, 2020 1 commit
    • sbruch's avatar
      Implementation of XE_NDCG_MART for the ranking task (#2620) · 86530988
      sbruch authored
      * Implementation of XE_NDCG loss function for ranking.
      
      * Add citation
      
      * Check in example usage for xe_ndcg loss.
      
      * Seed the generator when a seed is provided in the config. Add unit-tests for xe_ndcg
      
      * Update documentation
      
      * Fix indentation
      
      * Address issues raised by reviewers.
      
      * Clean up include statements.
      
      * Fix issues raised by reviewers.
      
      * Regenerate parameters.rst
      
      * Add a note to explain that reproducing xe_ndcg results requires num_threads to be one.
      
      * Introduce objective_seed and use that in rank_xendcg instead of directly using seed
      
      * Change default value of objective_seed
      86530988
  14. 26 Sep, 2019 1 commit
    • Guolin Ke's avatar
      code refactoring: cost effective gradient boosting (#2407) · 70fc45b0
      Guolin Ke authored
      * refactoring
      
      * fix style
      
      * fix style
      
      * Update cost_effective_gradient_boosting.hpp
      
      * Update serial_tree_learner.cpp
      
      * Update serial_tree_learner.h
      
      * fix style
      
      * update vc project
      
      * Update cost_effective_gradient_boosting.hpp
      70fc45b0
  15. 08 May, 2019 1 commit
  16. 20 May, 2018 1 commit
    • Guolin Ke's avatar
      Refine config object (#1381) · dc699574
      Guolin Ke authored
      * [WIP] refine config
      
      * [wip] ready for the auto code generate
      
      * auto generate config codes
      
      * use with to open file
      
      * fix bug
      
      * fix pylint
      
      * fix bug
      
      * fix pylint
      
      * fix bugs.
      
      * tmp for failed test.
      
      * fix tests.
      
      * added nthreads alias
      
      * added new aliases from new config.h
      
      * fixed duplicated alias
      
      * refactored parameter_generator.py
      
      * added new aliases from config.h and removed remaining old names
      
      * fix bugs & some miss alias
      
      * added aliases
      
      * add more descriptions.
      
      * add comment.
      dc699574
  17. 26 Apr, 2018 1 commit
  18. 27 Feb, 2018 1 commit
  19. 12 Jan, 2018 1 commit
  20. 26 Oct, 2017 1 commit
    • wxchan's avatar
      fix protobuf on vs build (#1004) · 2b20569e
      wxchan authored
      * [optional] support protobuf
      
      * fix windows/LightGBM.vcxproj
      
      * add doc
      
      * fix doc
      
      * fix vs support (#2)
      
      * fix vs support
      
      * fix cmake
      2b20569e
  21. 20 Oct, 2017 1 commit
  22. 19 Oct, 2017 1 commit
  23. 29 Aug, 2017 1 commit
  24. 20 Aug, 2017 1 commit
  25. 24 Jul, 2017 1 commit
  26. 05 Jun, 2017 1 commit
    • Guolin Ke's avatar
      Compile R package by custom tool chain. (#584) · f98d75fc
      Guolin Ke authored
      * add R's library file to vs project and cmake.
      
      * support using dll built by vs.
      
      * better search for the library file.
      
      * remove mingw related doc .
      
      * update document.
      
      * Let R handle the library compile.
      
      * try fix build from github.
      
      * Update README.md
      
      * cleaner build.
      
      * fix the install problem in linux.
      
      * Update README.md
      f98d75fc
  27. 29 May, 2017 1 commit
    • cbecker's avatar
      Add prediction early stopping (#550) · 993bbd5f
      cbecker authored
      * Add early stopping for prediction
      
      * Fix GBDT if-else prediction with early stopping
      
      * Small C++ embelishments to early stopping API and functions
      
      * Fix early stopping efficiency issue by creating a singleton for no early stopping
      
      * Python improvements to early stopping API
      
      * Add assertion check for binary and multiclass prediction score length
      
      * Update vcxproj and vcxproj.filters with new early stopping files
      
      * Remove inline from PredictRaw(), the linker was not able to find it otherwise
      993bbd5f
  28. 03 May, 2017 1 commit
  29. 25 Apr, 2017 1 commit
  30. 17 Apr, 2017 1 commit
  31. 16 Apr, 2017 1 commit
    • Guolin Ke's avatar
      faster histogram sum up (#418) · 98c7c2a3
      Guolin Ke authored
      * some refactor.
      
      * two stage sum up to reduce sum up error.
      
      * add more two-stage sumup.
      
      * some refactor.
      
      * add alignment.
      
      * change name to aligned_allocator.
      
      * remove some useless sumup.
      
      * fix a warning.
      
      * add -march=native .
      
      * remove the padding of gradients.
      
      * no alignment.
      
      * fix test.
      
      * change KNumSumupGroup to 32768.
      
      * change gcc flags.
      98c7c2a3
  32. 06 Apr, 2017 1 commit
  33. 13 Mar, 2017 1 commit
  34. 01 Mar, 2017 2 commits
  35. 13 Dec, 2016 1 commit
  36. 07 Dec, 2016 1 commit
  37. 18 Nov, 2016 1 commit
    • Guolin Ke's avatar
      Refactor for RAII (#86) · 5442ed78
      Guolin Ke authored
      * RAII for utils, application and c_api(partical)
      
      * raii for class in include folder
      
      * raii for application and boosting
      
      * raii for dataset and dataset loader
      
      * raii for dense bin and parser
      
      * RAII refactor for almost all classes
      
      * RAII for c_api
      
      * clean code
      
      * refine repeated code
      
      * Decouple the "sigmoid" between objective and boosting.
      
      * change std::vector<bool> back to std::vector<char> due to concurrence problem
      
      * slight reduce some memory cost
      5442ed78
  38. 15 Nov, 2016 1 commit