首页 > 编程知识 正文

amd功耗比intel高多少(amd处理器对编程有没有影响)

时间:2023-05-04 09:39:45 阅读:102273 作者:1097

机器心脏报告

参与:思源、dqdzm、贾敏

数学中的硬件加速是社区经常讨论的话题。如果我们能利用一些图书馆和硬件的优势,无疑将有助于科研和生产。最近,一篇关于优化AMD CPU的帖子在Matlab社区引起了讨论。——通过几行代码,AMD CPU加速了250%,然后帖子作者把这个方法扩展到了其他社区,引入了更通用的优化方法。

从Matlab优化开始

在之前的研究中,作者在Matlab社区发起了一个讨论:Matlab如何在AMD锐龙/TR CPU中使用快速代码路径,从而将性能提高250%?

众所周知,在AMD CPU上使用英特尔数学内核库(MKL)的Matlab运行速度非常慢。因为英特尔MKL将使用差异化的CPU调度程序,并且考虑到CPU对SIMD的支持,调度程序将不会使用有效的代码路径,而是基于供应商的字符串查询结果进行操作。如果CPU是AMD的话,通过一系列的调整,性能可以得到很大的提升。参见:https://www.reddit.com/r/MATLAB/comments/dxn38s/howto _ force _ MATLAB _ to _ use _ a _ fast _ codepath _ on _ amd/?排序=新建

如下图所示,在Matlab上测试不同CPU加速环境下的性能,可以得到惊人的结果。在AMD上加载英特尔MKL加速器也可以大大改善:

综合基准测试结果:

这个讨论在Matlab社区中广泛流传。自发表以来,更多的社区开发者撰文与作者深入探讨(如Pytorch/Numpy/Anaconda/Tensorflow等)。).因此,本次新的讨论将分享操作思路,更系统地介绍其原理。

英特尔的库,加速AMD的芯片?

一般来说,英特尔数学内核库:MKL)是很多人默认使用的库。它在AMD CPU上运行非常慢,因为MLK使用了一个有区别的CPU调度程序,根据SIMD的支持,它不能有效地使用代码路径。如果是AMD CPU,无论CPU是否支持更高效的SIMD扩展,MKL都不支持SSE3-SSE4或AVX1/2扩展,只能回到SSE。

该帖子提供了一种强制MKL支持AVX2的方法,该方法独立于供应商字符串,只需一分钟即可完成。如果你有一个基于Zen/Zen/Zen2arch锐龙/Threadripper等架构的AMD CPU,它可以被加速到惊人的程度。

此外,这种方法也可以应用于较旧的Exavator Arch,但是请*不要在比Exavator Arch和英特尔系统更旧的AMD CPU上使用这种方法。*

事实上,这种性能提升非常明显。根据操作系统和中央处理器的不同,性能加速范围从30%到300%。

施用方式

在视窗系统上

如果使用的是Windows,首先需要管理员权限。

然后,在系统环境变量中键入“MKL _调试_中央处理器_类型=5”。这将适用于所有使用NKL的实例。

您可以在上面的窗口中键入说明,或者在CMD窗口中键入:

这样,所有使用MKL的程序都将被永久更改,直到您修改变量的输入。

Linux操作系统

在运行同一实例之前,打开终端并键入以下命令:

ExportMKL_DEBUG_CPU_TYPE=5如果要永久更改系统中的所有实例,可以键入:

echo ' Export MKL _ debug _ CPU _ type=5 ' ~/。简档红迪热门评论

第一个问题是,这能行得通吗?有开发者可以直接测试。Inori在Reddit上显示,通过实际的基准测试,他确认这可以将Numpy的性能提升25%到90%。如下图,AMD不使用MKL时,两个4096*4096矩阵相乘需要1秒,而MKL相加,只需要0.56秒。

之后,Inori还提供了基准测试脚本,并表示将继续尝试MKL加速TensorFlow的能力(在AMD芯片下)。

在Reddit Matlab原板上,很多开发者都说计算速度真的快很多:

当然,并不是所有的开发人员都同意这种奇特的技术。如果我们自己用,就可以了。如果我们把它投入生产,它将是不稳定和不安全的。Wind_of_amazingness表示mkl从未在AMD芯片上完全测试过,这意味着它会有一些意想不到的错误,比如数值不稳定。

最后,也许除了速度之外,我们还需要测试计算误差,这样才能真正利用MKL库来加速AMD芯片的数值计算。

参考链接:https://www.reddit.com/r/machinelearning/comments/F2 pbvz/discussion _ workplace _ for _ mkl _ on _ amd/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。