【发布时间】:2013-07-30 01:25:31
【问题描述】:
我有一个 AMD GPU,我想实现“矩阵转置”示例。想象一下两种实施方案:
1)
从全局内存读取(当前位置)
写入全局内存(目标位置)
2)
从全局内存中读取(当前位置)
写入本地内存
从本地内存读取
写入全局内存(目标位置)
假设我为这两种解决方案选择了最佳的工作组规模。 顺便说一下,第二种算法利用了协同写入本地内存的优势。
最后,令人惊讶的是,第二种情况的速度是第一种情况的两倍。我就是不明白为什么?
我可以看到,在第一个中,我们对全局内存进行了 1 次读取和 1 次写入,而在第 2 次中,除了全局内存操作之外,我们还有 1 次读取和 1 次写入本地内存,怎么可能更快?
如果有人在这种情况下帮助我,我会很高兴。
提前谢谢你:-)
【问题讨论】:
标签: opencl