PyTorch GPU2Ascend提供脚本分析和迁移功能,帮助用户在执行分析迁移操作中,分析PyTorch训练脚本的算子和API支持情况,并将其迁移为基于NPU可运行的脚本。
参数 |
参数说明 |
---|---|
PyTorch Version |
待迁移脚本的PyTorch版本。目前支持1.11.0、2.0.1、2.1.0。 必选,默认为1.11.0。 |
Input Path |
待迁移脚本文件所在目录。单击文件夹图标选择目录。必选。 |
Output Path |
脚本迁移结果文件输出路径。单击文件夹图标选择目录。必选。
xxx为原始脚本所在文件夹名称。 |
Distributed Rule |
将GPU单卡脚本迁移为NPU多卡脚本,此参数仅支持使用torch.utils.data.DataLoader方式加载数据的场景。可选。 开启后,需配置如下参数: Main File:必选,单击文件夹图标选择训练脚本的入口Python文件。 Target Model:可选,待迁移脚本中的实例化模型变量名,默认为“model”。 如果变量名不为"model"时,则需要配置此参数,例如"my_model = Model()",需要配置为-t my_model。 |
完成后,Output Path输出目录下查看结果文件。
├── xxx_msft/xxx_msft_multi // 脚本迁移结果输出目录 │ ├── 生成脚本文件 // 与迁移前的脚本文件目录结构一致 │ ├── transplant_result_file //存放迁移结果文件 │ │ ├── msFmkTranspltlog.txt // 脚本迁移过程日志文件,日志文件限制大小为1M,若超过限制将分多个文件进行存储,最多不会超过10个 │ │ ├── cuda_op_list.csv //分析出的cuda算子列表 │ │ ├── unknown_api.csv //支持情况存疑的API列表 │ │ ├── unsupported_api.csv //不支持的API列表 │ │ ├── api_precision_advice.csv //API精度调优的专家建议 │ │ ├── api_performance_advice.csv //API性能调优的专家建议 │ │ ├── change_list.csv // 修改记录文件 │ ├── run_distributed_npu.sh // 多卡启动shell脚本
import torch import torch_npu torch.npu.set_compile(jit_compile=False) ......
if is_distributed: mp.spawn(main_worker, nprocs=ngpus_per_node, args=(ngpus_per_node, args)) else: main_worker(args.gpu, ngpus_per_node, args) def main_worker(gpu, ngpus_per_node, args): # 加在进程拉起的主函数中 torch.npu.set_compile(jit_compile=False) ......
export MASTER_ADDR=127.0.0.1 export MASTER_PORT=29688 export HCCL_WHITELIST_DISABLE=1 NPUS=($(seq 0 7)) export RANK_SIZE=${#NPUS[@]} rank=0 for i in ${NPUS[@]} do export DEVICE_ID=${i} export RANK_ID=${rank} echo run process ${rank} please input your shell script here > output_npu_${i}.log 2>&1 & let rank++ done
参数 |
说明 |
---|---|
MASTER_ADDR |
指定训练服务器的IP |
MASTER_PORT |
指定训练服务器的端口号 |
HCCL_WHITELIST_DISABLE |
hccl后端环境 |
NPUS |
指定在特定NPU上运行 |
RANK_SIZE |
指定调用卡的数量 |
DEVICE_ID |
指定使用的device_id |
RANK_ID |
指定调用卡的逻辑ID |