cfregly/ai-performance-engineering

Code, labs, and resources for O'Reilly AI Systems Performance Engineering: GPU optimization, distributed training, inference scaling, and full-stack tuning.

何を解決するか

このプロジェクトは、現代のAIワークロードのパフォーマンスを最適化するために必要なコード、ツール、リソースを提供します。単なるハードウェア性能に頼るのではなく、GPU、インターコネクト、ランタイムスタック、アルゴリズムを含む全体のスタックをチューニングすることで「有効出力(goodput)」を達成する課題に対処し、トレーニングおよび推論におけるトークンあたりコストの削減とスループットの向上を実現します。

仕組み

実証的でプロファイリングを最優先するアプローチを採用し、Nsight Systems、Nsight Compute、PyTorchプロファイラーなどのツールを活用してボトルネックを特定します。このプロジェクトは以下の最適化レイヤーをカバーしています:

  • ハードウェア・カーネルレベル:CUDA C++およびOpenAI Tritonを使用して高効果のカーネルを記述し、メモリアクセスパターンを最適化。
  • フレームワークレベル:PyTorchコンパイラスタック(torch.compile)および分散戦略(FSDP、TP、PP、CP)を活用してトレーニングをスケーリング。
  • サービングレベル:vLLM、SGLang、TensorRT-LLMを用いた高スループット推論を実装し、非統合型prefill/decodeおよびページ化KVキャッシュなどの技術を採用。
  • システムレベル:OS設定、Docker/Kubernetesオーケストレーション、ネットワーク(NCCL)をチューニングして通信の遅延を最小限に抑える。

対象ユーザー

AI/MLエンジニア、システムエンジニア、研究者、プラットフォームチームなど、大規模なトレーニングおよび推論パイプラインの構築または運用に携わる方々を対象としています。

主な特徴

  • 包括的なチェックリスト:ハードウェア計画から電力管理までをカバーする200項目以上のパフォーマンスチェックリスト。
  • フルスタックカバレッジ:低レベルのCUDA/Tritonカーネルから高レベルのKubernetesオーケストレーションまで、幅広いガイドラインを提供。
  • 高度な推論技術:トリアン・パラメータモデル向けの非統合型prefill/decodeアーキテクチャとKVキャッシュチューニングに焦点を当てています。
  • 実用的なツールセット:業界標準のプロファイラーおよびコンパイラスタックとの統合により、実証的なチューニングを可能にします。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト