Build environment setup for Ya Make
Warning
CatBoost uses CMake-based build process since this commit. Previously Ya Make
(Yandex's build system) had been used.
For building CatBoost using CMake see here
libc
header files (only on macOS and Linux)
Install the Depending on the used OS:
- macOS:
xcode-select --install
- Linux: Install the appropriate package (for example,
libc6-dev
on Ubuntu)
Microsoft Visual Studio setup (only for Windows)
Install Visual Studio Community 2019.
- Choose the Windows Platform development and Desktop Development with C++ options in the workloads tab.
- Choose a suitable version of the MSVC compiler. It is advised to install VC++ 2019 version 16.11.11 v14.28 and CUDA Toolkit 11.0 or newer.
Note
Visual Studio forcibly installs the latest version of the compiler upon each update. The latest MSVC compiler may not be suitable for compiling CatBoost, especially with CUDA.
Identify the set version of the compiler
- Open the properties window for any
cpp
file of the project. - Ensure the absence of the
/nologo
option in the compiler's command-line (for example, by adding the deprecated/nologo-
option in the Command Line/Additional Options box). - Compile this source file (Ctrl + F7).
The set version of the compiler is printed to the Output window. CatBoost can not be compiled with 19.14.* versions.
Change the version of the compiler
Use one of the following methods to set the recommended version of the compiler:
-
Enable the required version as described in the Visual C++ Team Blog.
-
Run the environment setter from the command line with the
vcvars_ver
option (the path to the script depends on the installation settings):
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.28
Then open the solution:
start msvs\arcadia.sln
CUDA compatible system compilers (only for builds with CUDA)
The system compiler must be compatible with CUDA Toolkit if GPU support is required. Refer to the Supported Host Compilers section of the NVIDIA CUDA Compiler Driver NVCC documentation for more details. The required steps to change the system compiler depend on the OS.
NVCC compile flags (only for builds with CUDA)
-
(Optionally) Volta GPU users are advised to precisely set the required NVCC compile flags in the default_nvcc_flags.make.inc configuration file. Removing irrelevant flags speeds up the compilation.
Note
CatBoost may work incorrectly with Independent Thread Scheduling introduced in Volta GPUs when the number of splits for features exceeds 32.
-
(Optionally) CUDA with compute capability 2.0 users must remove all lines starting with
-gencode
from the default_nvcc_flags.make.inc configuration file and add the following line instead:-gencode arch=compute_20,code=compute_20