分析與特性:AI 工作負載與 MLPerf Storage
測試 AI 工作負載的儲存空間是一項具有挑戰性的任務,因為執行實際訓練可能需要昂貴且快速變更的特殊硬體。這就是 MLPerf 協助測試 AI 工作負載儲存空間之處。
為何選擇 MLPerf?
MLCommons 生產許多著重於擴充 AI 加速器效能的 AI 工作負載基準。他們最近運用這項專業知識,專注於 AI 的儲存空間,並建立了壓力測試 AI 訓練儲存空間的基準。此基準的目標是以與實際 AI 訓練流程相同的方式執行 I/O,提供更大的資料集,以限制檔案系統快取和/或解耦訓練硬體(GPU 和其他加速器)對儲存測試的影響。1
MLPerf Storage 採用深度學習 I/O (DLIO) 基準,該基準使用與實際 AI 訓練工作負載相同的資料加載器(pytorch、tensorflow 等),將資料從儲存裝置移至 CPU 記憶體。在 DLIO 中,加速器由睡眠時間和批次大小定義,其中睡眠時間是從模擬加速器中執行實際工作負載計算而來。工作負載可以透過新增執行 DLIO 的用戶端,以及將訊息傳遞介面 (MPI) 用於每個用戶端的多個模擬加速器來擴大。
MLPerf 透過定義一組配置來代表提交給 MLPerf 訓練的結果。目前,實作的模型為 BERT(自然語言處理)和 Unet3D(3D 醫療影像),結果會以每秒樣本和支援的加速器數量報告。若要通過測試,必須維持最低 90% 的加速器使用率。
Unet3D 分析
雖然 MLPerf 同時實施 BERT 和 Unet3D,但我們的分析著重於 Unet3D,因為 BERT 基準不會大力地對儲存 I/O 造成壓力。Unet3D 是一種 3D 醫療影像模型,可將大型影像檔案讀取到具有手動註釋的加速器記憶體中,並產生密集的容積分段。從儲存裝置的角度來看,這看起來像是從您的訓練資料集隨機讀取大型檔案。我們的測試探討了使用 7.68TB 美光 9400 PPO NVMe SSD 的一個加速器與 15 個加速器的結果。
首先,我們將檢查裝置隨時間的吞吐量。在圖 1 中,一個加速器的結果測量範圍主要介於 0 和 600MB/s 之間,部分峰值為 1,600 MB/s。這些峰值對應於開始計算前在 Epoch 開始時填充的預先擷取緩衝區。在圖 2 中,我們看到對於 15 個加速器,工作負載仍然爆發,但達到裝置支援的最大吞吐量。然而,由於工作負載爆發,總平均吞吐量比最大值少 15-20%。
接下來,我們將檢視相同工作負載的佇列深度 (QD)。只有一個加速器,QD 永遠不會超過 10 個(圖 3),而有十五個加速器,QD 提早達到約 145 個,但在其餘測試中穩定在 120 個和以下(圖 4)。然而,這些時間序列圖不會向我們顯示完整圖片。
在將 I/O 的百分比視為特定 QD 時,我們發現對於單一加速器而言,幾乎 50% 的 I/O 是佇列中的第一個交易 (QD 0),而幾乎 50% 是第二次交易 (QD 1),如圖 5 所示。
在十五個加速器中,大部分交易以 QD 80 和 110 進行,但有很大一部分發生在 QD 10 以下(圖 6)。此行為顯示,工作負載中有閒置時間預期會持續顯示高吞吐量。
從這些結果中,我們可以看出,從存儲的角度來看,這些工作負載並不簡單。此外,隨機的大區塊傳輸和閒置時間與大量傳輸混合,MLPerf Storage 工具透過重現真實的 AI 工作負載,將對各種模型的儲存裝置基準測試非常有幫助。