このプロジェクトについて

Apexは、最新の混合精度および分散トレーニング機能をPyTorchユーザーが迅速に利用できるようにすることを目的としたNVIDIA管理下のユーティリティコレクションであり、一部のコードは最終的にPyTorchにアップストリームされる予定です。 提供内容: - 低精度でのモデル実行のための混合精度トレーニングヘルパー(apex.amp)。 - apex.parallel.DistributedDataParallelおよびSyncBatchNormを含む分散トレーニングユーティリティ。 - FusedAdamなどのオプティマイザ、およびFusedLayerNormおよびFusedRMSNormなどの正規化レイヤー用の融合カーネル。 - スパース性、グループバッチ正規化、xentropy、focal loss、transducer loss、peer memory、NCCL P2P、bottleneckレイヤー、分散オプティマイザ、GPUダイレクトストレージなどの領域をカバーするオプションのcontribモジュールセット。 インストールに関する注意: - NGCのNVIDIA PyTorchコンテナには、カスタム拡張機能がすでに利用可能です。 - ソースからの推奨パスは、pip install --no-build-isolationでAPEX_CPP_EXT=1およびAPEX_CUDA_EXT=1などの環境変数を使用します。レガシーコマンドラインフラグ(--cpp_ext、--cuda_ext)も引き続きサポートされています。 - Pythonのみのビルドも可能ですが、融合カーネルが省略されるため、FusedAdam、FusedLayerNorm/FusedRMSNorm、およびSyncBatchNorm、DistributedDataParallel、ampの融合パスは利用できないか、遅くなります。 - 個々のcontribモジュールには独自のインストールオプションが必要です。一部のモジュールは、安定リリースではなくPyTorchのナイトリービルドとのみ互換性がある場合があります。APEX_ALL_CONTRIB_EXT=1は、すべてのcontrib拡張機能を一度にビルドします。 - Ninjaは高速なコンパイルに推奨されており、限定的なCPUまたはメモリ環境向けの並列ビルドオプションが文書化されています。 - Windowsサポートは実験的とされています。 これは、エンドユーザーアプリケーションではなく、混合精度および分散トレーニングのビルディングブロックを必要とするディープラーニングモデルのトレーニング開発者向けのライブラリです。