c-CUDA:是对保证合并的全局内存的连续字节的半扭曲访问



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

然而,在使用cudaMallocPitch()分配二维数组的情况下,当同一个半扭曲线程访问连续字节时,是否保证这些字节位于同一内存段?

CUDA对全局内存的联合访问也存在类似的问题,但不包括具有2D阵列的1.3 GPU的计算能力。

Yes-cudaMallocPitch()的存在主要是为了确保合并行为从一行持续到下一行。合并的标准是每扭曲一次,因此它们的粒度要细得多,并且适用于2D阵列的一行中的连续字节。

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

最新更新