我正在使用VS2008,Win 7上的CUDA C中的代码。我有一个浮点矩阵,它将显示为图像..i将其保存为.bin文件并将其加载到单独的.cpp文件中使用CImg库成功构建了图像...但是当我尝试将类似的代码添加到.cu文件时,它会产生一个奇怪的错误,如下面的汇编所示......
error: identifier "_ZN12cimg_library4cimg9superset2IfffE4typeE" is undefined
我尝试添加.cu文件的代码段在
下面给出#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();
在论坛上,我无法找到很多帮助,以及与Cuda一起使用CImg。 有什么方法可以使用CImg和cuda ..
谢谢
答案 0 :(得分:1)
我的建议是将使用CImg的代码移动到.cpp文件。然后,.cpp文件中的代码将调用.cu文件中的主机/设备代码。然后,.cu文件中的代码将浮点矩阵的指针或引用返回给.cpp文件中的代码。
Nvidia的nvcc是一个编译器驱动程序。它调用C / C ++编译器来编译具有.c或.cpp文件名的文件。但是,.cu文件对nvcc有特殊意义。它做了一些解析和什么 - 不寻找内核函数和某些#pragmas。我不是专家,但我知道手册上有一本副本。 Here is a link to an older copy of the manual