核心概念
深度學習模型日益複雜,GPU 架構不斷更新,準確預測模型在不同 GPU 上的性能變得至關重要。NeuSight 架構通過將深度學習核心分解成較小的工作集(tile),並利用機器學習模型預測每個 tile 的設備利用率,從而實現更精準的 GPU 性能預測。
要約
NeuSight:深度學習訓練與推論中 GPU 性能預測的新方法
研究背景
近年來,深度學習模型的規模和複雜性呈指數級增長,對 GPU 性能的要求也隨之提高。然而,由於新 GPU 的可用性有限,開發者難以在實際硬件上測試模型性能。因此,準確預測模型在不同 GPU 上的性能變得至關重要。
現有方法的局限性
現有的 GPU 性能預測方法主要依賴分析模型、線性回歸模型或神經網絡方法。然而,這些方法在預測新模型和新 GPU 的性能時存在較大誤差,因為它們無法完全捕捉 GPU 硬件和軟件優化的複雜性。
NeuSight 架構
NeuSight 提出了一種基於機器學習的新型預測機制,該機制考慮了 GPU 中基於 tile 的執行策略以及深度神經網絡核心的計算和內存限制。
核心思想
NeuSight 的核心思想是將深度學習核心分解成多個較小的工作集(tile),並利用機器學習模型預測每個 tile 的設備利用率。然後,根據 GPU 架構定義的性能上限,利用預測的利用率來確定每個 tile、運算符和模型級別的延遲。
工作流程
- 核心執行預測: NeuSight 將每個深度學習核心分解成多個相同的 tile,並使用機器學習模型預測每個 tile 的延遲。
- 運算符級別預測: 根據深度神經網絡的數據流圖,將每個核心的預測延遲累加起來,以預測每個運算符的延遲。
- 模型級別預測: 將每個運算符的預測延遲累加起來,以預測整個模型的延遲。
NeuSight 的優勢
- 更高的準確性: 通過將核心執行分解成 tile 並考慮 GPU 性能限制,NeuSight 可以更準確地預測 GPU 性能。
- 更强的泛化能力: NeuSight 可以泛化到未見過的 GPU 和模型,因為它依賴於 GPU 架構細節而不是特定硬件的性能數據。
- 支持分佈式執行: NeuSight 可以預測在多 GPU 服務器上執行的分佈式訓練和推論的延遲。
結論
NeuSight 是一種新穎且有效的 GPU 性能預測方法,可以幫助開發者在沒有實際硬件的情況下評估模型性能,從而加速深度學習模型的開發和部署。
統計
自 2013 年以來,我們見證了模型規模的指數級增長,同時 GPU 的峰值性能也相應提高。
與最先進的先前工作相比,NeuSight 在 H100 上預測 GPT3 模型訓練和推理的延遲方面的百分比誤差分別從 121.4% 和 30.8% 降低到 2.3%,而 GPT3 和 H100 並未用於訓練任何框架。
在對 BERT、GPT2、GPT3、OPT、Switch Transformer 等多種 GPU(Nvidia H100、A100-80GB、V100、A100-40GB、P100、T4、L4)和深度學習工作負載進行的評估中,NeuSight 的百分比誤差為 8.9%,而基於 MLP 的先前工作的百分比誤差為 140%,基於線性回歸的先前工作的百分比誤差為 60.8%,而這些工作負載並未在 H100、L4 和 A100-80GB GPU 上進行訓練,並且僅在 GPT3 和 OPT 模型維度的一部分上進行了訓練。
在 4-GPU 服務器 H100(DGX Box)和 A100(NVLink)上進行分佈式訓練時,NeuSight 在 GPT2 和 GPT3 模型上的平均百分比誤差為 5.4%。