CMake:如何在Visual Studio环境中将模式相关的编译标志传递给nvcc

时间:2017-08-18 16:28:08

标签: c++ visual-studio-2013 cmake cuda

我最近使用CMake编译我的CUDA代码,但是不知道如何在调试或发布模式下将不同的编译标志传递给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模式时,可以自动选择这些标志。任何人都可以帮我一把吗?感谢。

1 个答案:

答案 0 :(得分:2)

我在为CUDA程序编译链接OpenMP时遇到了同样的问题。

根据此处的latest CMake document for FindCUDA,您应该尝试以下三个变量:CUDA_NVCC_FLAGSCUDA_NVCC_FLAGS_DEBUGCUDA_NVCC_FLAGS_RELEASE

但它对我不起作用,然后我发现了另一个reference

如果以上变量都不起作用,请尝试使用CMAKE_CUDA_FLAGS这样的解决方法:

set(CMAKE_CUDA_FLAGS ${YOUR_FLAGS})