Mathwork Matlab是一款極為流行、權(quán)威的計(jì)算軟件,但是去年11月的時(shí)候,有人發(fā)現(xiàn)AMD銳龍?zhí)幚砥饕伤票凰?ldquo;劣化”,無(wú)法正確調(diào)用最新指令集,導(dǎo)致性能殘血。
具體來(lái)說(shuō),Matlab會(huì)提前檢測(cè)處理器身份,也就是CPUID字符串,如果找到GenuineIntel,也就是正品Intel處理器,就會(huì)利用Intel MKL(路徑內(nèi)核庫(kù)),并調(diào)用AVX2指令集,獲得理想性能。
但如果是其他,比如AuthenticAMD代表的AMD處理器,就會(huì)無(wú)視其支持的SSE4、AVX、AVX2等新指令集,只會(huì)使用古老的SSE指令集,效率自然大大下降。
有開(kāi)發(fā)者做過(guò)測(cè)試,如果改動(dòng)系統(tǒng)環(huán)境變量,就可以讓Matlab將AMD處理器識(shí)別成Intel處理器,性能瞬間就能提升少則20%,多則300%!
Matlab因此飽受質(zhì)疑,不過(guò)幸運(yùn)的是,在最新版的Matlab 2020a中,這個(gè)問(wèn)題終于被修復(fù)了,不管Intel還是AMD處理器,都會(huì)默認(rèn)調(diào)用最新指令集。
實(shí)測(cè)表明,24核心的線程撕裂者3960X、32核心的線程撕裂者3970X在新版Matlab中的性能比舊版分別可以提升48%、60%,從而領(lǐng)先18核心的酷睿i9-10980XE 52%、80%之多,而之前3960X可是打不過(guò)10980XE的。