从源构建#
这些说明已在受支持的 Linux、CUDA 和 Python 版本/发行版上测试 - 有关支持的环境列表,请参阅 RAPIDS 入门。其他环境可能兼容,但目前未经测试。
先决条件#
编译器
gcc
版本 9.3+nvcc
版本 11.5+
CUDA
CUDA 11.8+
NVIDIA GPU,Volta 架构或更高版本,计算能力 7.0+
有关这些先决条件的更多详细信息和下载链接,请访问 RAPIDS 系统要求页面。
设置开发环境#
克隆仓库:#
CUGRAPH_HOME=$(pwd)/cugraph
git clone https://github.com/rapidsai/cugraph.git $CUGRAPH_HOME
cd $CUGRAPH_HOME
创建 conda 环境#
使用 conda 是安装 cugraph 构建和运行时依赖项最简单的方法。虽然可以在不使用 conda 的情况下构建和运行 cugraph,但所需的软件包偶尔会发生变化,这使得在此处难以记录。查看构建和运行环境所需当前依赖项的最佳方法是检查 conda 环境 YAML 文件中的软件包列表。
# for CUDA 11.x
conda env create --name cugraph_dev --file $CUGRAPH_HOME/conda/environments/all_cuda-118_arch-x86_64.yaml
# for CUDA 12.x
conda env create --name cugraph_dev --file $CUGRAPH_HOME/conda/environments/all_cuda-125_arch-x86_64.yaml
# activate the environment
conda activate cugraph_dev
# to deactivate an environment
conda deactivate
环境可以随着 cugraph 添加/移除/更新其依赖项而更新。为此,运行
# for CUDA 11.x
conda env update --name cugraph_dev --file $CUGRAPH_HOME/conda/environments/all_cuda-118_arch-x86_64.yaml
conda activate cugraph_dev
# for CUDA 12.x
conda env update --name cugraph_dev --file $CUGRAPH_HOME/conda/environments/all_cuda-125_arch-x86_64.yaml
conda activate cugraph_dev
构建并安装#
使用 build.sh
构建并安装#
使用位于 $CUGRAPH_HOME
目录中的 build.sh
脚本是构建和安装 cugraph 库的推荐方法。默认情况下,build.sh
将构建并安装一组预定义的目标(软件包/库),但也可以接受要构建的目标列表。
例如,要仅构建 cugraph C++ 库 (libcugraph
) 和高级 python 库 (cugraph
) 而不构建 C++ 测试二进制文件,请运行此命令
$ cd $CUGRAPH_HOME
$ ./build.sh libcugraph pylibcugraph cugraph --skip_cpp_tests
构建脚本上还有其他几个可供高级用户使用的选项。有关详细信息,请参阅 --help
的输出。
请注意,如果设置了 $PREFIX
(即 export PREFIX=/install/path
),库将安装到 $PREFIX
中设置的位置,否则安装到 $CONDA_PREFIX
。
更新 RAFT 分支#
libcugraph
使用 RAFT 库,有时可能需要针对不同的 RAFT 分支进行构建,例如在开发可能涉及 RAFT 和 cuGraph 的新功能时。
对于本地开发,可以将 CPM_raft_SOURCE=<path/to/raft/source>
选项传递给 cmake
命令,以使 libcugraph
使用本地 RAFT 分支。build.sh
脚本调用 cmake
来构建 C/C++ 目标,但开发人员可以直接调用 cmake
以传递此处描述的选项。请参阅 build.sh
脚本以了解如何直接调用 cmake
和其他命令。
要让 CI 测试针对不同 RAFT 分支的 cugraph
拉取请求,请按如下方式修改 cpp/cmake/thirdparty/get_raft.cmake
文件底部
# Change pinned tag and fork here to test a commit in CI
# To use a different RAFT locally, set the CMake variable
# RPM_raft_SOURCE=/path/to/local/raft
find_and_configure_raft(VERSION ${CUGRAPH_MIN_VERSION_raft}
FORK <your_git_fork>
PINNED_TAG <your_git_branch_or_tag>
# When PINNED_TAG above doesn't match cugraph,
# force local raft clone in build directory
# even if it's already installed.
CLONE_ON_PIN ON
)
当上述更改推送到拉取请求时,持续集成服务器将使用指定的 RAFT 分支运行 cuGraph 测试。将 RAFT 分支中的更改合并到发布分支后,请记得将 get_raft.cmake
文件恢复到原始的 cuGraph 分支。
运行测试#
如果您已经拥有数据集
export RAPIDS_DATASET_ROOT_DIR=<path_to_ccp_test_and_reference_data>
如果您没有数据集
cd $CUGRAPH_HOME/datasets
source get_test_data.sh #This takes about 10 minutes and downloads 1GB data (>5 GB uncompressed)
运行带数据集的 C++ 或 Python 测试
带数据集的 Python 测试
pip install python-louvain #some tests require this package to run cd $CUGRAPH_HOME cd python pytest
C++ 独立测试
从构建目录
# Run the cugraph tests cd $CUGRAPH_HOME cd cpp/build gtests/GDFGRAPH_TEST # this is an executable file
带更大数据集的 C++ 测试
在大型输入上运行 C++ 测试
cd $CUGRAPH_HOME/cpp/build #test one particular analytics (eg. pagerank) gtests/PAGERANK_TEST #test everything make test
注意:此 conda 安装仅适用于 Linux 和 Python 版本 3.10、3.11 和 3.12。
(可选)在激活时设置环境变量#
可以将 conda 环境配置为在激活时设置环境变量。提供设置 PATH 以包含 CUDA 工具包 bin 目录和 LD_LIBRARY_PATH 以包含 CUDA lib64 目录的说明将很有帮助。
cd ~/anaconda3/envs/cugraph_dev
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
接下来需要编辑 env_vars.sh 文件
vi ./etc/conda/activate.d/env_vars.sh
#!/bin/bash
export PATH=/usr/local/cuda-11.0/bin:$PATH # or cuda-11.1 if using CUDA 11.1 and cuda-11.2 if using CUDA 11.2, respectively
export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH # or cuda-11.1 if using CUDA 11.1 and cuda-11.2 if using CUDA 11.2, respectively
vi ./etc/conda/deactivate.d/env_vars.sh
#!/bin/bash
unset PATH
unset LD_LIBRARY_PATH
创建文档#
可以从 ./docs/cugraph 目录生成 Python API 文档。或者通过使用“./build.sh docs”
归属#
部分内容采用自 https://github.com/pytorch/pytorch/blob/master/CONTRIBUTING.md