2017-08-18 2 views
1

J'utilise récemment CMake pour compiler mes codes CUDA, mais je ne sais pas comment passer différents drapeaux de compilation à nvcc, en mode Debug ou Release. Je voudrais préciser quelque chose puis comme suit,CMake: Comment passer des drapeaux de compilation dépendant du mode à nvcc dans l'environnement Visual Studio

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

Alors, quand je spécifie le mode Debug ou Release en studio visuel, ces drapeaux peuvent être choisis automatiquement. Quelqu'un peut-il me donner un coup de main? Merci.

Répondre

0

J'ai rencontré un même problème lors de la compilation de la liaison OpenMP pour un programme CUDA.

Selon le latest CMake document for FindCUDA ici, vous devriez essayer ces trois variables: CUDA_NVCC_FLAGS, CUDA_NVCC_FLAGS_DEBUG et CUDA_NVCC_FLAGS_RELEASE.

Mais cela n'a pas fonctionné pour moi et puis j'ai trouvé un autre reference.

Si aucune des variables ci-dessus fonctionnent, essayez d'utiliser CMAKE_CUDA_FLAGS comme celui-ci pour une solution de contournement:

set(CMAKE_CUDA_FLAGS ${YOUR_FLAGS})