RPCS3開發者稱讚AVX-512指令集可極大提升模擬器性能
RPCS3“PlayStation 3 模擬器”開發者,剛剛在一篇冗長的博客文章中,詳細介紹了AVX2 指令集可帶來的仿真性能提升。Whatcookie 指出:與傳統軟解方案相比,現代CPU 上的AVX-512 能夠帶來高達30% 的領先優勢。
(來自:Whatcookie Blog,via WCCFTech)
可知AVX-512 的優勢,主要體現在:
● 更大的寄存器文件
● 為舊指令帶來新的形式
● 屏蔽寄存器(mask registers)
作為最受玩家歡迎的PS3 模擬器之一,RPCS3 開發團隊在Intel 酷睿i9-12900K 平台上展開了測試。其頻率設置為默認的5.2 GHz,並且啟用了AVX-512 。
結果發現,如果使用標準的 SSE2 指令集,模擬器的幀率只能達到5 FPS 。若遷移至SSE 4.1 指令集,則可帶來160 FPS 的巨大增益。
顯然,缺少對PS3 模擬器至關重要的SSE3 指令集,將對其性能產生極大的製約。
如果遷移到AVX2 / FMA,可獲得額外的13% 性能提升。而從AVX2 切換到AVX-512,更是可以獲得30% 的性能提升(幀率達到242 FPS)。
● 此外SSE 4.1 的目標平均幀率有160 FPS,而AVX2 / FMA 為190 FPS —— 較前者提升18% 。
● AVX2 在SSE 4.1 上沒有包含多少新指令,但確實提供了一套新穎的3 操作數形式指令—— 免去了大量的寄存器間mov 指令。
● 更重要的是,所有支持AVX2 的CPU,也都支持FMA 指令。
FMA 指令不僅比乘法+ 加法指令鏈更快,且由於在它們之間沒有四捨五入到單精度、因而可以避免輸出結果不一致的問題。
而要在缺乏FMA 指令的情況下準確模擬,必然會增加一些額外的開銷,因而原生FMA 操作將對此大有裨益。
Icelake 級別的AVX-512 操作,目標平均速度達到了誇張的235 FPS —— 較AVX2 / FMA 領先23% 。
鑑於AVX-512 中新添加的指令數量如此之多,以至於其中相當多一部分都可在RPCS3 模擬器中派上用場。
尷尬的是,為了控制消費級平台的功耗(使用率也沒有那麼高),英特爾最終決定在12 代Alder Lake CPU 中移除了對AVX-512 指令集的支持。
另一方面,AMD卻證實將在下一代Zen 4 銳龍7000 系列CPU 上充分利用這一點。至於後續Intel 是否會後悔這一決定,仍有待時間去檢驗。