我有一个包含以下文件的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中将变量转换为常量内存?`