您的位置首页>互联网>

如何绕过Matlab的C脚AMD CPU功能

导读CPU审查的困难之一是,它们代表了评估新功能和新软件的最佳时间,同时却代表了尝试对任何特定软件进行深入研究的最糟糕的时间。有时,评论

CPU审查的困难之一是,它们代表了评估新功能和新软件的最佳时间,同时却代表了尝试对任何特定软件进行深入研究的最糟糕的时间。有时,评论家采用测试是因为供应商推荐了测试,而没有考虑测试在Intel和AMD系统上的性能是否相同。有时,供应商未能透露应用程序的编译方式会导致测试在一个平台上的运行速度大大快于另一个平台。这是那些时代之一。

当我在Threadripper 3970X / Cascade Lake X联合评估中发布Matlab数据时,这是因为英特尔建议将此测试和工作负载作为英特尔HEDT桌面产品系列的展示。我特地提出了一些建议,希望英特尔能够记住一些应用程序,这些应用程序在AVX-512集成时在18核或以上时显示相对较小的缩放比例。甚至专业应用程序也无法永远完美地扩展,我知道在这篇评论中,英特尔将在性能更高的时钟和轻线程应用程序的交汇点上立于不败之地。在这种情况下,“轻度”应理解为是指“不能完全扩展到64个线程的应用程序”,而不是“不能扩展到4-8个线程以上的应用程序”,这通常是我们的意思。当我们轻度调用一个应用程序时。很明显,Threadripper 3960X和3970X在每个可以扩展以匹配其线程数的应用中都将击败10980XE,尤其是在3970X的情况下。鉴于此,值得探索的是历来对英特尔最强大的领域,以了解性能如何进行比较。

英特尔为此审查推荐了四个工作负载:AIXPRT,Adobe Premiere Pro,Matlab和Sony Catalyst。在开始在系统上运行AIXPRT之前,我想花更多的时间评估AIXPRT,这使其吸引力降低了。Adobe现在要求您向他们提供信用卡,以便对其软件进行7天的免费试用,所以这是正确的。我选择测试Matlab和Sony Catalyst。我知道八天前redditor Nedflanders1976所做的调查和报告。

他写道:

对于使用Intel Math Kernel Library(MKL)的操作,Matlab在AMD CPU上运行异常缓慢。这是因为Intel MKL使用的是有区别的CPU调度程序,根据CPU对SIMD的支持,它不使用有效的代码路径,而是基于供应商字符串查询的结果。如果CPU来自AMD,那么无论AMD CPU是否支持更有效的SIMD扩展(例如AVX2),MKL都不使用SSE3-SSE4或AVX1 / 2扩展,而是使用SSE1。

我不确定100%以上的解释对于现代应用程序是否完全正确。例如,SSE2支持从根本上纳入了AMD64规范,因此该库至少更有可能至少输出AMD芯片的SSE2代码。但是SSE2在这一点上也已经有将近20年的历史了,像AVX和AVX2这样的新SIMD集提供了更强大的性能。两种类型的CPU都可能支持旧的SIMD集,但英特尔保留了更新的集。我无法确切地说出英特尔MKL的优化方式,但是如下面的结果所示,我们可以明确地证明正在应用不同级别的SIMD优化。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。