Ascend/pytorch
Ascend PyTorch adapter (torch_npu). Mirror of https://gitcode.com/Ascend/pytorch
何を解決するか
TorchNPUは、PyTorchのディープラーニングフレームワークを、華為(Huawei)のAscend AIプロセッサ(NPU)上で直接実行できるようにします。PyTorchの高レベルAPIとAscend NPUの特定のハードウェアアーキテクチャの間のギャップを埋め、開発者がPyTorchエコシステムを離さずにAscendの計算パワーを活用できるようにします。
動作方法
PrivateUse1と呼ばれるメカニズムを通じてPyTorchに統合されるアダプタプラグインとして機能します。以下の主要な機能モジュールを提供します:
- 基本計算:主流のAIワークロードをサポートするため、PyTorchのネイティブAPIおよびカスタムAPIを実装します。
- 分散学習:FSDP2を使用して大規模な学習を加速し、AllReduceやAllGatherなどの集約通信プリミティブおよびDTensorをサポートします。
- グラフモード:動的グラフキャプチャ、静的グラフ最適化、効率的なコード生成の組み合わせにより、学習および推論を高速化します。
- メモリ管理:仮想メモリ管理を採用してフラグメンテーションを低減し、分散環境におけるストリーム間のメモリ再利用を最適化します。
- デバッグとチューニング:計算、メモリ、通信のプロファイリングツールと、通信異常を監視する「WatchDog」を備えています。
対象ユーザー
PyTorchを使用し、モデルを華為のAscend NPUハードウェアに移行するか、その上で学習を実行してパフォーマンスを向上させたいAI開発者および研究者です。
主な特徴
- シームレスな統合:成熟したPyTorchの機能を引き継ぎつつ、NPU固有の最適化を追加します。
- 分散スケーリング:FSDP2およびDTensor向けの専用サポートにより、高性能な並列学習を実現します。
- パフォーマンス最適化:NPUGraphを活用したグラフモードにより、実行を高速化します。
- ハードウェア固有のチューニング:詳細なプロファイリングとリアルタイム通信監視を提供します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト