Opencl 流式全局内存:以相反顺序访问时的性能损失?

Opencl 流式全局内存:以相反顺序访问时的性能损失?,opencl,gpgpu,Opencl,Gpgpu,当处理全局数组的元素写入或读取时,一个工作项中的一个条目,如果我访问相邻工作项的相邻内存地址,效率会更高。这是因为内存是流式传输的 当访问顺序相反时,即工作项X访问类似于大小-1-X的地址时,是否存在性能问题 此外,在考虑绩效时,是否应该只考虑第一个维度 我目前正在为GPGPU课程做一个家庭作业评估,在这个课程中我们应该轮换一个矩阵。我们应该在工作组中分块执行此操作,以实现最佳性能。其思想是首先将源块复制到本地内存中,在本地旋转它,然后将其写回正确的位置。我首先在对角线上实现了一个换位镜像,现在

当处理全局数组的元素写入或读取时,一个工作项中的一个条目,如果我访问相邻工作项的相邻内存地址,效率会更高。这是因为内存是流式传输的

当访问顺序相反时,即工作项X访问类似于大小-1-X的地址时,是否存在性能问题

此外,在考虑绩效时,是否应该只考虑第一个维度


我目前正在为GPGPU课程做一个家庭作业评估,在这个课程中我们应该轮换一个矩阵。我们应该在工作组中分块执行此操作,以实现最佳性能。其思想是首先将源块复制到本地内存中,在本地旋转它,然后将其写回正确的位置。我首先在对角线上实现了一个换位镜像,现在想镜像它。如果这不是性能问题,我现在可以简单地访问带有镜像索引的矩阵的结果数组。此家庭作业任务需要最大性能。

对于CUDA,在这种情况下会触发内存合并访问,但不是所有设备都会触发,老设备不会。发布一些代码,也许问题出在其他地方。您的主内存是否正确对齐?找到以下内容: