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

日期:2019-11-19 22:24:16   来源:互联网   编辑:小TT   阅读人数:396
我们知道,一款硬件产品性能如何,不仅仅取决于硬件本身的设计,也要看驱动、软件的支持与优化,很多时候一些简单的优化调整就可以带来意想不到的效果。比如说流行、权威的数学计算环境Matlab,就针对Inte

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

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

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

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

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

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

@echo off

matlab.exe

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

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

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

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

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

本文相关词条概念解析:

处理器

中央处理器(CPU,CentralProcessingUnit)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。主要包括运算器(ALU,ArithmeticandLogicUnit)和控制器(CU,ControlUnit)两大部件。此外,还包括若干个寄存器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的性能在很大程度上由CPU的性能所决定,而CPU的性能主要体现在其运行程序的速度上。

  • 网友评论
返回顶部