CUDA Постоянное использование памяти

У меня есть проект cuda, содержащий следующие файлы

Заголовочный файл:

 Declarations.h

Основной файл:

 main.cpp:
    #include "Declarations.h"

И файл ядра:

Kernel.cu:
    #include "Declarations.h"

В main.cpp, Я имею float K1[3*3] который я хочу скопировать в постоянную память GPU. Для этого я объявил __constant__ float K1_d[3*3];в Declarations.h И в main.cpp я сделал

checkCudaErrors( cudaMemcpyToSymbol(&K1_d, &K1, 9*sizeof(float)) );

При запуске кода я получил следующую ошибку: CUDA error at c:\users\xxx\test.cpp:241 code=13(cudaErrorInvalidSymbol) "cudaMemcpyToSymbol(&K1, &K1_inv, 9*sizeof(float))"

Я пытался скопировать одну переменную, например, я объявил в заголовочном файле

__constant__ float N;

И сделал:checkCudaErrors( cudaMemcpyToSymbol(&N, &K1_inv[0], sizeof(float)) );

Я получил то же сообщение об ошибке макроса chechCudaErrors.

Как передать переменные в постоянную память в CUDA?

0 ответов

Другие вопросы по тегам