我有一个 AMD GPU,我想实现“矩阵转置”示例。想象一下实现的两个场景:
1)
从全局内存(当前位置)读取
写入全局内存(目标位置)
2)
从全局内存中读取(当前位置)
写入本地内存
从本地内存读取
写入全局内存(目标位置)
假设我为这两种解决方案选择了最佳的工作组规模。顺便说一句,第二种算法利用了对本地内存的协作写入。
最后,令人惊讶的是,第二种情况的速度是第一种情况的两倍。我就是不明白为什么?
我可以看到,在第一个中,我们对全局内存进行了 1 次读取和 1 次写入,而在第 2 次中,除了全局内存操作之外,我们还有 1 次读取和 1 次写入本地内存,怎么能它会更快吗?
如果有人在这种情况下帮助我,我会很高兴。
先感谢您 :-)