ATLAS和MKL之间的性能差异?


31

ATLAS是BLAS / LAPACK的免费替代产品,可在编译时自动调整为计算机。MKL是英特尔提供的商业库。在性能方面,这两个库是否具有可比性,还是MKL在某些任务上具有优势?如果是这样,哪个?


Answers:


18

MKL(来自Intel)针对Intel处理器进行了优化,在许多情况下可能具有“优势”。但它也为选择“最差”的AMD处理器的代码路径“名牌”,描述在这里


12

BLAS不是整体的。BLAS1和BLAS2受到内存带宽的限制,您无法做很多事情来加快它们的速度(循环展开,级别2的缓存阻塞)。BLAS3更有趣,此处的原型基准是矩阵-矩阵乘法。据我所知,GOTOBlas一直是这里的明显赢家,例如,请参阅此比较比较理由

现在已经过了几年,我们有了BLIS项目。它是MKL的最佳免费替代软件。


4
马特是对的,但GotoBLAS不再在开发中。对于某些现代处理器来说,它仍然可以很好地工作,但是如果MKL尚未在将来的处理器上运行,那么它肯定会超过DGEMM。例如,我们还没有在Westmere上对其进行测试,但是如果GotoBLAS已经失败了,我不会感到惊讶。
比尔·巴特

2
Goto博士被M $收购。悲伤。。。
meawoppl

2
OpenBLAS是GotoBLAS派生的开源项目。github.com/xianyi/OpenBLAS
ShadowWarrior 2012年

Goto现在在MKL上工作。不再悲伤:-)
杰夫(Jeff)

6

个人资料,不要猜测!(也可以用作“基准,不要猜测!”

没有什么可以说的,这在很大程度上取决于您要执行的任务(例如BLAS 1/2/3)和您所使用的硬件(显然,Intel MKL不在ARM处理器上运行),例如;但即使在Intel处理器中,您也可以预期性能差异)。


我认为值得一提的另一件事是,AMD还提供了针对其处理器进行调整的数学库,即AMD核心数学库。它不像英特尔的MKL那样功能丰富,但确实包括BLAS。


真正。这里有很多轶事证据(和实际分析)来备份其他答案(如链接所示)。但是,您的里程可能会有所不同,并且始终可以帮助您了解自己是否正确。
Geoff Oxberry 2012年

1
MKL的价格为499美元,但配置文件令人讨厌。不过,他们确实提供1个月的审判
林登·怀特

@LyndonWhite还是这样吗?下载页面似乎表明它是免费的
Luciano

是的,我相信它现在是免费的,我看到很多人正在使用它。
Lyndon White

6

该问题的先前答案涵盖了大多数要点,但是我想就此添加一个评论:

MKL在某些任务上有优势吗?

MKL团队处于独特的位置,可以了解未来的Intel指令集及其在特定处理器中的实现。此外,他们可以访问专有处理器模拟器和预生产硬件,而英特尔以外的任何人都无法使用。因此,MKL在有关未来产品的知识程度以及何时获得这些知识方面具有优势。因此,至少在具有新功能的产品生命周期的早期,如果它们能比其他任何人提供更好的BLAS实现,也就不足为奇了。

另一方面,英特尔对AVX-512指令集非常开放,并提供了英特尔®软件开发仿真器(SDE),使开发人员可以在本身不支持这些指令的处理器上仿真AVX-512指令。因此,如果BLAS的高质量开源实现可用于支持AVX-512的英特尔处理器早在这些产品的生命周期中,就不足为奇了。

当然,关于特定处理器的详细信息与密集线性代数算法的基础知识有多大差异还无法完全解决。以下引用比我能更好地解决此问题:

在理论上,理论与实践之间没有区别。但是,实际上有。

全面披露:我为英特尔工作。


MKL开源有机会吗?
罗伊

出于什么目的?MKL已经像啤酒一样免费。阅读BLIS的源代码具有更大的教育价值。如果要阅读汇编,请尝试使用OpenBLAS。
杰夫

1

我认为供应商BLAS库与开放源代码BLAS库之间的主要区别在于开放源代码支持最新硬件功能所花费的时间。

由于BLAS被广泛使用,因此支持最新的硬件功能对供应商来说很有意义。例如,考虑2011年1月随“ sandy-bridge”处理器引入的Intel的AVX矢量扩展。MKL甚至在CPU可用之前就具有AVX支持,但直到最近ATLAS(2011年底)才开始推出对AVX的支持。 。

另外,如果您的应用程序确实需要性能,并且在开始对不同的BLAS库进行基准测试或开始研究优化任何东西之前,请对应用程序进行概要分析。通常,人类的直觉不是一个非常有效的探查器预测器,至少我知道我的不是!因此,与其花费时间随机优化,不如对应用程序进行概要分析并系统地解决每个瓶颈。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.