改动寥寥几行代码:AMD锐龙Matlab性能暴涨最多258%
程序员文章站
2022-05-10 09:41:33
我们知道,一款硬件产品性能如何,不仅仅取决于硬件本身的设计,也要看驱动、软件的支持与优化,很多时候一些简单的优化调整就可以带来意想不到的效果。
比如说流行、权威的数学...
我们知道,一款硬件产品性能如何,不仅仅取决于硬件本身的设计,也要看驱动、软件的支持与优化,很多时候一些简单的优化调整就可以带来意想不到的效果。
比如说流行、权威的数学计算环境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%\bin\mklvars.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%!