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拡張のフルセットまで、さまざまなビルド構成をサポートします。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト