功能介绍
昇腾NPU是AI算力的后起之秀,但目前训练和在线推理脚本大多是基于GPU的。由于NPU与GPU的架构差异,基于GPU的训练和在线推理脚本不能直接在NPU上使用。
msFmkTransplt工具提供PyTorch Analyse工具,帮助用户分析PyTorch训练脚本的API、三方库API、亲和API分析以及动态shape的支持情况。同时提供了自动迁移和PyTorch GPU2Ascend工具两种迁移方式,将基于GPU的脚本迁移为基于NPU的脚本,这种自动化方法节省了人工手动进行脚本迁移的学习成本与工作量,大幅提升了迁移效率。
两种迁移方式的区别如下:
- (推荐)自动迁移:修改内容少,只需在训练脚本中导入库代码,迁移后直接在昇腾NPU平台上运行。
- PyTorch GPU2Ascend工具迁移:迁移过程会生成分析文件,支持用户查看API支持度分析报告和迁移过程中对原训练脚本的修改内容,并支持单卡脚本迁移为多卡脚本。
约束说明
- 分析和迁移工具当前支持PyTorch1.11.0、2.1.0、2.2.0版本训练脚本的分析和迁移。
- 原脚本需要在GPU环境下且基于Python3.7及以上能够运行成功。
- 分析迁移后的执行逻辑与迁移前保持一致。
- 若原始代码中调用了三方库,迁移过程可能会存在适配问题。在迁移原始代码前,用户需要根据已调用的三方库,自行安装昇腾已适配的三方库版本,已适配的三方库信息和使用指南请参考《PyTorch模型迁移和训练指南》中“参考信息>模型套件和第三方库”章节。
- APEX中使用的FusedAdam优化器不支持使用自动迁移和PyTorch GPU2Ascend工具进行迁移,若原始代码中包含该优化器,用户需自行修改。
- 当前分析工具不支持对原生函数self.dropout()、nn.functional.softmax()、torch.add、def bboexs_diou()、def bboexs_giou()、class LabelSmoothingCrossEntropy()或ColorJitter进行亲和API分析,若原训练脚本涉及以上原生函数,请参考《PyTorch模型迁移和训练指南》中“API列表>亲和库”进行分析和替换。
父主题: msFmkTransplt