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