AIワークロードとMLPerfストレージの分析と特性評価
AIワークロード向けストレージのテストは、困難なタスクとなります。実際のトレーニングを実行するには、高価で急速に変化を続ける特殊なハードウェアを必要とするためです。そこでAIワークロード向けストレージのテストに役立つのがMLPerfです。
MLPerfが選ばれる理由
MLCommonsは、AIアクセラレーターのパフォーマンス向上に焦点を当てたAIワークロードにおけるベンチマークを数多く開発しています。最近では、そのノウハウをAI向けストレージに応用し、AIトレーニングにおいてストレージに掛かるストレスに関するベンチマークを構築しました。このベンチマークが目標とするところは、実際のAIトレーニングプロセスと同様のI/Oを実行することです。ファイルシステムキャッシュの影響を抑えるためにより大きなデータセットを提供し、トレーニングハードウェア(GPUなどのアクセラレーター)をストレージテストから切り離すことを目指しています。1
MLPerfストレージは、実際のワークロード(pytorch、tensorflowなど)と同様のデータローダーを使用して、ストレージからCPUメモリにデータを移動するDeep Learning I/O (DLIO) ベンチマークを活用しています。DLIOでは、アクセラレーターはスリープ時間とバッチサイズによって定義されます。スリープ時間は、エミュレートされるアクセラレーターで実際のワークロードを実行することで算出されます。ワークロードは、DLIOを実行するクライアントを追加し、クライアントごとにエミュレートされたアクセラレーターに対してメッセージ・パッシング・インターフェース(MPI)を使用することで、スケールアップまたはスケールダウンが可能です。
MLPerfは、MLPerfトレーニングに提出された結果を表す一連の構成を定義することで機能します。現在導入されているモデルには、BERT(自然言語処理)とUnet3D(3D医療用イメージング)があり、1秒あたりのサンプル数とサポートされているアクセラレーター数で結果が報告されています。テストに合格するためには、最低限90%のアクセラレーター使用率を維持する必要があります。
Unet3D分析
MLPerfは、BERTとUnet3Dの両方で導入されていますが、私たちの分析はUnet3Dに焦点を当てています。これは、BERTのベンチマークがストレージI/Oに大きな負荷を掛けないためです。Unet3Dは3Dの医療用イメージングモデルで、手動アノテーションで大容量の画像ファイルをアクセラレーターメモリに読み込み、高密度の立体セグメンテーションを生成します。これをストレージの観点から見ると、トレーニングデータセットからランダムに大容量ファイルを読み込むように見えます。私たちのテストでは、7.68TBのMicron 9400 PPO NVMe SSDを使用し、アクセラレーターが1基の場合と15基の場合を比較しています。
まず、デバイスのスループットの経時変化を観察します。図1では、アクセラレーターが1基の際の結果が主に0から600MB/秒となり、ピーク値として1,600MB/秒も測定されたことが示されています。これらのピーク値は、計算開始前のエポック介し時にプリフェッチのバッファが満たされていることに対応しています。図2が示す、15基のアクセラレーターでは、ワークロードは依然バーストしていますが、デバイスでサポートされる最大スループットに達しています。しかし、ワークロードのバーストにより、総平均スループットは最大値より15~20%低くなっています。
次に、同じワークロードにおけるキュー深度(QD)を検討します。アクセラレーターが1基の場合、QDは10を超えることはありません(図3)が、15基の場合は初期に約145でピークに達し、その後のテストの残り時間中は120以下で安定します(図4)。しかし、こうした時系列チャートだけでは全体像を把握することはできません。
図5で示されるように、特定のQDにおけるI/Oの割合については、アクセラレーターが1基の時に50%近くのI/Oがキューの最初のトランザクション(QD 0)で、残りの50%近く2番目のトランザクション(QD 1)でした。
アクセラレーターが15基の場合、ほとんどのトランザクションがQD 80~110の間に発生していますが、かなりの部分が10未満のQDで発生しています(図6)。この動作からは、一貫して高いスループットを示すと予想されていたワークロードにアイドル時間が存在することが示されています。
これらの結果から、ストレージの観点から見ると、ワークロードが単純ではないことが分かります。また、大容量のランダムブロック転送とアイドル時間が、大規模な転送バーストと混在しており、MLPerfストレージはこうした現実的なワークロードを再現することで、様々なモデルのストレージをベンチマークする上で非常に有用なツールとなります。