# Build the binary from a local copy on Linux and macOS

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.

Training on GPU requires NVIDIA Driver of version 418.xx or higher.

To build the command-line package from a local copy of the CatBoost repository on Linux and macOS:

1. Install the libc header files on macOS and Linux.

Depending on the used OS:

• macOS: xcode-select --install
• Linux: Install the appropriate package (for example, libc6-dev on Ubuntu)
2. Clone the repository:

git clone https://github.com/catboost/catboost.git

3. (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.

4. (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

5. Open the catboost/catboost/app directory from the local copy of the CatBoost repository.

6. Run the following command:

../../ya make -r [optional parameters]

Parameter Description
-DCUDA_ROOT The path to CUDA. This parameter is required to support training on GPU.
-DHAVE_CUDA=no Disable CUDA support. This speeds up compilation.

By default, the package is built with CUDA support if CUDA Toolkit is installed.
-o The directory to output the compiled package to. By default, the current directory is used.