## Memo
- Micrisoftの研究グループによる、国際会議ICSE'24の論文。
- [[Unlocking LLM Performance with EBPF - Optimizing Training and Inference Pipelines - KubeCon24 Chaina]]で引用されていた論文。
- 多くの研究者がDLプログラム、ジョブ、コンパイラ、フレームワークの障害や欠陥の調査に焦点を当てている([[2023__ICSE__An Empirical Study on Quality Issues of Deep Learning Platform|Gao+, ICSE2024]]など)なかで、本研究は低GPU利用率に関する初の包括的な実証研究を実施する。
- GPU利用率
> Let 𝑡𝑗 be 𝐾 time points (1 ≤ 𝑗 ≤ 𝐾, and 𝑡 = 𝑡0 < 𝑡1 < · · · < 𝑡𝐾 = 𝑡ˆ) at which 𝑢𝑖,𝑗 —the current GPU utilization of the 𝑖-th GPU (1 ≤ 𝑖 ≤ 𝑁 )—was collected. Therefore, we calculated the average GPU utilization of the 𝑖-th GPU (denoted by 𝑈𝑖 ) and the job (denoted by 𝑈 ) as follows:
$
U_{i \in[1, N]}=\frac{\sum_{j=1}^K u_{i, j} \times\left(t_j-t_{(j-1)}\right)}{\hat{t}-t}, \quad U=\frac{\sum_{i=1}^N U_i}{N} .
$
![[Pasted image 20241009232543.png]]
## Memo with LLM
[[GPUクラスタ モニタリング・オブザーバビリティ 事例 - OpenAI Deep Research]]より
Microsoftの社内GPUクラスタ(Platform-X)上で実行されたディープラーニングジョブにおけるGPU利用率の低さに関する大規模調査研究です。実際のクラスタから平均GPU使用率50%以下のジョブ400件を無作為抽出し、ジョブのメタデータ・ログ・スクリプトなどを詳細解析したところ、706件もの「GPU低活用」事象が確認されました
。原因を分類すると、主要因の一つはGPU演算の不足であり(例: バッチサイズが小さ過ぎGPUが暇になる、実質はCPU中心の前処理に時間を費やしている等)、もう一つはGPU以外の処理による中断でした(例: フォールトトレランスのための頻繁なチェックポイント保存が同期的に行われ、その間GPUがアイドルになる等)
。実際、全低効率事象の約46%がデータ処理のボトルネックに起因し(メインメモリとGPU間のデータ転送の非効率が27.9%、分散学習時のGPU間通信が7.08%など)、約45%はモデル設計や学習設定に起因していました
。具体的には不適切に小さいバッチサイズの使用(25.64%)や同期的なチェックポイント処理(16.43%)が大きな要因でした
。興味深いことに、大半(約85%)の低GPU利用問題はスクリプトやコードの小規模修正で改善可能である一方、残りの約15%についてはプラットフォームやフレームワーク側の改良が必要だと指摘しています
。研究では実際に代表的なジョブに対し提案する修正を適用し、例えばBERTやSwin Transformerの学習で最大7.52倍・3.95倍の速度向上を達成できることを示しました
。本研究は具体的な改善策(開発者向け指針やプラットフォーム改良案)も提示しており、GPU資源の効率的活用に向けた貴重な知見を提供しています
(調査に使用したログ等は社内データのため公開されていません)。
## Abstract
ディープラーニングは、数多くのインテリジェントなソフトウェアアプリケーションにおいて重要な役割を果たしている。 企業内の開発者は、共有のマルチテナントプラットフォーム上でディープラーニングジョブを投入し実行することで、モデルの効率的なトレーニングとテストを行っている。 これらのプラットフォームは通常、ディープラーニングの計算を高速化するために多数のグラフィックプロセッシングユニット([[GPU]])を備えている。 しかし、一部のジョブでは割り当てられたGPUの利用率がかなり低く、その結果、リソースが大幅に無駄になり、開発の生産性が低下している。本稿では、マイクロソフト社内のディープラーニングプラットフォームから収集した400件の実ジョブ(平均GPU使用率50%以下)を基に、ディープラーニングジョブにおけるGPU使用率の低さに関する包括的な実証研究を提示する。 ジョブのメタデータ、実行ログ、実行時間メトリクス、スクリプト、プログラムを詳細に調査した結果、706件のGPU使用率の低さに関する問題を発見した。 さらに、共通する根本原因を特定し、それに対応する修正策を提案する。主な調査結果は以下の通りである。(1)ディープラーニングジョブのGPU利用率の低さは、GPU計算の不足とGPU以外のタスクによる中断に起因する。(2)問題の約半数(46.03%)はデータ操作に起因する。(3)問題の45. 問題の45.18%はディープラーニングモデルに関連しており、モデルのトレーニングと評価の両方の段階で発生している。(4)GPU使用率が低い問題のほとんど(84.99%)は、コードやスクリプトを少し修正するだけで解決できる。この調査結果に基づき、開発者がクラウドベースのプラットフォームでGPUをより有効に活用するための潜在的な研究の方向性を提案する。