我拥有1.3 GPU的计算能力。根据文档,当相同的半扭曲线程根据字大小从相同的32-64或128字节内存段访问字节时,这些内存访问被合并为一个。
然而,在使用cudaMallocPitch()分配二维数组的情况下,当同一个半扭曲线程访问连续字节时,是否保证这些字节位于同一内存段?
CUDA对全局内存的联合访问也存在类似的问题,但不包括具有2D阵列的1.3 GPU的计算能力。
Yes-cudaMallocPitch()
的存在主要是为了确保合并行为从一行持续到下一行。合并的标准是每扭曲一次,因此它们的粒度要细得多,并且适用于2D阵列的一行中的连续字节。
请注意,操作数大小必须至少为32位,否则合并根本不起作用。