2011-07-29 3 views
1

Je travaille sur un code dans CUDA C sur VS2008, Win 7. J'ai une matrice de float qui doit être affichée comme image ..je l'ai enregistrée sous forme de fichier .bin et la charge dans un fichier séparé fichier .cpp et formé avec succès l'image en utilisant la bibliothèque CImg ... mais lorsque je tente d'ajouter le code similaire à .cu fichier, il donne une étrange erreur, comme indiqué ci-dessous sur la compilation ...Bibliothèque CImg dans Cuda

error: identifier "_ZN12cimg_library4cimg9superset2IfffE4typeE" is undefined 

l'extrait de code i essayé d'ajouter dans le fichier .cu est donnée comme sous

#include <CImg.h> 
using namespace cimg_library; 
....host code.....continues... 

CImg<float> img1(448,448); 
for (int nn=0;nn<200704;nn++) 
img1[nn] = dR[nn]; // dR is obtained after cudamemcpy DtoH 
img1.display(); 

au forums, je ne peux pas trouver beaucoup d'aide au sujet de ce ainsi que l'utilisation de CIm g avec Cuda .. est-il possible que je peux utiliser CImg avec cuda ..

Merci

+0

"lorsque j'essaie d'ajouter le code similaire au fichier .cu" ... pourriez-vous nous montrer ce que vous mettez dans le fichier .cu? – Bart

Répondre

0

Ma suggestion est de déplacer le code qui utilise CImg dans un fichier .cpp. Le code dans le fichier .cpp invoquerait alors le code hôte/périphérique dans le fichier .cu. Le code dans le fichier .cu renvoie ensuite un pointeur ou une référence à la matrice de flottants retour au code dans le fichier .cpp.

nvcc de Nvidia est un pilote de compilateur. Il appelle un compilateur C/C++ pour compiler des fichiers avec un nom de fichier .c ou .cpp. Cependant, un fichier .cu a une signification particulière pour nvcc. Il fait un peu d'analyse et de quoi ne pas chercher les fonctions du noyau et certaines #pragmas. Je ne suis pas un expert, mais je sais qu'il existe une copie flottante d'un manuel. Here is a link to an older copy of the manual.

+0

merci pour la réponse ... je l'ai essayé et a obtenu mon code en cours d'exécution ... Mais toujours l'image ne s'affiche pas ... je veux dire sa commande imgdisplay dans CImg à laquelle le code ne répond pas, mais attend le temps fermez la fenêtre des résultats ... est-il possible de ne pas afficher de nouvelle fenêtre avec les règles cuda? – snabbasi

+0

Pouvez-vous poster les sections pertinentes du code? – ahoffer

Questions connexes