自动迁移
简介
自动迁移操作简单,且修改内容少,只需在训练脚本中添加from torch_npu.contrib import transfer_to_npu即可完成脚本迁移。
使用约束
-
当前自动迁移暂不支持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功能,请使用工具迁移进行迁移。
使用方法
-
在训练脚本中添加from torch_npu.contrib import transfer_to_npu迁移代码。
Note
- 仅PyTorch框架下需要添加from torch_npu.contrib import transfer_to_npu代码。
- 自动迁移工具与已适配的《套件与三方库支持清单》可能存在功能冲突,若发生冲突,请使用工具迁移。
-
PyTorch 2.4.0及之前版本,添加如下迁移代码:
import torch import torch_npu ... from torch_npu.contrib import transfer_to_npu -
PyTorch 2.5.1及之后版本,添加如下迁移代码:
import torch ... from torch_npu.contrib import transfer_to_npuNote
PyTorch 2.5.1及之后版本支持设备插件自动加载,无需执行import torch_npu即可使用NPU设备,具体使用方法与限制说明可参见Autoloading Out-of-Tree Extension。
-
参考模型训练执行训练。如果训练正常进行,开始打印迭代日志,说明训练功能迁移成功。
-
参考模型保存,如果成功保存权重,说明保存权重功能迁移成功。