虽然我意识到这是一个利基问题,但我想知道是否有人知道矩阵矩阵乘法的算法,这将是非常好的(意味着使用大量的cpu或可能的gpu)在大小之间的矩阵100x100到500x500?
虽然我知道xgemm和xgemm3m很不错,但遗憾的是它们可以获得大于1000x1000的矩阵。
感谢您的帮助:)
答案 0 :(得分:0)
不是答案,但评论太久了。
我认为您从英特尔数据中得出了错误的结论。你好像在想
啊哈,对于大型矩阵,dgemm可以以300GFLOP / s的速度进行压缩,但对于小型矩阵,dgemm只能以微弱的100GFLOP / s进行压缩 - 这种方法可以将小矩阵乘以300GFLOP / s? / em>
我认为按照这些方针
Ah-ha dgemm在大型阵列上效率最高;嗯,我想知道在调用它时是否存在固定成本,这些成本在较小的工作规模上表现得相对较差。我希望如果那些小矩阵有更快的算法,那么英特尔的聪明人就会实现它们,并使dgemm足够聪明,可以为任何给定的问题大小选择正确的内部代码路径。毕竟,密集矩阵乘法是LINPACK的关键部分,尽管它存在所有缺点,但它通常用于对高性能计算机进行基准测试,而英特尔则通过使用这些基准测试来展示其机器的卓越性。
现在我并不是说你不像英特尔的民众那么聪明,我的思路可能有缺陷,但我告诉你,你将难以编写或获得一个代码,在英特尔硬件上的小矩阵上优于dgemm
。我期待看到证据证明我错了。