Communityコーディング&開発github.com

Wancha0/ascend-npu-porting

PyTorchコードをHuawei Ascend NPUに移植するための再利用可能なCodexスキル

ascend-npu-porting とは?

このスキルは、OpenAI CodexなどのAIエージェントがPyTorchコードをHuawei Ascend NPUプラットフォームに適応させるための再利用可能なスキルです。主にtorch_npuライブラリを使用したコード変換、デバイス管理、AMP(自動混合精度)設定、データローダーの最適化など、Ascend NPU環境への効率的な移植に必要な一連の処理を自動化します。CUDAベースのコードをAscend NPUで動作させる際のトラブルシューティングや、NPU固有のAPIへの置き換えもサポートします。コードベース全体の移植作業の時間を大幅に短縮し、開発者がより重要なロジックに集中できるようにします。

対応~Claude Code✓Codex CLI~Cursor
npx skills add Wancha0/ascend-npu-porting

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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環境変数を適切に設定してください。

参考リンク

関連スキル