Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Forward-merge branch-24.10 into branch-24.12 #340

Merged
merged 1 commit into from
Sep 20, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 13 additions & 18 deletions docs/source/build.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Installation
============

The cuVS software development kit provides APIs for C, C++, Python, and Rust languages. This guide outlines how to install the pre-compiled packages, build it from source, and use it in downstream applications.
The cuVS software development kit provides APIs for C, C++, Python, and Rust languages. This guide outlines how to install the pre-compiled packages, build it from source, and use it in downstream applications.

- `Installing pre-compiled packages`_

Expand All @@ -25,7 +25,7 @@ The cuVS software development kit provides APIs for C, C++, Python, and Rust lan

* `Rust Library`_

* `Using Cmake Directly`_
* `Using CMake Directly`_

- `Build Documentation`_

Expand All @@ -36,17 +36,12 @@ Installing Pre-compiled Packages
C, C++, and Python through Conda
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The easiest way to install the pre-compiled C, C++, and Python packages is through `conda <https://docs.anaconda.com/free/miniconda/index.html>`_. Use the following commands, depending on your CUDA version, to install cuVS packages (replace `rapidsai` with `rapidsai-nightly` to install more up-to-date but less stable nightly packages). `mamba` is preferred over the `conda` command.
The easiest way to install the pre-compiled C, C++, and Python packages is through conda. You can get a minimal conda installation with `miniforge <https://github.com/conda-forge/miniforge>`__.

C++ Package
~~~~~~~~~~~
Use the following commands, depending on your CUDA version, to install cuVS packages (replace `rapidsai` with `rapidsai-nightly` to install more up-to-date but less stable nightly packages). `mamba` is preferred over the `conda` command.

.. code-block:: bash

mamba install -c rapidsai -c conda-forge -c nvidia libcuvs cuda-version=12.5

C Package
~~~~~~~~~
C/C++ Package
~~~~~~~~~~~~~

.. code-block:: bash

Expand All @@ -62,7 +57,7 @@ Python Package
Python through Pip
^^^^^^^^^^^^^^^^^^

The cuVS Python package can also be `installed through pip <https://rapids.ai/pip.html#install>`_.
The cuVS Python package can also be `installed through pip <https://docs.rapids.ai/install#pip>`_.

For CUDA 11 packages:

Expand All @@ -76,29 +71,29 @@ And CUDA 12 packages:

pip install cuvs-cu12 --extra-index-url=https://pypi.nvidia.com

Note: these packages statically link the C and C++ libraries so the `libcuvs` and `libcuvs_c` shared libraries won't be readily available to use in your code.
Note: these packages statically link the C and C++ libraries so the `libcuvs` and `libcuvs_c` shared libraries won't be readily available to use in your code.

Rust through crates.io
^^^^^^^^^^^^^^^^^^^^^^

Build from source
-----------------

The core cuVS source code is written in C++ and wrapped through a C API. The C API is wrapped around the C++ APIs and the other supported languages are built around the C API.
The core cuVS source code is written in C++ and wrapped through a C API. The C API is wrapped around the C++ APIs and the other supported languages are built around the C API.


Prerequisites
^^^^^^^^^^^^^

- Cmake 3.26.4+
- CMake 3.26.4+
- GCC 9.3+ (11.4+ recommended)
- CUDA Toolkit 11.4+
- Volta architecture or better (compute capability >= 7.0)

Create a build environment
^^^^^^^^^^^^^^^^^^^^^^^^^^

`Conda <https://docs.anaconda.com/free/miniconda/index.html>`_ environment scripts are provided for installing the necessary dependencies to build cuVS from source. It is preferred to use `mamba`, as it provides significant speedup over `conda`:
Conda environment scripts are provided for installing the necessary dependencies to build cuVS from source. It is preferred to use `mamba`, as it provides significant speedup over `conda`:

.. code-block:: bash

Expand Down Expand Up @@ -177,7 +172,7 @@ The Rust bindings can be built with
Using CMake directly
^^^^^^^^^^^^^^^^^^^^

When building cuVS from source, the `build.sh` script offers a nice wrapper around the `cmake` commands to ease the burdens of manually configuring the various available cmake options. When more fine-grained control over the CMake configuration is desired, the `cmake` command can be invoked directly as the below example demonstrates.
When building cuVS from source, the `build.sh` script offers a nice wrapper around the `cmake` commands to ease the burdens of manually configuring the various available cmake options. When more fine-grained control over the CMake configuration is desired, the `cmake` command can be invoked directly as the below example demonstrates.

The `CMAKE_INSTALL_PREFIX` installs cuVS into a specific location. The example below installs cuVS into the current Conda environment:

Expand All @@ -191,7 +186,7 @@ The `CMAKE_INSTALL_PREFIX` installs cuVS into a specific location. The example b

cuVS has the following configurable cmake flags available:

.. list-table:: Cmake Flags
.. list-table:: CMake Flags

* - Flag
- Possible Values
Expand Down
Loading