我最近使用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模式时,可以自动选择这些标志。任何人都可以帮我一把吗?感谢。
答案 0 :(得分:2)
我在为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})