我最近使用 CMake 编译我的 CUDA 代码,但不知道如何在调试或 Release模式下将不同的编译标志传递给 nvcc。我希望我可以指定如下内容,
set(CUDA_GENE_FLAGS_DEBUG "-gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37")
set(CUDA_GENE_FLAGS_RELEASE "-Xptxas -O3 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37")
因此,当我在 visual studio 中指定 Debug 或 Release 模式时,可以自动选择这些标志。谁能帮我解决这个问题?谢谢。
最佳答案
我在为 CUDA 程序编译链接 OpenMP 时遇到了同样的问题。
根据latest CMake document for FindCUDA在这里,您应该尝试这三个变量:CUDA_NVCC_FLAGS
、CUDA_NVCC_FLAGS_DEBUG
和 CUDA_NVCC_FLAGS_RELEASE
。
但它对我不起作用,然后我找到了另一个 reference .
如果以上变量都不起作用,请尝试像这样使用 CMAKE_CUDA_FLAGS
作为解决方法:
set(CMAKE_CUDA_FLAGS ${YOUR_FLAGS})
关于c++ - CMake:如何在 visual studio 环境中将模式相关的编译标志传递给 nvcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45761148/