CImg библиотека в Cuda - PullRequest
       20

CImg библиотека в Cuda

1 голос
/ 29 июля 2011

Я работаю над кодом в CUDA C на VS2008, Win 7. Я получил матрицу с плавающей точкой, которая должна отображаться как изображение. Я сохранил ее в виде файла .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();

На форумах я не могу найти много помощи относительно этого, а также использования CImg с Cuda. Есть ли способ, которым я могу использовать CImg с cuda ..

Спасибо

1 Ответ

1 голос
/ 30 июля 2011

Я предлагаю переместить код, который использует CImg, в файл .cpp.Код в файле .cpp затем вызывает код хоста / устройства в файле .cu.Код в файле .cu затем возвращает указатель или ссылку на матрицу с плавающей точкой обратно на код в файле .cpp.

nvcc от Nvidia - это драйвер компилятора.Он вызывает компилятор C / C ++ для компиляции файлов с именами файлов .c или .cpp.Однако файл .cu имеет особое значение для nvcc.Он выполняет некоторый анализ и что-не ищет функции ядра и определенные #pragmas.Я не эксперт, но я знаю, что есть копия руководства, плавающего вокруг. Вот ссылка на более старую копию руководства .

...