1

有没有办法在二维中分配和复制 CUDA 常量内存区域?cudaMemcpyToSymnbol__constant__ 似乎不是一个选择。

4

1 回答 1

3

CUDA SDK(或示例)中的 quasirandomGenerator 示例显示了在常量内存中分配的二维表,并带有相应的 cudaMemcpyToSymbol 以填充 quasirandomGenerator_kernel.cuh 中的表

二维表的声明:

static __constant__ unsigned int c_Table[QRNG_DIMENSIONS][QRNG_RESOLUTION];

cudaMemcpyToSymbol 调用:

//Table initialization routine
static void initTableGPU(unsigned int tableCPU[QRNG_DIMENSIONS][QRNG_RESOLUTION]){
    cutilSafeCall( cudaMemcpyToSymbol(
        c_Table,
        tableCPU,
        QRNG_DIMENSIONS * QRNG_RESOLUTION * sizeof(unsigned int)
    ) );
}

该表正在以一维方式在引擎盖下处理(如 pQB 所建议),所以我不知道它是否正是 OP 正在寻找的东西。当您安装 CUDA SDK(或在 CUDA 5.0 RC 工具包中调用的示例)时,该示例会自动安装,但您可以在此处单独在 Web 上找到它。 选择右侧的相应下载链接以获取包含示例代码的存档。然后打开存档并查找文件 quasirandomGenerator_kernel.cuh

于 2012-09-26T19:48:46.470 回答