改動(dòng)寥寥幾行代碼:AMD銳龍Matlab性能暴漲最多258%
我們知道,一款硬件產(chǎn)品性能如何,不僅僅取決于硬件本身的設(shè)計(jì),也要看驅(qū)動(dòng)、軟件的支持與優(yōu)化,很多時(shí)候一些簡(jiǎn)單的優(yōu)化調(diào)整就可以帶來(lái)意想不到的效果。
比如說(shuō)流行、權(quán)威的數(shù)學(xué)計(jì)算環(huán)境Matlab,就針對(duì)Intel處理器有一項(xiàng)特殊優(yōu)化,檢測(cè)到是Intel處理器后就會(huì)利用Intel MKL(路徑內(nèi)核庫(kù)),并調(diào)用AVX2指令集,獲得理想性能。
而對(duì)于非Intel處理器,比如說(shuō)檢測(cè)到是AMD,Matlab就只會(huì)使用古老的SSE指令集,結(jié)果就是性能天差地別。
Reddit網(wǎng)友Nedflanders1976研究后發(fā)現(xiàn),AMD銳龍、線程撕裂者處理器在Matlab上也能開(kāi)啟AVX2指令集,從而獲得性能暴漲!
根據(jù)這位網(wǎng)友給出的教程,方法非常簡(jiǎn)單。Windows系統(tǒng)下可以創(chuàng)建一個(gè)只有如下四行代碼的bat批處理文件,AMD處理器用戶通過(guò)它啟動(dòng)Matlab,就可以開(kāi)啟AVX2指令集。
@echo off
set MKL_DEBUG_CPU_TYPE=5
call "%MKLROOT%binmklvars.bat" MKL_DEBUG_CPU_TYPE=5
matlab.exe
以上是臨時(shí)方法,如果想永久生效,只需在高級(jí)系統(tǒng)屬性里找到MKL_DEBUG_CPU_TYPE,將這個(gè)環(huán)境變量的值改為5,但注意任何使用MKL的程序都會(huì)受到影響。
Linux用戶也很簡(jiǎn)單,臨時(shí)方法是輸入以下命令并啟動(dòng)Matlab,永久方法則是編輯配置腳本并加入以下命令:
export MKL_DEBUG_CPU_TYPE=5
根據(jù)實(shí)測(cè),AMD銳龍?zhí)幚砥鹘?jīng)過(guò)這樣一番修改后,Matlab性能可以提升少則17%,多則258%!