C0D*_*D3R 6 c++ cuda cmake cmake-gui
我的项目使用带有 Visual Studio 的 CMake-GUI。我的系统上没有安装 GPU 卡。生成的Visual Studio 解决方案将nvcc 标志设置为compute_30 和sm_30,但我需要将其设置为compute_50 和sm_50。
我使用带有 64 位编译的 CMake 3.10.1 和 Visual Studio 14 2015。
我希望取代 CMake 的默认设置。我没有使用 Find CUDA 方法来搜索和添加 CUDA。我在 CMAKE 中添加 CUDA 作为语言支持,VS 启用基于此的 CUDA Build 自定义。
正确的方法是:
target_compile_options(myTarget PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:-gencode arch=compute_50,code=sm_50>)
Run Code Online (Sandbox Code Playgroud)
根据需要选择私人/公共。这是设置每个目标标志的正确方法。
所以我能够自己弄清楚。我们可以通过以下方式设置它 -
string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_50,code=sm_50")
Run Code Online (Sandbox Code Playgroud)
小智 5
CMake 3.18 有新的目标属性CUDA_ARCHITECTURES
。从这里的文档:
set_property(TARGET myTarget PROPERTY CUDA_ARCHITECTURES 35 50 72)
Run Code Online (Sandbox Code Playgroud)
为真实和虚拟架构 30、50 和 72 生成代码。
set_property(TARGET myTarget PROPERTY CUDA_ARCHITECTURES 70-real 72-virtual)
Run Code Online (Sandbox Code Playgroud)
为真实架构 70 和虚拟架构 72 生成代码。
归档时间: |
|
查看次数: |
9186 次 |
最近记录: |