我有一个AMD GPU,我想实现'矩阵转置'的例子。想象一下,两个方案的实施:OpenCL - 本地内存效率
1)从全局内存(当前位置)
写入全局存储器(目标位置)
2)阅读
-
从全局存储器读取(当前位置)
写入本地内存
阅读从本地存储器
写入全局存储器(目标位置)
假设我已经为这两种解决方案选择了最佳的工作组规模。 顺便说一句,第二个算法利用协作写入本地内存。
最后,令人惊讶的是第二种情况的结果是第一种情况的两倍。我只是不明白为什么?
我可以看到,在第一个中我们有1个读取和1个写入和到全局内存,在第二个,除了全局内存操作,我们有1个读取和1个写入和到本地记忆,它怎么会更快?
如果有人在这种情况下帮助我,我会很高兴。
预先感谢您:-)