Ошибка «неверный символ устройства» при вызове cudaMemcpyToSymbolC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка «неверный символ устройства» при вызове cudaMemcpyToSymbol

Сообщение Anonymous »

Я не знаком с C++ и CUDA, но пытаюсь изучить их оба. Я попытался использовать cudaMemcpytoSymbol для копирования переменной bool с хоста на устройство, но получил ошибку с именем недопустимый символ устройства.
файл test.h:

Код: Выделить всё

namespace host{
extern bool var;
}
namespace cuda{
__constant__ extern bool var;
}
test.cpp

Код: Выделить всё

#include test.h
int main(){
...;

cudaMemcpyToSymbol(cuda::d_var, &host::h_var, sizeof(bool));

...;
}
Когда я запустил этот код, я получил ```неверный символ устройства``.
Затем я удалил extern при запросе d_var, то есть__constant__ bool d_var;. Тогда код сработал. Может ли кто-нибудь здесь объяснить мне причину? Всем спасибо (^_^)

Подробнее здесь: https://stackoverflow.com/questions/787 ... pytosymbol

Вернуться в «C++»