NECのAI研究用スーパーコンピューターにおけるGPU性能を最大限引き出すためのOSS活用方法
2024/06/28
日本電気株式会社
グローバルイノベーション戦略統括部
深層学習基盤開発グループ 上席研究員
北野 貴稔© NEC Corporation 2024

北野貴稔

KITANO TAKATOSHI
https://jpn.nec.com/rd/people/takatoshi_kitano.html• インド国民13億人が利用する世界最大の大規模生体認証システム（アドハー）を実現、政府・空港等を中心に生体認証PFを世界40か国へと展開• 機械学習の研究テーマリーダーを経て、現在は国内企業で最大級となる「NECのAIスーパーコンピュータ」の企画・設計・開発・運用を主導• 担当の技術レイヤは全て。NECのAIスパコンの開発責任者として、HWの選定・調達から計算機基盤・SW基盤等のアーキ設計・開発・運用の全てを担当
2© NEC Corporation 2024

NECの国内最大級のAI研究用スーパーコンピュータの概要
AI研究における計算能力の重要性を予期し、2020年にAIスパコンを企画。
2023年3月にA100を928GPU搭載した国内最大級のAIスパコンを全面稼働開始
現在の利用状況
利用する
ユーザー

NECの研究者

利用する研究者数

数百名

AIスパコンの利用率

100%

AIスパコン(A100が928基）
開始時期

2023年3月

GPUの演算能力100⇒580 (PFLOPS)

NECの生成AI研究を大幅強化！
3© NEC Corporation 2024

NECのAI研究用スーパーコンピュータの構成の概要
Kubernetesを中核に据えたOSSをフル活用したGPUクラスタ。全GPUサーバーはLustreをマウント、Lustre上に配置されたデータセットを928GPUで分散学習可能。
AI研究者

NECのAIスーパーコンピュータの構成概要
ファイルコピー

データセット・学習プログラムの転送
公開鍵でのSSHログイン

GPUサーバー群

ストレージ
ゲートウェイノード

ワーカ
コンテナ

ストレージへのデータ転送(バッチ・インタラクティブ)

MPIマスタサーバー群

低速・大容量

マスタコンテナ

ジョブ
操作

4

ワーカ
コンテナ

…

ログインノード

ジョブ投入

高速・小容量SSDFS

ログイン
公開鍵でのSSHログイン

DDNストレージ

分散学習
実行

ジョブスケジュール© NEC Corporation 2024

ワーカ
コンテナ

ジョブ実行HDDFS

AIスパコンでGPU性能を引き出すための主要なポイント
GPUサーバー-ストレージサーバー間・GPUサーバー内・サーバー間のボトルネックをなくし、GPUに十分にデータを供給し、GPUの演算性能を活かすと共に多数GPUのスケーリング効率を高めて、GPU性能を引き出す（1）GPUサーバー - ストレージ間AIスパコンでGPU性能を活かすためのポイント

データ供給のボトルネックをなくし計算できるように(3-1) データ転送効率を向上(3-2) ストレージからの通信時間を隠蔽

GPUサーバー群（2）GPUサーバー内
演算性能を活かすためノード内ボトルネックをなくす(1-1)GPUメモリ帯域ネックの低減(1-2)ノード内GPU間通信を速く

ワーカ
コンテナ

MPIマスタ
サーバー群

高速・小容量

ワーカ
コンテナ

…

低速・大容量(1)

マスタコンテナ(2-1)GPU間通信を速く(2-2)計算時間を増やし、通信の影響を小さく(2-3)通信と計算をオーバーラップし通信を隠蔽
5(2)DDNストレージ

SSDFS（3）GPUサーバー間通信オーバーヘッドを低減しスケーリング効率を向上(3)© NEC Corporation 2024

分散学習実行

ワーカコンテナ

HDDFS

(1)GPUサーバー・ストレージ間(1-1) WebDataset等でI/Oを固め、データ転送効率を向上
WebDatasetで複数のファイルをtar等で固めることで、分散ファイルシステムのメタデータアクセスのIOPSを低減すると共に、ランダムリードをシーケンシャルリードに変えてデータ転送効率を向上◆ WebDataset/TFRecordを使う理由✓ 分散ファイルシステムで必要なメタデータのIOPSを低くし、MDSをボトルネックにせずに✓ 深層学習ではデータへのランダムI/Oが中心に⇒ ランダムReadをシーケンシャルのReadに変えて、データの転送の効率をあげる。

◆ ファイルシステムにそのまま置かれることもWebDataset

PyTorch
DataLoader

dataset0000.tar

Batch 00000.jpg
0000.jpg
0000.json
0000.json
0001.jpg0001.jpg0001.json
0001.json

Batch 1

Batch 2

✓ 研究者の利便性は下がるのでDNE1/DNE2などでファイ
ルシステム側で気合で頑張ることも…
DDN(Lustre)6© NEC Corporation 2024

(1)GPUサーバー・ストレージ間(1-2) データのPrefetchを行いストレージへの通信時間を隠蔽
PyTorch/TensorFlowなどほぼ全ての深層学習FWはデータのPrefetchをサポート。
Prefetchすることでストレージの通信時間を隠蔽、学習に時間を使えるようにする。

Main（学習）

Index

学習とは
非同期

Worker

Index

Index

WorkerWorkerData

PyTorchのDataLoaderの構造

7© NEC Corporation 2024

Index

WorkerPrefetch ストレージ（Lustre）
200GbE

(2)GPUサーバー内(2-1) 精度維持が可能でメモリ使用量を低減できるPrecisionを利用、メモリ帯域のボトルネックを緩和

深層学習では基本的にメモリ律速。PyTorch等の深層学習FWで、TF32/BF16 または Mixed Precisionを使うことにより、メモリ帯域のボトルネックを緩和し高速化。

出展:NVIDIAホワイトペーパー
HBM2e:GPUメモリ帯域2.039TB/sec

多くのAIの学習はメモリ律速GPUメモリ帯域幅はAIの学習速度向上に重要
8© NEC Corporation 2024

⚫ TF32はRangeはFP32と同じで、PrecisionはFP16⚫ TF32/BF16は精度は落ちづらいが、メモリ帯域幅のボトルネックが緩和！

(1)GPUサーバー内(2-2)ノード内でNVLinkを使うようにNCCLを設定
PCIスイッチ経由ではなく、NVLinkを使うように、ノード内構成に合わせてNCCLの環境変数を正しく設定する。GPU間を速いパスを使うことが重要。
x16

PCIe Gen4 x16
x16

PLX

x16

A100
SXM
4x16

A100
SXM
4x16

A100
SXM
4x16

A100
SXM
4NIC DPx16x16PLXx16x16

Xeon
SPx16

NIC

NIC

x16

UPIXeonSPNIC

NIC DP

Ice Lake-SPx16

PLX

x16

x16

A100SXM
4A100
SXM
4NIC

Ice Lake-SP

PLXx16

A100
SXM
4x16

A100
SXM
4

第3世代NVLinkx12600GB/sec
9NVSwitch×6

NVSwitch© NEC Corporation 2024

(3)GPUサーバー間(3-1) NCCLでGPUDirect RDMAを利用して低レイテンシー化、分散学習効率を向上
深層学習FWは、NCCLを使ってサーバー間で通信。NCCLがGPUDirect RDMAを用いるように設定することで低レイテンシにし、計算に占める通信時間の割合を小さくすることで分散学習効率を向上
GPUDirectRDMAでノード間の通信を低レイテンシに

AllReduce等の通信時間を短くし分散学習効率を向上
Ex) 分散学習での勾配の集約・平均での通信

Ex) Transformer Layerでのテンソル並列での通信

10© NEC Corporation 2024
ATP: Adaptive Tensor Parallelism for Foundation Modelsより

(3)GPUサーバー間(3-2) バッチサイズを大きくすることで、大規模GPUでのGPU利用率を向上⚫ GPU数に比例してバッチサイズを増加させ、GPUの仕事量を一定にし、大規模GPUを活用⚫ 通信時間が計算時間に対して十分に小さくなるようバッチサイズを増加し、GPU利用効率を向上◆ GPU数に比例してGPUのバッチサイズ大きくすることで、GPUが増えてもGPUの仕事量を一定にし、大規模GPUを活用する
Ex) GPU数 1、Batch Size: 16

GPU数 1024、Batch Size: 16 * 1024

◆ バッチサイズを大きくしすぎると、汎化性能が落ちたり、収束しづらくなったりする。精度・バッチサイズ・ハイパラの調整は、実験結果をよく見て。
◆ GPUの計算時間が通信時間より十分小さくなるようにすることで、通信時間の影響を最小化することで、GPUの利用効率を高める
通信時間

計算時間
11

© NEC Corporation 2024

×N

(3)GPUサーバー間(3-3) 通信と計算のオーバーラップで通信時間を隠蔽し、常時計算を可能に
通信と計算のオーバーラップは、Double Bufferingなど様々な手法が存在。これにより、学習でGPUを使えるようにすることが重要。ただ、オーバーラップによるデバッグの難易度上昇には注意。

Ex) Double Buffering
Forward/Backwardのパスを勾配の集約とをオーバーラップし、前イテレーションの結果を使って、勾配の集約の通信時間を隠蔽

FowardBackward

Optmize（Weight Update）

Communication

Gradient Reduction

12Computation© NEC Corporation 2024

まとめ - GPUのパフォーマンスエンジニアリングは先端の総合格闘技
AIスパコンは、先端のHW/SWの総合格闘技であり、HWからSWを見る＋SWからHWを見るというPF視点とユーザー視点の両方の視点が、分散学習のパフォーマンスエンジニアリングには必須。

✓ AIスパコンは、GPUサーバー、高速ネットワーク、分散ファイルシステムから構成され、システム上のボトルネックが至る所に存在

SW（ユーザー視点）✓ ハードウェアの性能をソフトウェアが越えることはなく、ソフトウェアがハードウェア（NWも含めて）どう使うかを、よく意識する必要がある✓ システムの全体構成に基づいて、各部分でのHW上のボトルネックを認識して、PyTorchやNCCL等の技術変化の速いSW群を追いかけて活用する

13© NEC Corporation 2024

HW（PF視点）

NECのAIスパコンに関する社外発表情報
NECのAIスパコンに関する技術的内容や開発の狙いなどの情報を発信しています
ご興味ある方は、是非ご覧になってください。
招待講演記事など
https://jpn.nec.com/rd/people/takatoshi_kitano.html
NEC北野によるAIスパコン開発の狙い、技術的特徴等のインタビュー記事など

社会価値を創造するNECのAIスーパーコンピュータ
https://jpn.nec.com/rd/aisupercomputer/index.html

NECのAI研究用スーパーコンピュータの技術スペック等を解説
NVIDIA/DDNのイベントの基調講演（技術説明）
https://www.youtube.com/watch?v=DmXRIae1Q8k
NEC北野によるAIスパコンのアーキテクチャの解説
14© NEC Corporation 2024