用途:帮助把 GPU 上的代码(尤其是深度学习、模型推理相关代码)迁移到华为昇腾 NPU,覆盖代码分析、堵点识别、适配脚本编写、验证方案设计与报告生成。
主要能力:
- 代码仓库获取与分析:支持本地路径或 GitHub 链接,扫描 Python/CUDA/C++ 文件,识别入口、配置与依赖结构,输出代码结构报告。
- 堵点识别:搜索 CUDA API(如 cudaMalloc、cudaMemcpy、kernel<<<...>>>)、torch.cuda、TensorRT、Flash Attention 等 GPU 专用调用,按算子兼容性、内存、流与事件、cuBLAS/cuDNN、自定义算子、混合精度等分类给出 NPU 替代方案与迁移难度。
- 适配脚本编写:生成 npu_compat.py(设备检测兼容层)、npu_ops.py(算子封装)、build_npu.sh(编译脚本)等,并保留原文件创建 .npu 版本。
- 验证方案:生成 verify_npu.sh、精度验证脚本等,检查 NPU 驱动、CANN、torch_npu 环境,做模块导入、功能、精度与性能基准测试。
- 报告输出:生成 Markdown 报告 CodeReview_Results_YYYY-MM-DD.md,包含执行摘要、代码结构、依赖、堵点明细、适配代码清单、验证结果、适配指南与后续建议。
使用方式:将代码仓库路径或链接提供给该技能,由其按阶段执行分析、适配与验证;报告中提及需安装 CANN Toolkit 与 torch_npu,并可用 bash verify_npu.sh 运行验证。
适用场景:GPU 模型推理或训练代码迁移至昇腾 NPU、CUDA 算子重写评估、迁移可行性审查与整改清单生成。
限制:部分替代算子、性能提升幅度、环境版本与硬件相关结论需在真实 NPU 环境实测,资料未提供固定保证;具体支持范围取决于 CANN 与 torch_npu 版本,需人工确认。