CUDA: ошибка __device__ и __global__: ожидаемый конструктор, деструктор или преобразование типов до «unsigned» / / «quot; void» & quot;

Поэтому моя проблема заключается в следующем: я использую приложение Nvidia nsight на Mac OS X Mountain Lion, чтобы написать приложение CUDA: Исходный код представляет собой смесь .h / .cu / .cpp.

У меня есть заголовок HelloCUDA.h со следующими объявлениями:

//yep, both taken from examples.
__device__ unsigned int bitreverse2(unsigned int number);

__global__ void bitreverse(void *data);

и у меня есть файл HelloCUDA.cu, который определяет эти методы:

__device__ unsigned int bitreverse3(unsigned int number) {
//definition
return number;
}

__global__ void bitreverse4(void *data) {
//another definition...
bitreverse3(idata[threadIdx.x]);
}

Это работало, пока я не добавил новые файлы классов C ++ (.h / .cpp), используя мастер создания классов eclipse (nsight). Теперь, когда я пытаюсь построить эту вещь:

../src/HelloCUDA.h:21: error: expected constructor, destructor, or type conversion before ‘unsigned’
../src/HelloCUDA.h:23: error: expected constructor, destructor, or type conversion before ‘void’

Я проверил настройки проекта, я не думаю, что что-то изменилось.

Итак, что дает? Кто-нибудь может, пожалуйста, помочь мне с этим?

1

Решение

Вероятно, вы создали новый файл CPP, используя шаблон «CUDA C Bitreverse Application». Этот шаблон для файла CUDA C. Просто удалите содержимое файла и вместо этого добавьте свой код C ++.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]