工具迁移推荐使用命令行方式。
若用户想使用图形开发界面、或已安装MindStudio,可以参考《MindStudio 用户指南》中的“分析迁移>PyTorch GPU2Ascend”章节使用MindStudio中集成的PyTorch GPU2Ascend功能进行工具迁移。
当前工具迁移不支持使用distributed parallel(DP)模式的模型迁移。若用户训练脚本中包含昇腾NPU平台不支持的torch.nn.parallel.DataParallel接口,需要手动修改成torch.nn.parallel.DistributedDataParallel接口执行多卡训练。
使用命令行方式进行工具迁移的核心步骤如下:
pip3 install pandas #pandas版本号需大于或等于1.2.4 pip3 install libcst pip3 install jedi #可选,用于跨文件解析,建议安装
# Ascend-cann-toolkit环境变量(请根据实际路径修改) source $HOME/Ascend/ascend-toolkit/set_env.sh
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在语句最后指定。
├── 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参数,会生成该路径映射配置文件。
更多命令行方式工具迁移内容以及迁移命令参数说明,请参见《分析迁移工具》中的 章节。