1. 08 Dec, 2020 1 commit
    • Alberto Ferreira's avatar
      Fix model locale issue and improve model R/W performance. (#3405) · 792c9303
      Alberto Ferreira authored
      * Fix LightGBM models locale sensitivity and improve R/W performance.
      
      When Java is used, the default C++ locale is broken. This is true for
      Java providers that use the C API or even Python models that require JEP.
      
      This patch solves that issue making the model reads/writes insensitive
      to such settings.
      To achieve it, within the model read/write codebase:
       - C++ streams are imbued with the classic locale
       - Calls to functions that are dependent on the locale are replaced
       - The default locale is not changed!
      
      This approach means:
       - The user's locale is never tampered with, avoiding issues such as
          https://github.com/microsoft/LightGBM/issues/2979 with the previous
          approach https://github.com/microsoft/LightGBM/pull/2891
       - Datasets can still be read according the user's locale
       - The model file has a single format independent of locale
      
      Changes:
       - Add CommonC namespace which provides faster locale-independent versions of Common's methods
       - Model code makes conversions through CommonC
       - Cleanup unused Common methods
       - Performance improvements. Use fast libraries for locale-agnostic conversion:
         - value->string: https://github.com/fmtlib/fmt
         - string->double: https://github.com/lemire/fast_double_parser (10x
            faster double parsing according to their benchmark)
      
      Bugfixes:
       - https://github.com/microsoft/LightGBM/issues/2500
       - https://github.com/microsoft/LightGBM/issues/2890
       - https://github.com/ninia/jep/issues/205
      
       (as it is related to LGBM as well)
      
      * Align CommonC namespace
      
      * Add new external_libs/ to python setup
      
      * Try fast_double_parser fix #1
      
      Testing commit e09e5aad828bcb16bea7ed0ed8322e019112fdbe
      
      If it works it should fix more LGBM builds
      
      * CMake: Attempt to link fmt without explicit PUBLIC tag
      
      * Exclude external_libs from linting
      
      * Add exernal_libs to MANIFEST.in
      
      * Set dynamic linking option for fmt.
      
      * linting issues
      
      * Try to fix lint includes
      
      * Try to pass fPIC with static fmt lib
      
      * Try CMake P_I_C option with fmt library
      
      * [R-package] Add CMake support for R and CRAN
      
      * Cleanup CMakeLists
      
      * Try fmt hack to remove stdout
      
      * Switch to header-only mode
      
      * Add PRIVATE argument to target_link_libraries
      
      * use fmt in header-only mode
      
      * Remove CMakeLists comment
      
      * Change OpenMP to PUBLIC linking in Mac
      
      * Update fmt submodule to 7.1.2
      
      * Use fmt in header-only-mode
      
      * Remove fmt from CMakeLists.txt
      
      * Upgrade fast_double_parser to v0.2.0
      
      * Revert "Add PRIVATE argument to target_link_libraries"
      
      This reverts commit 3dd45dde7b92531b2530ab54522bb843c56227a7.
      
      * Address James Lamb's comments
      
      * Update R-package/.Rbuildignore
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      
      * Upgrade to fast_double_parser v0.3.0 - Solaris support
      
      * Use legacy code only in Solaris
      
      * Fix lint issues
      
      * Fix comment
      
      * Address StrikerRUS's comments (solaris ifdef).
      
      * Change header guards
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      792c9303
  2. 26 Nov, 2020 1 commit
  3. 17 Nov, 2020 1 commit
  4. 20 Sep, 2020 1 commit
    • Chip Kerchner's avatar
      [GPU] Add support for CUDA-based GPU build (#3160) · f7ad9457
      Chip Kerchner authored
      
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * Initial CUDA work
      
      * redirect log to python console (#3090)
      
      * redir log to python console
      
      * fix pylint
      
      * Apply suggestions from code review
      
      * Update basic.py
      
      * Apply suggestions from code review
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Update c_api.h
      
      * Apply suggestions from code review
      
      * Apply suggestions from code review
      
      * super-minor: better wording
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      Co-authored-by: default avatarStrikerRUS <nekit94-12@hotmail.com>
      
      * re-order includes (fixes #3132) (#3133)
      
      * Revert "re-order includes (fixes #3132) (#3133)" (#3153)
      
      This reverts commit 656d2676
      
      .
      
      * Missing change from previous rebase
      
      * Minor cleanup and removal of development scripts.
      
      * Only set gpu_use_dp on by default for CUDA. Other minor change.
      
      * Fix python lint indentation problem.
      
      * More python lint issues.
      
      * Big lint cleanup - more to come.
      
      * Another large lint cleanup - more to come.
      
      * Even more lint cleanup.
      
      * Minor cleanup so less differences in code.
      
      * Revert is_use_subset changes
      
      * Another rebase from master to fix recent conflicts.
      
      * More lint.
      
      * Simple code cleanup - add & remove blank lines, revert unneccessary format changes, remove added dead code.
      
      * Removed parameters added for CUDA and various bug fix.
      
      * Yet more lint and unneccessary changes.
      
      * Revert another change.
      
      * Removal of unneccessary code.
      
      * temporary appveyor.yml for building and testing
      
      * Remove return value in ReSize
      
      * Removal of unused variables.
      
      * Code cleanup from reviewers suggestions.
      
      * Removal of FIXME comments and unused defines.
      
      * More reviewers comments cleanup.
      
      * More reviewers comments cleanup.
      
      * More reviewers comments cleanup.
      
      * Fix config variables.
      
      * Attempt to fix check-docs failure
      
      * Update Paramster.rst for num_gpu
      
      * Removing test appveyor.yml
      
      * Add ƒCUDA_RESOLVE_DEVICE_SYMBOLS to libraries to fix linking issue.
      
      * Fixed handling of data elements less than 2K.
      
      * More reviewers comments cleanup.
      
      * Removal of TODO and fix printing of int64_t
      
      * Add cuda change for CI testing and remove cuda from device_type in python.
      
      * Missed one change form previous check-in
      
      * Removal AdditionConfig and fix settings.
      
      * Limit number of GPUs to one for now in CUDA.
      
      * Update Parameters.rst for previous check-in
      
      * Whitespace removal.
      
      * Cleanup unused code.
      
      * Changed uint/ushort/ulong to unsigned int/short/long to help Windows based CUDA compiler work.
      
      * Lint change from previous check-in.
      
      * Changes based on reviewers comments.
      
      * More reviewer comment changes.
      
      * Adding warning for is_sparse. Revert tmp_subset code. Only return FeatureGroupData if not is_multi_val_
      
      * Fix so that CUDA code will compile even if you enable the SCORE_T_USE_DOUBLE define.
      
      * Reviewer comment cleanup.
      
      * Replace warning with Log message. Removal of some of the USE_CUDA. Fix typo and removal of pragma once.
      
      * Remove PRINT debug for CUDA code.
      
      * Allow to use of multiple GPUs for CUDA.
      
      * More multi-GPUs enablement for CUDA.
      
      * More code cleanup based on reviews comments.
      
      * Update docs with latest config changes.
      Co-authored-by: default avatarGordon Fossum <fossum@us.ibm.com>
      Co-authored-by: default avatarChipKerchner <ckerchne@linux.vnet.ibm.com>
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      Co-authored-by: default avatarStrikerRUS <nekit94-12@hotmail.com>
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      f7ad9457
  5. 14 Sep, 2020 1 commit
    • Nikita Titov's avatar
      [ci] Use Ubuntu Focal image at Travis (#3393) · 164818b0
      Nikita Titov authored
      * Use Ubuntu Focal image at Travis
      
      * test gcc
      
      * test Bionic and gcc
      
      * test Focal with another Python version for GPU test
      
      * revert testing changes
      
      * install linkchecker via pip
      
      * simplify linkchecker config
      164818b0
  6. 05 Jul, 2020 2 commits
  7. 25 May, 2020 1 commit
  8. 16 Apr, 2020 1 commit
  9. 13 Apr, 2020 1 commit
  10. 10 Apr, 2020 1 commit
    • Nikita Titov's avatar
      [python] Re-enable scikit-learn 0.22+ support (#2949) · c633c6c2
      Nikita Titov authored
      * Revert "specify the last supported version of scikit-learn (#2637)"
      
      This reverts commit d1002776.
      
      * ban scikit-learn 0.22.0 and skip broken test
      
      * fix updated test
      
      * fix lint test
      
      * Revert "fix lint test"
      
      This reverts commit 8b4db0805fe7a9e7f7eb0be3eac231f85026d196.
      c633c6c2
  11. 28 Mar, 2020 1 commit
  12. 01 Mar, 2020 1 commit
  13. 16 Jan, 2020 1 commit
  14. 12 Jan, 2020 1 commit
  15. 19 Dec, 2019 1 commit
  16. 15 Dec, 2019 1 commit
  17. 16 Nov, 2019 1 commit
    • James Lamb's avatar
      [R-package][ci] Added more R linters (fixes #2477) (#2533) · 1f7b06b9
      James Lamb authored
      
      
      * Added more linters on R code
      
      * started working on implicit integers
      
      * finished style changes to handle implicit integers
      
      * regenned documentation and added concatenation linter
      
      * changed channel for r-lintr
      
      * try building stringi before lintr
      
      * trying to get libicui18n
      
      * trying another thing
      
      * trying conda-forge again
      
      * added re-install of stringi
      
      * uncommented other stages
      
      * Update .ci/test.sh
      Co-Authored-By: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * removed apt update and changed lintr version floor
      
      * get lintr from CRAN
      
      * R needs to come before C++ linting
      
      * testing lintr install from CRAN
      
      * trying one more thing
      
      * more verbose
      
      * order might matter
      
      * removed commented code
      
      * cleaned up linting block in test.sh
      
      * grouped conda install calls and fixed a few integer array things
      1f7b06b9
  18. 10 Nov, 2019 1 commit
  19. 24 Oct, 2019 1 commit
  20. 02 Oct, 2019 1 commit
  21. 21 Sep, 2019 1 commit
  22. 19 Sep, 2019 1 commit
  23. 03 Sep, 2019 1 commit
  24. 14 May, 2019 1 commit
    • Nikita Titov's avatar
      [ci] added swig compilation on macOS and Windows with artifacts (#2170) · 2a369170
      Nikita Titov authored
      * compile SWIG artifact on Windows
      
      * compile SWIG artifact on Windows
      
      * combined swig and sdist jobs for Linux
      
      * added conditions for artifacts publishing
      
      * added SWIG artifact compilation on macOS
      
      * hotfix
      
      * test: switch compilers
      
      * harsh workaround for OpenMP library conflict
      
      * switch compilers back
      
      * consistent order of tasks in condition
      
      * dummy commit to trigger CI and fix CLA
      2a369170
  25. 12 May, 2019 1 commit
  26. 09 May, 2019 1 commit
    • Nikita Titov's avatar
      [ci] CI fixes (#2161) · abbbbd75
      Nikita Titov authored
      * Update setup.sh
      
      * Update test.sh
      
      * Update setup.sh
      
      * test: gcc on Azure
      
      * Update test.sh
      
      * Update setup.sh
      
      * Update test.sh
      
      * switch compiler back on Azure
      abbbbd75
  27. 06 May, 2019 1 commit
  28. 05 May, 2019 1 commit
    • Nikita Titov's avatar
      [ci][docs] generate docs for C API (#2059) · cfcc020e
      Nikita Titov authored
      * use file to install deps for docs
      
      * added C_API docs
      
      * use breathe without exhale
      
      * added missed params descriptions and make Doxygen fail for warnings
      
      * escape char hotfix
      
      * ignore unknown directive for rstcheck
      
      * better handle env variable
      
      * hotfix for 'Unknown directive type' error with C_API=NO
      
      * Update .gitignore
      
      * fixed pylint
      
      * use already defined constants in conf.py
      
      * do not suppress Doxygen's output
      
      * addressed review comments
      
      * removed unneeded import
      cfcc020e
  29. 30 Apr, 2019 1 commit
  30. 10 Apr, 2019 1 commit
  31. 18 Mar, 2019 1 commit
  32. 14 Mar, 2019 1 commit
  33. 18 Feb, 2019 1 commit
  34. 30 Jan, 2019 1 commit
  35. 13 Nov, 2018 1 commit
  36. 11 Nov, 2018 1 commit
  37. 06 Nov, 2018 1 commit
  38. 05 Nov, 2018 1 commit
  39. 01 Nov, 2018 1 commit