下载
中文
注册

(推荐)自动迁移

简介

自动迁移操作简单,且修改内容少,只需在训练脚本中导入库代码即可完成脚本迁移。

使用约束

  • 当前自动迁移暂不支持channel_last特性,建议用户使用contiguous代替。
  • 若原脚本中使用的backend为nccl,在init_process_group初始化进程组后,backend已被自动迁移工具替换为hccl。如果后续代码逻辑包含backend是否为nccl的判断,例如assert backend in ['gloo', 'nccl']、if backend == 'nccl',请手动将字符串nccl改写为hccl。
  • 由于自动迁移工具使用了Python的动态特性,但torch.jit.script不支持Python的动态语法,因此用户原训练脚本中包含torch.jit.script时使用自动迁移功能会产生冲突,目前自动迁移时会屏蔽torch.jit.script功能,若用户脚本中必须使用torch.jit.script功能,请使用工具迁移进行迁移。

使用方法

  1. 在训练脚本中导入库代码。
    import torch 
    import torch_npu 
    ..... 
    from torch_npu.contrib import transfer_to_npu
    • 仅PyTorch框架下需要导入from torch_npu.contrib import transfer_to_npu代码。
    • 自动迁移工具与已适配的套件与三方库支持清单可能存在功能冲突,若发生冲突,请使用工具迁移进行迁移。
  2. 参考环境变量和脚本配置执行训练。如果训练正常进行,开始打印迭代日志,说明训练功能迁移成功。
  3. 参考模型保存与导出,如果成功保存权重,说明保存权重功能迁移成功。

注意事项

  • 如果模型包含评估、在线推理功能,也可在对应脚本中导入自动迁移库代码,并通过对比评估推理结果和日志打印情况,判断与GPU、CPU是否一致决定是否迁移成功。
  • 若训练过程中提示部分cuda接口报错,可能是部分API(算子API或框架API)不支持引起,用户可参考以下方案进行解决。

    使用迁移分析工具对模型脚本进行分析,获得支持情况存疑的API列表,进入昇腾开源社区提出ISSUE求助;算子请参考《套件与三方库支持清单》中的“单算子适配OpPlugin插件开发”章节进行适配。