並列計算(Parallel Computing)とは、複数の演算ユニットを同時に使用して計算を行う手法です。AI・ディープラーニングでは、大量のデータに対する同じ演算の繰り返しや、巨大なモデルの分散処理を並列に実行することで、学習時間の短縮と大規模モデルの実現を可能にしています。
並列計算の種類
並列計算には複数のレベルがあります。チップ内の並列性(GPU内の数千コアによる並列処理)、チップ間の並列性(マルチGPU/マルチノード間でのデータ分割)、命令レベルの並列性(パイプライン処理)などです。AI学習では、これらを組み合わせた多層的な並列化が行われます。
AI学習の並列化戦略
大規模AI学習では、データ並列(Data Parallelism)、モデル並列(Model Parallelism)、パイプライン並列(Pipeline Parallelism)、テンソル並列(Tensor Parallelism)などの戦略を組み合わせた3D並列化が行われます。GPT-4クラスのモデル学習には数万GPUの並列処理が必要とされます。
並列計算の課題
並列計算のスケーラビリティは、通信オーバーヘッドと同期コストにより制限されます。GPU間・ノード間のデータ転送時間が演算時間に対して無視できなくなると、GPU追加による高速化の効果が減衰します。通信と演算のオーバーラップ、効率的な通信アルゴリズム(Ring AllReduceなど)の設計が重要です。