NVIDIA/apex

A PyTorch Extension: Tools for easy mixed precision and distributed training in Pytorch

何を解決するか

Apexは、PyTorchにおける混合精度および分散学習をより効率的かつスムーズにするためのユーティリティのセットを提供します。これらの更新されたユーティリティを、公式にPyTorchの上流コードベースに統合される前にユーザーに迅速に提供するための高速経路として機能します。

動作方法

さまざまなカスタムC++/CUDA拡張を実装しており、一般的なディープラーニング操作を最適化しています。これらの拡張には、最適化器(FusedAdamなど)の結合カーネル、正規化レイヤー(FusedLayerNormやFusedRMSNormなど)、分散学習用の通信プリミティブ(DistributedDataParallelやSyncBatchNormなど)が含まれます。ユーザーはPythonパッケージとしてインストールするか、特定のCUDA拡張をビルドすることで、最大のパフォーマンスと数値安定性を引き出すことができます。

対象ユーザー

NVIDIA GPU上でモデル学習のパフォーマンス、メモリ使用量、スケーラビリティを最適化する必要がある、PyTorchを使用するディープラーニングの実践者および研究者。

主な特徴

  • 混合精度学習: 混合精度の使用をスムーズにするツールで、学習を高速化します。
  • 分散学習: 複数GPUにわたる学習をスケーリングするためのユーティリティ。
  • 結合カーネル: オプティマイザおよび正規化レイヤーの高性能CUDA実装により、オーバーヘッドを削減します。
  • 柔軟なインストール: Pythonパッケージのみのインストールから、C++/CUDA拡張のフルセットまで、さまざまなビルド構成をサポートします。

関連

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