To install cuML from source, ensure the dependencies are met:
- cuDF (>=0.7)
- zlib
- cmake (>= 3.12.4)
- CUDA (>= 9.2)
- Cython (>= 0.29)
- gcc (>=5.4.0)
- BLAS - Any BLAS compatible with cmake's FindBLAS. Note that the blas has to be installed to the same folder system as cmake, for example if using conda installed cmake, the blas implementation should also be installed in the conda environment.
Once dependencies are present, follow the steps below:
- Clone the repository.
$ git clone --recurse-submodules https://github.com/rapidsai/cuml.git
- Build and install
libcuml
(the C++/CUDA library containing the cuML algorithms), starting from the repository root folder:
$ cd cuML
$ mkdir build
$ cd build
$ export CUDA_BIN_PATH=$CUDA_HOME # (optional env variable if cuda binary is not in the PATH. Default CUDA_HOME=/path/to/cuda/)
$ cmake ..
If using a conda environment (recommended), then cmake can be configured appropriately via:
$ cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
Note: The following warning message is dependent upon the version of cmake and the CMAKE_INSTALL_PREFIX
used. If this warning is displayed, the build should still run succesfully. We are currently working to resolve this open issue. You can silence this warning by adding -DCMAKE_IGNORE_PATH=$CONDA_PREFIX/lib
to your cmake
command.
Cannot generate a safe runtime search path for target ml_test because files
in some directories may conflict with libraries in implicit directories:
The configuration script will print the BLAS found on the search path. If the version found does not match the version intended, use the flag -DBLAS_LIBRARIES=/path/to/blas.so
with the cmake
command to force your own version.
If using conda and a conda installed cmake, the openblas
conda package is recommended and can be explicitly specified for blas
and lapack
:
cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DBLAS_LIBRARIES=$CONDA_PREFIX/lib/libopenblas.so -DLAPACK_LIBRARIES=$CONDA_PREFIX/lib/libopenblas.so
Additionally, to reduce compile times, you can specify a GPU compute capability to compile for, for example for Volta GPUs:
$ cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DGPU_ARCHS="70"
- Build
libcuml
:
$ make -j
$ make install
To run tests (optional):
$ ./ml_test
If you want a list of the available tests:
$ ./ml_test --gtest_list_tests
- Build the
cuml
python package:
$ cd ../../python
$ python setup.py build_ext --inplace
To run Python tests (optional):
$ py.test -v
If you want a list of the available tests:
$ py.test cuML/test --collect-only
- Finally, install the Python package to your Python path:
$ python setup.py install
- You can also build and run tests for the machine learning primitive header only library located in the
ml-prims
folder. From the repository root:
$ cd ml-prims
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DGPU_ARCHS="70" # specifying GPU_ARCH is optional, but significantly reduces compile time
$ make -j
To run the ml-prim tests:
$./test/mlcommon_test