1. 算子分析工具介绍
msFmkTransplt工具提供PyTorch Analyse工具,帮助用户分析PyTorch训练脚本的算子、三方库API、亲和API分析以及动态shape的支持情况。同时提供了自动迁移和PyTorch GPU2Ascend工具两种迁移方式,将基于GPU的脚本迁移为基于NPU的脚本的自动化方法,节省了人工手动进行脚本迁移的学习成本与工作量,大幅提升了迁移效率。
2.分析工具使用约束条件
(1)分析和迁移工具当前支持PyTorch1.11.0、2.1.0版本训练脚本的分析和迁移。
(2)原脚本需要在GPU环境下且基于Python3.7及以上能够跑通。
(3)若原始代码中调用了三方库,迁移过程可能会存在适配问题。在迁移原始代码前,用户需要根据已调用的三方库,自行安装昇腾已适配的三方库版本.
(4)APEX中使用的FusedAdam优化器不支持使用自动迁移和PyTorch GPU2Ascend工具进行迁移,若原始代码中包含该优化器,用户需自行修改。
(5)当前分析工具不支持对原生函数self.dropout()、nn.functional.softmax()、torch.add、def bboexs_diou()、def bboexs_giou()、class LabelSmoothingCrossEntropy()或ColorJitter进行亲和API分析
3. 环境准备
- 安装开发套件包
- 配置环境变量。
- 说明
上述环境变量只在当前窗口生效,用户可以将上述命令写入~/.bashrc文件,使其永久生效,操作如下:
- 以安装用户在任意目录下执行vi ~/.bashrc,打开.bashrc文件,并在该文件最后添加上述内容。
- 执行:wq!命令,保存文件并退出。
- 执行source ~/.bashrc命令,使环境变量生效。
4. 迁移操作
使用PyTorch Analyse工具前须安装如下依赖。
pip3 install pandas #pandas版本号需大于或等于1.2.4
pip3 install libcst #Python语法树解析器,用于解析Python文件
pip3 install prettytable #将数据可视化为图表形式
pip3 install jedi #三方库套件、亲和API分析时必须安装
启动分析任务:
(1)进入cann安装目录所在的分析目录
>>cd Ascend-cann-toolkit安装目录/ascend-toolkit/latest/tools/ms_fmk_transplt/
(2)启动分析任务。
>>./pytorch_analyse.sh -i 待分析脚本路径 -o 分析结果输出路径 -v 待分析脚本框架版本 [-m 分析模式]
其中“[]”表示可选参数,实际使用可不用添加。若“-m/--mode”参数指定的分析模式为dynamic_shape





修改前:for i, (ings, targets, paths, _) in pbar:
修改如下加粗字体信息:for i, (ings, targets, paths, _) in DETECTOR.start(pbar):
运行分析后的训练脚本,将在分析结果件所在的根目录下生成保存动态shape的分析报告msft_dynamic_shape_analysis_report.csv。
- 动态shape分析得到的模型训练脚本文件建议GPU上执行。若已完成模型训练脚本文件迁移且需要在NPU上运行的情况下,存在动态shape的算子运行时间将会较长。
- 若生成的msft_dynamic_shape_analysis_report.csv文件内容为空时,表示训练脚本中没使用动态shape。
5. 查看分析报告
unsupported_api.csv:不支持的API列表。对于当前框架不支持的API,
cuda_op_list.csv:当前训练脚本包含的cuda算子信息。
unknown_api.csv:支持情况存疑的API列表
api_precision_advice.csv:当前训练脚本中可以进行精度调优的专家建议
api_performance_advice.csv:当前训练脚本中可以进行性能调优的专家建议和指导措施