我正试图在ATI HD 6990卡(Cayman体系结构)上使用AMD-APP-SDK 2.4实现GEMM。
优化技术之一是使用分块/平铺。
在它的实现中,如果我们将子矩阵存储在共享的本地内存中,它会更快吗?还是当我们使用纹理缓存时会更快?如果可能的话,请说明原因。
还请建议哪种更容易实施。
谢谢。
附言:如果重要的话,我只想要单精度!
注意:子矩阵的大小不是问题,但我觉得它越大越好。唯一需要考虑的因素是,如果内存单位是128位(4个单精度),那么块大小应该是4的倍数。
Cypress芯片用于5800系列雷达。6900系列使用Cayman核心,这有几个重要的区别,最显著的是它是VLIW4架构,而不是早期核心中使用的VLIW5配置。
和往常一样,知道哪种方法更快的唯一确定方法是对其进行基准测试。特别是,由于你没有给出关于子矩阵大小的信息,很难说它们最适合哪里。