rapids_cuda_init_architectures
添加于 v21.06.00 版本。
扩展了 CMAKE_CUDA_ARCHITECTURES
以包含对 RAPIDS 和 NATIVE 的支持,从而简化 CUDA 架构的编译。
rapids_cuda_init_architectures(<project_name>)
在通过 project()
启用 CUDA 语言之前使用,以确定要编译的 CUDA 架构。解析 ENV{CUDAARCHS}
和 CMAKE_CUDA_ARCHITECTURES
以查找特殊值 RAPIDS 和 NATIVE。
注意
需要在第一次调用 project()
之前调用。
将在调用 project()
后立即自动调用 rapids_cuda_set_architectures()
,使用相同的项目名称来设置 CMAKE_CUDA_ARCHITECTURES
的正确值。
project_name
后续调用
project()
中的项目名称。
NATIVE
或""
当作为
CMAKE_CUDA_ARCHITECTURES
或ENV{CUDAARCHS}
的值传递时,将编译针对当前机器上存在的所有 GPU 架构的代码。RAPIDS
,ALL
, 或CMAKE_CUDA_ARCHITECTURES
和ENV{CUDAARCHS}
中没有值当作为
CMAKE_CUDA_ARCHITECTURES
或ENV{CUDAARCHS}
的值传递时,将编译针对所有支持的 RAPIDS GPU 架构的代码。
正确使用 rapids_cuda_init_architectures()
的示例
cmake_minimum_required(...)
if(NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/EXAMPLE_RAPIDS.cmake)
file(DOWNLOAD https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-<VERSION_MAJOR>.<VERSION_MINOR>/RAPIDS.cmake
${CMAKE_CURRENT_BINARY_DIR}/EXAMPLE_RAPIDS.cmake)
endif()
include(${CMAKE_CURRENT_BINARY_DIR}/EXAMPLE_RAPIDS.cmake)
include(rapids-cuda)
rapids_cuda_init_architectures(ExampleProject)
project(ExampleProject ...)