更快的訓練和推理: 對比 Habana Gaudi2 和英偉達 A100 80GB

通過本文,你將學習如何使用 Habana? Gaudi?2 加速模型訓練和推理,以及如何使用 ?? Optimum Habana 訓練更大的模型。然后,我們展示了幾個基準測例,包括 BERT 預訓練、Stable Diffusion 推理以及 T5-3B 微調(diào),以評估 Gaudi1、Gaudi2 和英偉達 A100 80GB 之間的性能差異。劇透一下: Gaudi2 的訓練和推理速度大約是英偉達 A100 80GB 的兩倍!
Gaudi2 是 Habana Labs 設計的第二代 AI 硬件加速卡。每臺服務器裝有 8 張加速卡,每張加速卡的內(nèi)存為 96GB (Gaudi1 為 32GB,A100 80GB 為 80GB)。Habana 的 SynapseAI SDK 在 Gaudi1 和 Gaudi2 上是通用的。這意味?? Optimum Habana,一個將 ?? Transformers 和 ??? Diffusers 庫與 SynapseAI 連起來的、用戶友好的庫,?在 Gaudi2 上的工作方式與 Gaudi1 完全相同!
因此,如果你在 Gaudi1 上已經(jīng)有現(xiàn)成的訓練或推理工作流,我們鼓勵你在 Gaudi2 上嘗試它們,因為無需任何更改它們即可工作。
如何訪問 Gaudi2?
訪問 Gaudi2 的簡單且經(jīng)濟的方法之一就是通過英特爾和 Habana 提供的英特爾開發(fā)者云 (Intel Developer Cloud,IDC) 來訪問。要使用 Gaudi2,你需要完成以下操作步驟:
進入 英特爾開發(fā)者云登陸頁面 并登錄你的帳戶 (如果沒有賬戶,需要先注冊一個)。
進入 英特爾開發(fā)者云管理控制臺。
選擇?Habana Gaudi2 Deep Learning Server,其配有 8 張 Gaudi2 HL-225H 卡以及最新的英特爾? 至強? 處理器?,然后單擊右下角的?Launch Instance?,如下所示。

然后你可以申請一個實例。

一旦申請成功,請重新執(zhí)行步驟 3,然后單擊?Add OpenSSH Publickey?以添加付款方式 (信用卡或促銷碼) 以及你的 SSH 公鑰,你可使用?
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa
?命令以生成公鑰。每次添加付款方式或 SSH 公鑰時,你可能會被重定向到步驟 3。重新執(zhí)行步驟 3,然后單擊?Launch Instance?。你必須接受建議條款才能真正把實例啟動起來。
進入 英特爾開發(fā)者云管理控制臺,然后單擊?View Instances?選項卡。
你可以復制實例界面上的 SSH 命令來遠程訪問你的 Gaudi2 實例!
如果你終止實例后想再次使用 Gaudi2,則必須重新執(zhí)行整個過程。
你可以在 此處 找到更多相關信息。
基準測試
下面,我們將進行多項基準測試來評估 Gaudi1、Gaudi2 和 A100 80GB 在各種尺寸的模型上的訓練和推理能力。
BERT 模型預訓練
幾個月前,Hugging Face 的技術主管 Philipp Schmid 介紹了 如何使用 ?? Optimum Habana 在 Gaudi 上預訓練 BERT。該預訓練一共執(zhí)行了 6.5 萬步,每張卡的 batch size 為 32 (因此總 batch size 為 8 * 32 = 256),總訓練時長為 8 小時 53 分鐘 (你可以在 此處 查看此次訓練的 TensorBoard 日志)。
我們在 Gaudi2 上使用相同的超參重新運行相同的腳本,總訓練時間為 2 小時 55 分鐘 (日志見 此處)。也就是說,無需任何更改,Gaudi2 的速度提升了 3.04 倍。
由于與 Gaudi1 相比,Gaudi2 的單卡內(nèi)存大約增加了 3 倍,因此我們可以充分利用這更大的內(nèi)存容量來增大 batch size。這將會進一步增加 HPU 的計算密度,并允許開發(fā)人員嘗試那些在 Gaudi1 上無法嘗試的超參。在 Gaudi2 上,我們僅需 2 萬訓練步,每張卡的 batch size 為 64 (總 batch size 為 512),就可以獲得與之前運行的 6.5 萬步相似的收斂損失,這使得總訓練時長降低為 1 小時 33 分鐘 (日志見 此處)。使用新的配置,訓練吞吐量提高了 1.16 倍,同時新的 batch size 還極大地加速了收斂。總體而言,與 Gaudi1 相比,Gaudi2 的總訓練時長減少了 5.75 倍,吞吐量提高了 3.53 倍。
Gaudi2 比 A100 更快: batch size 為 32 時,Gaudi2 吞吐為每秒 1580.2 個樣本,而 A100 為 981.6; batch size 為 64 時,Gaudi2 吞吐為每秒 1835.8 個樣本,而 A100 為 1082.6。這與 Habana 宣稱的?batch size 為 64 時 Gaudi2 在 BERT 預訓練第一階段上的訓練性能是 A100 的 1.8 倍
?相一致。
下表展示了我們在 Gaudi1、Gaudi2 和英偉達 A100 80GB GPU 上測得的吞吐量:

BS?是每張卡上的 batch size。Gaudi 訓練時使用了混合精度 (bf16/fp32),而 A100 訓練時使用了 fp16。所有數(shù)據(jù)都基于 8 卡分布式訓練方案測得。
使用 Stable Diffusion 進行文生圖
?? Optimum Habana 1.3 的主要新特性之一是增加了 對 Stable Diffusion 的支持?,F(xiàn)在,在 Gaudi 上進行文生圖非常容易。與 GPU 上的 ?? Diffusers 不同,Optimum Habana 上的圖像是批量生成的。由于模型編譯耗時的原因,前兩個 batch 比后面的 batch 的生成速度要慢。在此基準測試中,在計算 Gaudi1 和 Gaudi2 的吞吐量時,我們丟棄了前兩個 batch 的生成時間。
這個腳本 使用的 batch size 為 8,其?gaudi_config
?為?Habana/stable-diffusion
。
我們得到的結(jié)果與 Habana 發(fā)布的 數(shù)字 一致,如下表所示。Gaudi2 的延遲比 Gaudi1 快 3.51 倍 (0.925 秒對比 3.25 秒),比英偉達 A100 快 2.84 倍 (0.925 秒對比 2.63 秒)。?而且,Gaudi2 支持的 batch size 更大。

更新: 上圖已更新,因為 SynapseAI 1.10 和 Optimum Habana 1.6 為 Gaudi1 和 Gaudi2 帶來了額外的加速。
BS?是 batch size。Gaudi 上的推理精度為?bfloat16?,A100 上的推理精度為?fp16?(更多信息詳見 此處)。所有數(shù)據(jù)均為?單卡?運行數(shù)據(jù)。
微調(diào) T5-3B
因為每張卡的內(nèi)存高達 96 GB,Gaudi2 可以運行更大的模型。舉個例子,在僅應用了梯度 checkpointing 內(nèi)存優(yōu)化技術的條件下,我們成功微調(diào)了一個 T5-3B (參數(shù)量為 30 億) 模型。這在 Gaudi1 上是不可能實現(xiàn)的。我們使用 這個腳本 在 CNN DailyMail 數(shù)據(jù)集上針對文本摘要任務進行了微調(diào),運行日志見 這里。
結(jié)果如下表所示。Gaudi2 比 A100 80GB 快 2.44 倍。?我們發(fā)現(xiàn),目前在 Gaudi2 上的 batch size 只能為 1,不能設更大。這是由于在第一次迭代時生成的計算圖占了不少內(nèi)存空間。Habana 正在致力于優(yōu)化 SynapseAI 的內(nèi)存占用,我們期待未來新版本的 Habana SDK 能夠緩解這一問題。同時,我們還期待使用 DeepSpeed 來擴展此基準,從而看看引入 DeepSpeed 后平臺間的性能對比是否與現(xiàn)在保持一致。

BS?指的是每卡 batch size。Gaudi2 和 A100 使用的精度為 fp32,且啟用了梯度 checkpointing 技術。所有數(shù)據(jù)都基于 8 卡分布式訓練方案測得。
總結(jié)
本文討論了我們首次使用 Gaudi2 的經(jīng)歷。從 Gaudi1 到 Gaudi2 的過渡完全是無縫的,因為 Habana 的 SDK SynapseAI 在兩者上是完全兼容的。這意味著 SynapseAI 上的新優(yōu)化會讓兩個平臺同時受益。
可以看到,Habana Gaudi2 的性能與 Gaudi1 相比有了顯著提高,且其訓練和推理吞吐大約是英偉達 A100 80GB 的兩倍。
我們還知道了如何在英特爾開發(fā)者云上設置 Gaudi2 實例。設置完后,你就可以 Gaudi2 上使用 ?? Optimum Habana 輕松運行這些 例子。
如果你對使用最新的 AI 硬件加速卡和軟件庫加速機器學習訓練和推理工作流感興趣,可以移步我們的 專家加速計劃。如果你想了解有關 Habana 解決方案的更多信息,可以在 此處 了解我們相關信息并 聯(lián)系他們。要詳細了解 Hugging Face 為讓 AI 硬件加速卡更易于使用而做的努力,請查閱我們的 硬件合作伙伴計劃。
相關話題
基于 Habana Gaudi 的 Transformers 入門
與 Hugging Face 和 Habana Labs 一起加速 transformer 模型的訓練 (網(wǎng)絡研討會)
感謝垂閱!如果你有任何疑問,請隨時通過 Github 或 論壇 與我聯(lián)系。你還可以通過 LinkedIn 聯(lián)系我。
英文原文:?https://hf.co/blog/habana-gaudi-2-benchmark
原文作者: Régis Pierrard
譯者: Matrix Yao (姚偉峰),英特爾深度學習工程師,工作方向為 transformer-family 模型在各模態(tài)數(shù)據(jù)上的應用及大規(guī)模模型的訓練推理。
審校/排版: zhongdongy (阿東)