工具迁移
工具迁移推荐使用命令行方式。
若用户想使用图形开发界面、或已安装MindStudio,可以参考《MindStudio 用户指南》中的“分析迁移>PyTorch GPU2Ascend”章节使用MindStudio中集成的PyTorch GPU2Ascend功能进行工具迁移。

当前工具迁移不支持使用distributed parallel(DP)模式的模型迁移。若用户训练脚本中包含昇腾NPU平台不支持的torch.nn.parallel.DataParallel接口,需要手动修改成torch.nn.parallel.DistributedDataParallel接口执行多卡训练。
使用命令行方式进行工具迁移的核心步骤如下:
- 环境准备。
- 配置环境变量。
- 以运行用户登录,在任意目录下执行vi ~/.bashrc命令,打开.bashrc文件,在文件最后添加以下内容(以非root用户的默认安装路径为例):
# Ascend-cann-toolkit环境变量(请根据实际路径修改) source $HOME/Ascend/ascend-toolkit/set_env.sh
- 执行:wq!命令保存文件并退出。
- 执行source ~/.bashrc命令使其立即生效。
- 以运行用户登录,在任意目录下执行vi ~/.bashrc命令,打开.bashrc文件,在文件最后添加以下内容(以非root用户的默认安装路径为例):
- 进入分析迁移工具所在路径,执行脚本迁移任务。
cd Ascend-cann-toolkit安装目录/ascend-toolkit/latest/tools/ms_fmk_transplt/ ./pytorch_gpu2npu.sh -i 原始脚本路径 -o 脚本迁移结果输出路径 -v 原始脚本框架版本 [-r 自定义规则json文件路径] [-s] [-sim] [-a 模型名称] [-m] [distributed -t 目标模型变量名 -m 训练脚本的入口文件]
distributed及其参数-m、-t在语句最后指定。
- 查看结果文件。脚本迁移完成后,进入脚本迁移结果输出路径查看结果文件,以GPU单卡脚本迁移为NPU多卡脚本为例:
├── xxx_msft/xxx_msft_multi // 脚本迁移结果输出目录。 │ ├── 生成脚本文件 // 与迁移前的脚本文件目录结构一致。 │ ├── msFmkTranspltlog.txt // 脚本迁移过程日志文件,日志文件限制大小为1M,若超过限制将分多个文件进行存储,最多不会超过10个。 │ ├── unsupported_op.xlsx // 不支持算子列表文件。 │ ├── change_list.csv // 修改记录文件。 │ ├── run_distributed_npu.sh // 多卡启动shell脚本。 │ ├── ascend_function // 如果启用了Replace Unsupported APIs参数,会生成该包含等价算子的目录。 │ ├── ascend_modelarts_function │ │ ├── modelarts_path_manager.py // 启用ModelArts参数,会生成该路径映射适配层代码文件。 │ │ ├── path_mapping_config.py // 启用ModelArts参数,会生成该路径映射配置文件。
父主题: 模型迁移