【问题标题】:CUDA constant memory in 2 dimensions二维的 CUDA 常量内存
【发布时间】:2012-09-26 15:48:28
【问题描述】:

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

【问题讨论】:

  • 为什么不按一维分配,按行优先顺序访问?
  • CUDA SDK 或示例中的 quasirandomGenerator 示例显示在常量内存中分配了一个二维表,并使用相应的 cudaMemcpyToSymbol 填充 quasirandomGenerator_kernel.cuh 中的表
  • @RobertCrovella:您是否会在示例中添加一些选择部分的答案以及对示例本身的引用?

标签: cuda gpu-constant-memory


【解决方案1】:

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 工具包中调用的示例)时自动安装,但您可以在网络上单独找到它here. 选择右侧的相应下载链接以获取包含示例代码的存档。然后打开存档并查找文件 quasirandomGenerator_kernel.cuh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    相关资源
    最近更新 更多