我想首先确认以下几点:到共享内存的基本全局内存事务是 32 字节、64 或 128 字节,但前提是内存访问可以合并。先前交易的延迟都是相等的。那正确吗?
第二个问题:如果内存读取不能合并,每个线程只读取 4 个字节(对吗?)所有线程的内存访问都是顺序的吗?
我想首先确认以下几点:到共享内存的基本全局内存事务是 32 字节、64 或 128 字节,但前提是内存访问可以合并。先前交易的延迟都是相等的。那正确吗?
第二个问题:如果内存读取不能合并,每个线程只读取 4 个字节(对吗?)所有线程的内存访问都是顺序的吗?
这取决于您正在处理的架构。然而,在费米和开普勒上,你有:
如您所见,有几个变量决定了您的内存访问将花费多少时间。一般的经验法则是:访问模式越密集 - 越好!步幅或错位现在不像过去那样昂贵,所以不要太担心,除非你正在做一些后期优化。