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?