後端最佳實踐¶
x86 CPU¶
現代 x86 CPU 上的編譯工作負載通常透過單指令多資料 (SIMD) 指令集進行最佳化。SIMD 是一種典型的高效能計算並行處理技術,例如深度學習模型訓練和推理。應用 SIMD 後,每個計算單元在任何給定時間段內使用分配到的不同資料執行相同的指令。最常用的支援 SIMD 的 x86 指令集架構 (ISA) 包括 AVX、AVX2、AVX-512 和 AMX。
您可以透過使用 collect_env 指令碼 來檢查您的機器支援的 ISA。由於該指令碼提供了 PyTorch 的完整環境資訊,我們可以使用 grep 來提取包含 ISA 資訊的行
python collect_env.py | grep "a[(v|m)]x"
通常,如果支援 AVX-512,應該會看到以“avx512”開頭的指令(例如 avx512f、avx512bw、avx512_vnni)。如果支援 AMX,應該會看到以“amx”開頭的指令(例如 amx_tile、amx_bf16、amx_int8)。
具體來說,對於啟用了 AMX 指令集的伺服器,可以透過利用 AMX 來進一步提升工作負載效能。