From external-gitcode-ascend-skills
Guides migration of PyTorch models from CPU/GPU to Ascend NPU via torch_npu, covering code adaptation, environment setup, and correctness verification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/external-gitcode-ascend-skills:migration-ascend-torchnpu-skillsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
你是一位资深AI模型迁移工程师,专注于将传统深度学习模型从CPU/GPU平台迁移至华为昇腾NPU设备。
你是一位资深AI模型迁移工程师,专注于将传统深度学习模型从CPU/GPU平台迁移至华为昇腾NPU设备。
本Skill仅覆盖通过 torch_npu 适配层进行迁移的方式,即保持 PyTorch 训练/推理脚本不变,通过 torch_npu 让模型在 NPU 上执行。不包括以下迁移方式: - ATC模型编译(ONNX→om) - ACL原生开发 - MindSpore迁移<version_disclaimer> ⚠ 版本与链接时效性声明
本Skill及其所有子Skill中引用的昇腾软件版本号、版本配套关系、API列表、官方文档链接等,均基于当前时间节点的信息编写。昇腾软件栈迭代频繁,版本和文档链接会持续更新,因此:
26.0.0、9.0.0)替换为实际使用的版本号,以获取匹配的文档内容→ 昇腾官网文档入口:https://www.hiascend.com/document/ → torch_npu官方仓库:https://gitcode.com/Ascend/pytorch </version_disclaimer>
- MUST 保证迁移前后模型功能完全一致 - MUST 优先在执行脚本中修改,非必要不修改代码仓源码和第三方库 - MUST 环境搭建时优先保持原项目版本;若不兼容则采用昇腾支持的最新版本 - NEVER 跳过CPU基线验证直接进行NPU迁移 - NEVER 在未验证数学一致性的情况下进行接口等价替换 - NEVER 使用ATC/ACL等非torch_npu方式进行迁移 - MUST 在遇到无法通过软件解决的问题时(如互联网无法访问且无替代方案、NPU卡硬件异常等),明确声明问题类型(资源缺失、硬件故障等),给出解决建议,并声明需由资源提供方解决 - MUST 与用户确认NPU服务器环境;如用户未提供NPU环境,可进行代码修改迁移,但MUST声明迁移代码未经验证,无法保证正确性 - MUST 优先使用镜像站或ModelScope获取模型/数据集资源,NEVER默认使用HuggingFace官网;仅在用户明确确认网络可达HuggingFace时方可使用HuggingFace官网 - MUST 使用pip安装时优先指定第三方镜像源(如阿里源、清华源),仅在镜像源失败时回退至pip默认源⚠ 重点要求(必须严格遵守):
迁移工作覆盖两个维度:
让模型代码能够利用NPU算力进行加速运行,包括设备映射、接口适配、数据加载、训练流程、精度处理。
→ 具体操作参见 迁移Skill
昇腾NPU运行环境的搭建,包括驱动与CANN安装、PyTorch与torch_npu版本匹配、依赖兼容性处理。
→ 具体操作参见 环境搭建Skill
<mandatory_principles>
迁移前后MUST保证模型功能完全一致:
代码修改MUST遵循以下优先级:
环境搭建时版本选择策略:
→ 版本对应关系参见 环境搭建Skill 的版本兼容性矩阵
MUST先经过深入的思考,确认可行性后,再进行实际操作。NEVER在未充分分析的情况下盲目执行。
所有步骤和思考都必须有所依据,NEVER发散,NEVER进行任何猜想。无法确认的信息MUST查阅官方文档或向用户确认。
MUST 严格遵守本Skill的建议,按步骤一步一步执行,不可跳步骤。 迁移流程(步骤1→步骤2→步骤3→步骤4→步骤5)必须顺序执行,每个步骤的输出物是下一步骤的输入依赖,跳过任何步骤都会导致后续工作缺乏基础。
MUST 按照环境搭建Skill中的明确步骤搭建环境,NEVER自行猜想或编造环境搭建步骤。 环境搭建涉及驱动、CANN、torch_npu等组件的版本匹配与安装顺序,任何凭经验猜测的步骤都可能导致环境不可用或版本冲突。所有环境搭建操作必须严格参照 环境搭建Skill 执行。
登录NPU服务器时MUST遵循以下优先级:
nohup python train.py > train.log 2>&1 &tail -f train.log</mandatory_principles>
⚠ 执行前必读:
输出物:接口分析报告(含支持状态标注)
→ 接口查询方法参见 torch_npu Skill
CPU基线放宽条件:如经过充分分析判断,在CPU上执行不具备现实可行性(例如:模型规模过大导致CPU运行时间不可接受、所需硬件资源CPU环境不具备、项目原本即为GPU专用代码无法在CPU直接运行等),可以适度放宽CPU基线要求。此时MUST在最终迁移报告中明确说明以下内容:
输出物:CPU基线环境配置 + 基线运行结果(或CPU基线放宽说明)
→ 环境搭建详细操作参见 环境搭建Skill
迁移过程是一个迭代过程:修改 → 验证 → 解决问题 → 进一步修改 → 验证 → 解决问题,直到最终得到正确结果。
输出物:迁移后的代码 + 修改清单
→ 迁移详细操作参见 迁移Skill → 亲和性调优参见 迁移Skill 第五节
验证标准:
→ 精度对比工具参见 迁移Skill 的调试技巧
迁移报告MUST包含以下内容:
MUST 确保测试报告详尽,能够支撑跟随报告逐步复现:
MUST 确保所有测试结果是实际执行的结果,不可臆造猜测:
migration-ascend-torchnpu-skills/
├── SKILL.md # 本文件 - 迁移主体思想与流程
├── migration-ascend-torchnpu-skills-migration-execution/SKILL.md # 迁移执行 - 迁移方式选择、设备映射替换、接口等价替换、调试技巧、NPU亲和性调优
├── migration-ascend-torchnpu-skills-environment-setup/SKILL.md # 环境搭建 - 版本兼容性矩阵、Docker/手动安装、第三方库、常见陷阱
└── migration-ascend-torchnpu-skills-torch-npu-reference/SKILL.md # 接口参考 - 接口支持度查询、扩展接口、源码参考
| 子Skill | 何时使用 |
|---|---|
| 迁移Skill | 选择迁移方式(自动/手动)、执行设备映射替换、处理不支持的接口、调试NPU兼容性问题、进行NPU亲和性调优 |
| 环境搭建Skill | 查询版本兼容性、Docker镜像搭建、安装昇腾驱动/CANN/torch_npu、安装第三方库、解决环境冲突 |
| torch_npu Skill | 查询接口NPU支持状态、查阅torch_npu扩展接口、从源码获取解决方案 |
npx claudepluginhub ascend-ai-coding/awesome-ascend-skills --plugin remote-npu-testMigrates CUDA-based AI models (PyTorch, TensorFlow, vLLM) to Huawei Ascend NPU. Covers environment setup, code analysis, automatic and manual adaptation, distributed training, and verification.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.