当处理全局数组(写入或读取)的元素,一个工作项中的一个条目时,如果我访问相邻工作项的相邻内存地址,则会知道它更有效。这是因为内存是“流式”的。
如果此类访问的顺序是相反的顺序,即工作项X
是否访问类似于size - 1 - X
的地址,是否存在性能问题?
此外,在考虑绩效时,是否应该只考虑第一个维度?
我目前正在为GPGPU课程做家庭作业评估,我们应该在其中轮换矩阵。我们应该在工作组中以块为单位来实现最佳性能。我们的想法是先将源块复制到本地存储器中,然后在本地旋转,然后将其写回到正确的位置。我首先实现了一个转置(在对角线上镜像),现在想要镜像它。如果这不是性能问题,我现在可以简单地访问具有镜像索引的矩阵的结果数组(最大性能是此作业任务的要求)。