Я хочу использовать __constant__
память, к которой будут обращаться все потоки всех моих ядер.
Объявление выглядит примерно так
extern __constant__ float smooth [8 * 1024];
Я копирую данные в эту переменную, используя
cudaMemcpyToSymbol("smooth", smooth_local, smooth_size, 0, cudaMemcpyHostToDevice);
smooth_size = 7 Кбайт
Это дало мне неправильный вывод
но когда я запустил его в режиме -deviceemu
и попытался распечатать содержимое обеих этих переменных внутри ядра, я получил все нули для smooth и smooth_local были правильными.
Я попытался распечатать вывод сразу после cudaMemcpyToSymbol
, но он по-прежнему давал мне 0.
Кто-нибудь может пролить свет на мою проблему?