1

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

4

0 回答 0