1

我有一个计算能力 1.3 GPU。根据文档,当相同半扭曲的线程根据字长从相同的 32-64 或 128 字节内存段访问字节时,这些内存访问将合并为一个。

但是,在使用 cudaMallocPitch() 分配的二维数组的情况下,当同一个 half-warp 的线程访问连续字节时,是否保证这些字节驻留在同一个内存段?

CUDA有一个类似的问题合并访问全局内存,但不包括计算能力 1.3 GPU 与 2D 阵列。

4

1 回答 1

2

是的 -cudaMallocPitch()主要是为了确保合并行为从一行持续到下一行。合并的标准是 per-warp,因此它们的粒度要细得多,并且与 2D 数组的一行中的连续字节有关。

请注意,操作数大小必须至少为 32 位,否则合并根本不起作用。

于 2013-02-16T16:01:49.177 回答