迁移操作

PyTorch GPU2Ascend提供脚本分析和迁移功能,帮助用户在执行分析迁移操作中,分析PyTorch训练脚本的算子和API支持情况,并将其迁移为基于NPU可运行的脚本。

迁移步骤

  1. 通过以下任一方式启动脚本迁移任务。

    • 在工具栏选择Ascend > Migration Tools > PyTorch GPU2Ascend
    • 单击工具栏中图标。
    • 右键单击训练工程,然后选择“PyTorch GPU2Ascend”

  2. 单击“Transfer”页签,进入迁移任务界面。
  3. 参数配置。

    “Transfer”界面如图1所示,用户自行根据实际情况配置参数。
    图1 Transfer参数配置
    表1 Transfer参数配置

    参数

    参数说明

    PyTorch Version

    待迁移脚本的PyTorch版本。目前支持1.11.0、2.0.1、2.1.0。

    必选,默认为1.11.0。

    Input Path

    待迁移脚本文件所在目录。单击文件夹图标选择目录。必选。

    Output Path

    脚本迁移结果文件输出路径。单击文件夹图标选择目录。必选。

    • 不开启“Distributed Rule”即迁移至单卡脚本场景下,输出目录名为xxx_msft。
    • 开启“Distributed Rule”即迁移至多卡脚本场景下,输出目录名为xxx_msft_multi。

    xxx为原始脚本所在文件夹名称。

    Distributed Rule

    将GPU单卡脚本迁移为NPU多卡脚本,此参数仅支持使用torch.utils.data.DataLoader方式加载数据的场景。可选。

    开启后,需配置如下参数:

    Main File:必选,单击文件夹图标选择训练脚本的入口Python文件。

    Target Model:可选,待迁移脚本中的实例化模型变量名,默认为“model”。

    如果变量名不为"model"时,则需要配置此参数,例如"my_model = Model()",需要配置为-t my_model

  4. 单击“Transplant”,执行迁移任务。

    完成后,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脚本

后续操作