AVX512 與其他 SIMD 對於 Minecraft 的影響

AVX512 與其他 SIMD 對於 Minecraft 的影響

序言

AVX512 (第三代進階向量擴充指令集),是 Intel 於 2015 年開始推送的 SIMD (單指令流多資料流)指令集。消費級 core 在 11 代才開始支援。而 SIMD 跟 FPU (浮點處理器)幾乎綁在一起,Minecraft 在實體(例如生物)會使用浮點計算。因此想了解這對於開麥塊伺服器來說是否有效能增益。

本次測試源於當個創世神巴哈版上有人提問『 AVX512 對伺服器性能有幫助嗎?』,我們也想知道,因此有了這項測試。同時也加碼測試了 SSE3, SSE4.1, SSE4.2, AVX, AVX2 的表現。其中 FMA3, FMA4, SSE5 包含於 AVX(2) 中,而 MMX(+), SSE, SSE2 由於限制的緣故無法測試。其他的 RDRAND, AES-NI, SHA 等,與本節無關,故無測試。

測試環境

本節內容使用了 Intel 處理器與 AMD 處理器做測試。Intel 方面採用 i9-10940X ,AMD 方面採用 R5-7600X。值得注意的是 Ryzen 7000 的 AVX512 不是直接 512 位元計算,而是做兩次 256 位元計算

設定的記憶體大小皆為 8G;Minecraft 版本為 1.20.4;fabric 版本為 0.15.11。

使用的模組如下:

carpet-extra-1.20.3-1.4.128

ChunkDebug-1.20.4-1.1.0

fabric-api-0.97.0+1.20.4

fabric-carpet-1.20.3-1.4.128+v231205

lithium-fabric-mc1.20.4-0.12.1

malilib-fabric-1.20.4-0.18.1

MasaGadget-all-3.2.334+08c8f70-stable

pca-protocol-1.20.2-0.2.5

servux-fabric-1.20.2-0.1.0

樣本為 1000 隻烈焰使者,模擬大量實體使用浮點計算的情形。

罐頭鳳梨

首先從 Intel 方面開始,順序從僅有開 SSE2 的狀態開始。

i9-10940X,開啟 SSE2, 其他關閉

i9-10940X,開啟 SSE3

i9-10940X,開啟 SSE4.1

開啟 SSE4.1 後變差了

i9-10940X,開啟 SSE4.2

i9-10940X,開啟 AVX

開啟 AVX 後變差了

i9-10940X,開啟 AVX2

i9-10940X,開啟 AVX512

接下來是 AMD 方面的測試

R5-7600X,開啟 SSE2, 其他關閉

R5-7600X,開啟 SSE3

SSE3 主要為 intel 架構自用居多,AMD 在這效益就不大。

R5-7600X,開啟 SSE4.1

R5-7600X,開啟 SSE4.2

開啟 SSE4.2 後變差了

R5-7600X,開啟 AVX

R5-7600X,開啟 AVX2

開啟 AVX2 後變差了

R5-7600X,開啟 AVX512

結論

AVX512 確實增加了效能,但其他的 SIMD 反而會出現關了效能變好的神奇狀況。多測了幾次也是一樣狀況,所以排除了誤差造成的可能性。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *