序言
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
i9-10940X,開啟 SSE4.2
i9-10940X,開啟 AVX
i9-10940X,開啟 AVX2
i9-10940X,開啟 AVX512
接下來是 AMD 方面的測試
R5-7600X,開啟 SSE2, 其他關閉
R5-7600X,開啟 SSE3
R5-7600X,開啟 SSE4.1
R5-7600X,開啟 SSE4.2
R5-7600X,開啟 AVX
R5-7600X,開啟 AVX2
R5-7600X,開啟 AVX512
結論
AVX512 確實增加了效能,但其他的 SIMD 反而會出現關了效能變好的神奇狀況。多測了幾次也是一樣狀況,所以排除了誤差造成的可能性。