ascend-npu-porting は何をしますか?
PyTorchコードをHuawei Ascend NPUに適応させるための再利用可能なCodexスキル
概要
このスキルは、CUDAベースのPyTorchコードをHuawei Ascend NPU環境で動作するように変換します。torch_npuライブラリを活用し、GPUに依存するAPI呼び出しをNPU互換のものに置き換えます。
主な機能
- デバイス管理:
cuda()をnpu()に、torch.cudaをtorch.npuに自動変換 - AMP対応:
torch.cuda.ampをtorch.npu.ampに置き換え - データローダー最適化: NPUメモリを考慮したバッチサイズやワーカー数の調整
- エラーハンドリング: 非互換APIの検出と代替実装の提案
使用方法
Codexエージェントに以下のように指示してください:
このPyTorchコードをAscend NPUに移植してください。
対応プラットフォーム
- Huawei Ascend 910/310P
- PyTorch 1.11+
- torch_npu 1.11.0+
注意事項
- すべてのCUDAカーネルが直接変換できるわけではありません。一部のカスタムカーネルは手動での書き換えが必要です。
- メモリ管理はNPUの特性に合わせて調整する必要があります。
- デバッグ時は
ASCEND_RT_VISIBLE_DEVICES環境変数を適切に設定してください。