我对将数组复制到常量内存感到困惑。
根据编程指南,至少有一种方法可以分配常量内存并使用它来存储值数组。这称为静态内存分配:
__constant__ float constData[256];
float data[256];
cudaMemcpyToSymbol(constData, data, sizeof(data));
cudaMemcpyFromSymbol(data, constData, sizeof(data));
Run Code Online (Sandbox Code Playgroud)
再次根据编程指南我们可以使用:
__device__ float* devPointer;
float* ptr;
cudaMalloc(&ptr, 256 * sizeof(float));
cudaMemcpyToSymbol(devPointer, &ptr, sizeof(ptr));
Run Code Online (Sandbox Code Playgroud)
看起来使用了动态常量内存分配,但我不确定。而且__constant__
这里也没有使用限定符。
所以这里有一些问题:
cuda ×1