searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

昇腾算子支持度分析

2024-06-04 09:07:02
44
0

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. 环境准备

  • 安装开发套件包
  • 配置环境变量。
    安装CANN软件后,使用CANN运行用户编译、运行时,需要以CANN运行用户登录环境,执行. ${install_path}/set_env.sh命令设置环境变量。其中${install_path}为CANN软件的安装目录。
  • 说明

上述环境变量只在当前窗口生效,用户可以将上述命令写入~/.bashrc文件,使其永久生效,操作如下:

  1. 以安装用户在任意目录下执行vi ~/.bashrc,打开.bashrc文件,并在该文件最后添加上述内容。
  2. 执行:wq!命令,保存文件并退出。
  3. 执行source ~/.bashrc命令,使环境变量生效。

4. 迁移操作

使用PyTorch Analyse工具前须安装如下依赖。

如下命令如果使用非root用户安装,需要在安装命令后加上--user,例如:pip3 install pandas --user,安装命令可在任意路径下执行。
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

(3)分析完成后,进入脚本分析结果输出路径,查看分析结果文件。
  分析模式为“torch_apis”时,分析结果如下所示:
   
  分析模式为“third_party”时,分析结果如下所示:
 
分析模式为“affinity_apis”时,结果如下:
分析模式为“dynamic_shape”时,结果如下:
生成动态shape分析结果件后,还需要先修改训练脚本文件读取训练数据集的for循环,手动开启动态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:当前训练脚本中可以进行性能调优的专家建议和指导措施

 

 



0条评论
0 / 1000
樊****宇
2文章数
0粉丝数
樊****宇
2 文章 | 0 粉丝
樊****宇
2文章数
0粉丝数
樊****宇
2 文章 | 0 粉丝
原创

昇腾算子支持度分析

2024-06-04 09:07:02
44
0

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. 环境准备

  • 安装开发套件包
  • 配置环境变量。
    安装CANN软件后,使用CANN运行用户编译、运行时,需要以CANN运行用户登录环境,执行. ${install_path}/set_env.sh命令设置环境变量。其中${install_path}为CANN软件的安装目录。
  • 说明

上述环境变量只在当前窗口生效,用户可以将上述命令写入~/.bashrc文件,使其永久生效,操作如下:

  1. 以安装用户在任意目录下执行vi ~/.bashrc,打开.bashrc文件,并在该文件最后添加上述内容。
  2. 执行:wq!命令,保存文件并退出。
  3. 执行source ~/.bashrc命令,使环境变量生效。

4. 迁移操作

使用PyTorch Analyse工具前须安装如下依赖。

如下命令如果使用非root用户安装,需要在安装命令后加上--user,例如:pip3 install pandas --user,安装命令可在任意路径下执行。
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

(3)分析完成后,进入脚本分析结果输出路径,查看分析结果文件。
  分析模式为“torch_apis”时,分析结果如下所示:
   
  分析模式为“third_party”时,分析结果如下所示:
 
分析模式为“affinity_apis”时,结果如下:
分析模式为“dynamic_shape”时,结果如下:
生成动态shape分析结果件后,还需要先修改训练脚本文件读取训练数据集的for循环,手动开启动态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:当前训练脚本中可以进行性能调优的专家建议和指导措施

 

 



文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0