2013-01-21 2 views
1

J'ai un petit projet dans Nsight de Nvidia, qui crée les makefiles pour moi. Je veux utiliser des instructions SSE et voudrais compiler des fichiers cpp dans le projet avec gcc au lieu de nvcc.Comment compiler avec gcc en utilisant Nsight Eclipse Edition?

Existe-t-il un moyen de configurer Nsight pour cela ou dois-je écrire le Makefile manuellement?

EDIT: le fichier .cu doit être compilé avec nvcc bien sûr.

Répondre

1

Vous devriez pouvoir utiliser les instructions GCC SSE dans les fichiers CU - NVCC compile tout le code hôte avec votre compilateur de plateforme.

Si vous souhaitez encore utiliser GCC, vous avez deux options:

  1. deux projets - Créez un est un projet de bibliothèque statique compilé avec FPUNV et un autre projet exécutable régulier compilé avec GCC. Ensuite, vous pouvez configurer Nsight pour lier l'exécutable avec votre bibliothèque. (Vous pouvez également utiliser NVCC pour l'exécutable et GCC pour la bibliothèque)
  2. Comme @Eric mentionné, vous pouvez créer un "Makefile Project" et écrire le makefile à la main.
+1

Aussi, je viens de remarquer que nvcc complètement "transmet" les fichiers cpp à gcc. (J'ai remarqué parce que le format des messages d'erreur change) – Hannes

+0

@Eugene Mais, comment puis-je changer mon "compilateur de plate-forme" de GCC à ICC (Intel C++)? Pouvez-vous m'aider dans ma question? http://stackoverflow.com/questions/23133335/how-can--create-the-project-in-eclipse-nsight-which-use-both-intel-c-and-cuda – Alex

+0

@Alex Il devrait y avoir un "CCbin" drapeau NVCC exposé dans les propriétés du projet CUDA (je ne me souviens pas du chemin exact dans l'arbre des propriétés - quelque chose comme Build-> Paramètres). Il suffit de pointer cela vers votre compilateur icc. – Eugene

1

Pour utiliser gcc dans Nsight, vous devez créer un projet makefile et écrire le makefile à la main.

Vous pouvez également utiliser nvcc pour compiler votre fichier .cpp/.c. Pour ajouter des options de compilation supplémentaires qui ne sont pas reconnues par nvcc (reconnues uniquement par gcc), l'option nvcc -Xcompiler doit être préfixée. L'un des effets secondaires de nvcc est que votre programme .cpp nécessitera l'exécution de libcudart.so, même s'il n'en a pas vraiment besoin.

Questions connexes