改动寥寥几行代码:AMD锐龙Matlab性能暴涨最多258%

2019-11-19 07:18发布

我们知道,一款硬件产品性能如何,不仅仅取决于硬件本身的设计,也要看驱动、软件的支持与优化,很多时候一些简单的优化调整就可以带来意想不到的效果。

比如说流行、权威的数学计算环境Matlab,就针对Intel处理器有一项特殊优化,检测到是Intel处理器后就会利用Intel MKL(路径内核库),并调用AVX2指令集,获得理想性能。

而对于非Intel处理器,比如说检测到是AMD,Matlab就只会使用古老的SSE指令集,结果就是性能天差地别。

Reddit网友Nedflanders1976研究后发现,AMD锐龙、线程撕裂者处理器在Matlab上也能开启AVX2指令集,从而获得性能暴涨!

根据这位网友给出的教程,方法非常简单。Windows系统下可以创建一个只有如下四行代码的bat批处理文件,AMD处理器用户通过它启动Matlab,就可以开启AVX2指令集。

@echo off

set MKL_DEBUG_CPU_TYPE=5

call "%MKLROOT%binmklvars.bat" MKL_DEBUG_CPU_TYPE=5

matlab.exe

以上是临时方法,如果想永久生效,只需在高级系统属性里找到MKL_DEBUG_CPU_TYPE,将这个环境变量的值改为5,但注意任何使用MKL的程序都会受到影响。

Linux用户也很简单,临时方法是输入以下命令并启动Matlab,永久方法则是编辑配置脚本并加入以下命令:

export MKL_DEBUG_CPU_TYPE=5

根据实测,AMD锐龙处理器经过这样一番修改后,Matlab性能可以提升少则17%,多则258%!

文章来源: https://www.toutiao.com/group/6760625285193794056/