2017-08-18 1 views
1

Ich verwende CMake vor kurzem, um meine CUDA-Codes zu kompilieren, aber nicht, wie man verschiedene Kompilier-Flags im Debug- oder Release-Modus an nvcc übergibt. Ich wünschte, ich etwas angeben können, wie folgt,CMake: Wie modusabhängige Kompilierflags in Visual Studio-Umgebung an nvcc übergeben werden

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") 

Also, wenn ich Debug angeben oder Visual Studio Release-Modus in, können diese Flags automatisch gewählt werden. Kann mir jemand dabei helfen? Vielen Dank.

Antwort

0

Ich habe das gleiche Problem beim Kompilieren der Verknüpfung von OpenMP für ein CUDA-Programm festgestellt.

Nach dem latest CMake document for FindCUDA hier, sollten Sie diese drei Variablen versuchen: CUDA_NVCC_FLAGS, CUDA_NVCC_FLAGS_DEBUG und CUDA_NVCC_FLAGS_RELEASE.

Aber es hat nicht für mich funktioniert und dann fand ich eine andere reference.

Wenn keine obigen Variablen arbeiten, versuchen CMAKE_CUDA_FLAGS, wie dies für eine Abhilfe zu verwenden:

set(CMAKE_CUDA_FLAGS ${YOUR_FLAGS}) 
Verwandte Themen