rapids_cuda_init_architectures

添加于 v21.06.00 版本。

扩展了 CMAKE_CUDA_ARCHITECTURES 以包含对 RAPIDSNATIVE 的支持,从而简化 CUDA 架构的编译。

rapids_cuda_init_architectures(<project_name>)

在通过 project() 启用 CUDA 语言之前使用,以确定要编译的 CUDA 架构。解析 ENV{CUDAARCHS}CMAKE_CUDA_ARCHITECTURES 以查找特殊值 RAPIDSNATIVE

注意

需要在第一次调用 project() 之前调用。

将在调用 project() 后立即自动调用 rapids_cuda_set_architectures(),使用相同的项目名称来设置 CMAKE_CUDA_ARCHITECTURES 的正确值。

project_name

后续调用 project() 中的项目名称。

NATIVE""

当作为 CMAKE_CUDA_ARCHITECTURESENV{CUDAARCHS} 的值传递时,将编译针对当前机器上存在的所有 GPU 架构的代码。

RAPIDS, ALL, 或 CMAKE_CUDA_ARCHITECTURESENV{CUDAARCHS} 中没有值

当作为 CMAKE_CUDA_ARCHITECTURESENV{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 ...)