隆重推出 AMD 第五代 EPYC™ CPU
AMD 剛剛釋出了基於 Zen5 架構的第五代伺服器級 EPYC CPU,代號為 `Turin`。它顯著提升了效能,尤其是在核心數量達到 192 個和執行緒數達到 384 個時。
從大型語言模型 (LLM) 到 RAG 場景,Hugging Face 使用者可以利用這一代新伺服器來增強其效能能力
- 降低部署的目標延遲。
- 提高最大吞吐量。
- 降低運營成本。
在過去幾周,我們一直與 AMD 合作,以驗證 Hugging Face 生態系統在新一代 CPU 上得到全面支援,並在不同任務中提供預期效能。
此外,我們還在探索一些令人興奮的新方法,透過使用 `AMD ZenDNN PyTorch 外掛 (zentorch)` 來利用 `torch.compile` 對 AMD CPU 進行加速,從而進一步提升我們稍後將討論的工作負載的效能。
雖然我們能夠提前體驗這項工作,以測試 Hugging Face 模型和庫並與您分享效能,但我們預計 AMD 將很快向社群提供,敬請關注!
AMD Turin 與 AMD Genoa 效能對比 - 2 倍加速
在本節中,我們展示了對兩款 AMD EPYC CPU(Turin,128 核;Genoa,96 核)進行基準測試的結果。在這些基準測試中,我們使用了 PyTorch 的 ZenDNN 外掛(zentorch),它為 AMD EPYC CPU 上的深度學習工作負載提供了推理最佳化。該外掛與 torch.compile 圖編譯流程無縫整合,可以在 torch.fx 圖上進行多輪圖級最佳化,以實現進一步的效能加速。
為了確保最佳效能,我們使用了 `bfloat16` 資料型別並採用了 `ZenDNN 5.0`。我們配置了多例項設定,支援多個 Meta LLaMA 3.1 8B 模型例項跨所有核心並行執行。每個模型例項分配 32 個物理核心,從而能夠利用伺服器的全部處理能力進行高效資料處理和計算加速。
我們使用兩種不同的批次大小(16 和 32)在五種不同的用例中運行了基準測試
- 摘要(1024 輸入 token / 128 輸出 token)
- 聊天機器人(128 輸入 token / 128 輸出 token)
- 翻譯(1024 輸入 token / 1024 輸出 token)
- 論文寫作(128 輸入 token / 1024 輸出 token)
- 即時字幕(16 輸入 token / 16 輸出 token)。
這些配置不僅有助於全面分析每臺伺服器在不同工作負載下的表現,還模擬了 LLM 的實際應用。具體來說,我們繪製了每個用例的解碼吞吐量(不包括第一個 token),以說明效能差異。
Llama 3.1 8B Instruct 的結果
Meta Llama 3.1 8B 的吞吐量結果,比較了 AMD Turin 和 AMD Genoa。AMD Turin 始終優於 AMD Genoa CPU,在大多數配置中實現了約 2 倍的吞吐量提升。
結論
正如所示,與前代產品 AMD Genoa 相比,AMD EPYC Turin CPU 在 AI 用例中提供了顯著的效能提升。為了提高可復現性並簡化基準測試過程,我們利用了 optimum-benchmark,它提供了一個統一的框架,可在各種設定中進行高效的基準測試。這使我們能夠有效地使用 `zentorch` 後端進行 `torch.compile` 基準測試。
此外,我們開發了一個最佳化的 `Dockerfile`,將很快與基準測試程式碼一起釋出。這將有助於輕鬆部署和重現我們的結果,確保其他人能夠有效地利用我們的發現。
您可以在 AMD Zen 深度神經網路 (ZenDNN) 找到更多資訊
有用資源
- ZenTF:https://github.com/amd/ZenDNN-tensorflow-plugin
- ZenTorch:https://github.com/amd/ZenDNN-pytorch-plugin
- ZenDNN ONNXRuntime:https://github.com/amd/ZenDNN-onnxruntime