12 ポイント 投稿者 xguru 2024-05-06 | 1件のコメント | WhatsAppで共有
  • Andrej Karpathyが純粋なC/CUDAで作ったシンプルなLLM学習コード
  • いまやFlash Attentionとともに、bfloat16でマルチGPUトレーニングを実行可能
  • 約3000行のC/CUDAコードで実装されており、全体としてPyTorchより最大7%程度高速
  • これまでに進めてきた内容
    • 混合精度学習(bfloat16)
    • 正規化されたログを具体化しない(現在のtorch.compileとは異なる)FusedClassifierを含む多数のカーネル最適化
    • Flash Attention(cuDNNから直接)
    • A100が128ビットのロード(LDG.128)およびストア(STS.128)命令を使うよう強制するPacked128データ構造
  • いまやマルチGPUトレーニングも可能
    • MPI+NCCLを用いたマルチGPUトレーニングの最初のバージョン
    • NVIDIA Nsight Computeによるトレーニング全体実行のプロファイリング
    • ZeRO(オプティマイザ状態のシャーディング)ステージ1のマージPR
  • 目標は、124Mから1.6Bに至るあらゆるモデルサイズのGPT-2ミニシリーズをC/CUDAで直接再現する、安定していて、クリーンで、テスト済みの、最小限で、強化され、十分に最適化されたLLMスタックを作ること