後端的最佳實務¶
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 進一步提升工作負載效能。