为什么随机矩阵相乘,Numpy能比matlab矩阵数乘快这么多?

比较新的版本 MATLAB 底层数学库是 MKL ,而老版本反而会根据处理器为你配置 ACML (AMD Core Math Library),所以根据反应(我没有亲自测试过),在 AMD 平台上老版本 MATLAB 反而在矩阵乘法上性能更高。如果以当前版本来看,Intel 平台上,以默频 9900k 为例,MATLAB 2019a 做两个 10000 X 10000 的矩阵乘法时间在 4 秒左右。另外,如果有必要,其实你可以自行为 MATLAB 编译 BLAS 的,也就是说你可以使用 openBLAS 替换 MKL,应该可以达到和其他调用 openBLAS 的库(例如你这里提到的 Numpy)相近的性能。另外,根据这里的方法可以降低 MKL 对 AMD CPU 的“削弱”:不过尚不清楚是否会有其他副作用2020a 版本 MATLAB 已经不需要做任何设置就能在 Ryzen 处理器上正常发挥了

我要回帖

更多关于 matlab矩阵数乘 的文章

 

随机推荐