自动迁移方式
本章节将指导用户将PyTorch训练脚本从GPU平台迁移至昇腾NPU平台。自动迁移方式支持PyTorch 2.1.0、2.6.0、2.7.1、2.8.0版本的训练脚本的迁移,自动迁移方式较简单,且修改内容最少,只需在训练脚本中导入库代码。
使用约束
- 由于自动迁移工具使用了Python的动态特性,但torch.jit.script不支持Python的动态语法,因此用户原训练脚本中包含torch.jit.script时使用自动迁移功能会产生冲突。目前自动迁移时会屏蔽torch.jit.script功能,若用户脚本中必须使用torch.jit.script功能,请使用PyTorch GPU2Ascend工具迁移方式进行迁移。
- 自动迁移工具与昇腾已适配的三方库可能存在功能冲突,若发生冲突,请使用PyTorch GPU2Ascend工具迁移方式进行迁移。
- 当前自动迁移暂不支持channel_last特性,建议用户使用contiguous进行替换。
- 若原脚本中使用的backend为nccl,在init_process_group初始化进程组后,backend已被自动迁移工具替换为hccl。如果后续代码逻辑包含backend是否为nccl的判断,例如assert backend in ['gloo', 'nccl']、if backend == 'nccl',请手动将字符串nccl改写为hccl。
- 若用户训练脚本中包含昇腾NPU平台不支持的torch.cuda.default_generators接口,需要手动修改为torch_npu.npu.default_generators接口。
迁移操作
父主题: 迁移训练