Skip to content

Commit 3d5eb67

Browse files
committed
Update README
1 parent bc73516 commit 3d5eb67

File tree

1 file changed

+17
-23
lines changed

1 file changed

+17
-23
lines changed

README.md

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# cuMLPrims
22

3-
This repository contains C++ and CUDA code of muti-node multi-GPU (MNMG) ML mathematical primitives and some algorithms, that are used by [the main cuML project](https://github.com/rapidsai/cuml). The build system uses CMake for build configuration, and an out-of-source build is recommended.
3+
This repository contains C++ and CUDA code of muti-node multi-GPU (MNMG) ML mathematical primitives and some algorithms, that are used by [the main cuML project](https://github.com/rapidsai/cuml). The build system uses CMake for build configuration, and an out-of-source build is recommended.
44

5-
As of version 0.13, the MNMG code included in cuMLPrims follows the model one-process-per-GPU (OPG), where the code uses a communication library (based on cuML's comms) and each process has one GPU assigned to it. This is in contrast to single-process-multi-GPU (SPMG) approaches, which are no longer part of the code base.
5+
The MNMG code included in cuMLPrims follows the model one-process-per-GPU (OPG), where the code uses a communication library (based on cuML's comms) and each process has one GPU assigned to it. This is in contrast to single-process-multi-GPU (SPMG) approaches, which are no longer part of the code base.
66

77
## Folder Structure
88

@@ -14,30 +14,28 @@ The folder structure mirrors closely the structure of github cuML. The folders a
1414
- `cpp/cmake`: CMake related scripts.
1515
- `cpp/include`: The include folder for headers that are necessary to be installed/distributed to use the libcumlprims.so artifact by users of the library.
1616
- `cpp/src_prims_opg`: Contains source code for MNMG ML primitives. It also contains source code for algorithms that use the primitives that are still included in cuMLPrims as opposed to cuML.
17-
- `cpp/test`: Googletest based unit tests (work in progress).
17+
- `cpp/test`: Googletest based unit tests.
1818

1919
## Building cuMLPrims:
2020

2121
### Requirements
2222

2323
The main artifact produced by the build system is the shared library libcumlprims. Ensure the following dependencies are satisfied:
2424

25-
1. CMake (>= 3.14.5)
26-
2. CUDA (>= 10.0)
27-
3. GCC (>= 5.4.0)
28-
4. NCCL (>= 2.4.6.1)
29-
5. UCX with CUDA support (optional)(>=1.7) - enables point-to-point messaging in the cuML communicator.
30-
6. zlib
25+
1. CMake (>= 3.30.4)
26+
2. CUDA (>= 12.0)
27+
3. GCC (>= 14)
28+
4. NCCL (>= 2.5)
3129

32-
It is recommended to use conda for environment/package management. If doing so, it is recommended to use the convenience environment .yml file located in [**the cuML repository**, in `conda/environments/cuml_dev_cudax.y.yml` (replace x.y for your CUDA version)](https://github.com/rapidsai/cuml/tree/branch-0.14/conda/environments). This file contains most of the dependencies ment1ioned above (notable exceptions are gcc and zlib). To use it, for example to create an environment named cuml_dev for CUDA 10.0 and Python 3.7, you can use the follow command:
30+
It is recommended to use conda for environment/package management. See `conda/environments/` for available environment files.
3331

3432
```bash
35-
conda env create -n cuml_dev python=3.7 --file=conda/environments/cuml_dev_cuda10.0.yml
33+
conda env create --name cumlprims_dev --file conda/environments/all_cuda-130_arch-$(arch).yaml
3634
```
3735

3836
### Using build.sh script
3937

40-
As a convenience, a `build.sh` script is provided which can be used to execute the build commands in an automated manner. Note that the libraries will be installed to the location set in `$INSTALL_PREFIX` if set (i.e. `export INSTALL_PREFIX=/install/path`), otherwise to `$CONDA_PREFIX`.
38+
As a convenience, a `build.sh` script is provided which can be used to execute the build commands in an automated manner. Note that the libraries will be installed to the location set in `$INSTALL_PREFIX` if set (i.e. `export INSTALL_PREFIX=/install/path`), otherwise to `$CONDA_PREFIX`.
4139
```bash
4240
$ ./build.sh # build the libcuml library and tests
4341
# install them to $INSTALL_PREFIX if set, otherwise $CONDA_PREFIX
@@ -46,12 +44,12 @@ $ ./build.sh # build the libcuml library and tests
4644
Other `build.sh` options:
4745

4846
```bash
49-
$ ./build.sh clean # remove any prior build artifacts and configuration (start over)
47+
$ ./build.sh clean # remove any prior build artifacts and configuration (start over)
5048
$ ./build.sh libcumlprims -v # build and install libcumlprims with verbose output
5149
$ ./build.sh libcumlprims -g # build and install libcumlprims for debug
5250
$ PARALLEL_LEVEL=4 ./build.sh libcumlprims # build and install libcumlprims limiting parallel build jobs to 4 (make -j4)
53-
$ ./build.sh libcuml -n # build libcuml but do not install
54-
$ ./build.sh libcumlprims --allgpuarch # build the tests for all supported GPU architectures
51+
$ ./build.sh libcuml -n # build libcuml but do not install
52+
$ ./build.sh libcumlprims --allgpuarch # build the tests for all supported GPU architectures
5553

5654
```
5755

@@ -107,11 +105,7 @@ cuMLPrims CMake has the following configurable flags available:
107105

108106
| Flag | Possible Values | Default Value | Behavior |
109107
| --- | --- | --- | --- |
110-
| BUILD_OPG_TESTS | [ON, OFF] | OFF | Build MPI cumlcomms based C++ unit tests (in progress, refer to step 4. of the build steps). |
111-
| BUILD_CUMLPRIMS_LIBRARY | [ON, OFF] | ON | Enable/disable building libcumprims shared library. |
112-
| CMAKE_CXX11_ABI | [ON, OFF] | ON | Enable/disable the GLIBCXX11 ABI |
113-
| DISABLE_OPENMP | [ON, OFF] | OFF | Set to `ON` to disable OpenMP |
114-
| KERNEL_INFO | [ON, OFF] | OFF | Enable/disable kernel resource usage info in nvcc. |
115-
| LINE_INFO | [ON, OFF] | OFF | Enable/disable lineinfo in nvcc. |
116-
| NVTX | [ON, OFF] | OFF | Enable/disable nvtx markers in libcumlprims. |
117-
| GPU_ARCHS | List of GPU architectures, semicolon-separated | 60;70;75 | List of GPU architectures that all artifacts are compiled for. |
108+
| BUILD_OPG_TESTS | [ON, OFF] | OFF | Build MPI cumlcomms based C++ unit tests (in progress, refer to step 4. of the build steps). |
109+
| BUILD_CUMLPRIMS_LIBRARY | [ON, OFF] | ON | Enable/disable building libcumlprims shared library. |
110+
| DISABLE_OPENMP | [ON, OFF] | OFF | Set to `ON` to disable OpenMP |
111+
| NVTX | [ON, OFF] | OFF | Enable/disable nvtx markers in libcumlprims.|

0 commit comments

Comments
 (0)