From 7e3253035bfe887c2f5aaf93880f54e820eeb388 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8E=8E=E8=8E=8E?= Date: Fri, 18 Jun 2021 15:55:30 +0800 Subject: [PATCH 1/4] =?UTF-8?q?add=20AICore=20Profiling=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=8C=87=E5=AF=BC=E4=B9=A6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...44\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" diff --git "a/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" "b/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" new file mode 100644 index 0000000..e69de29 -- Gitee From fda48e7d4c880c154ce31cc9dd5287313e1aa1ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8E=8E=E8=8E=8E?= Date: Fri, 18 Jun 2021 16:08:58 +0800 Subject: [PATCH 2/4] =?UTF-8?q?update=20AICore=20Profiling=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E4=BD=BF=E7=94=A8=E6=8C=87=E5=AF=BC=E4=B9=A6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...50\346\214\207\345\257\274\344\271\246.md" | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git "a/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" "b/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" index e69de29..a9637b3 100644 --- "a/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" +++ "b/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" @@ -0,0 +1,60 @@ +## 1 背景 +(1)模型调测过程中,性能分析是一大块工作,所以一款好用的profiling工具必不可少。 +(2)630之前的profiling工具其实就已经有了,但易用性上直接让人感到反感,这次改版之后,改进很大,数据采集和数据解析在易用性上也有很大提升。 + +## 2 数据采集(训练任务JOB) +其他方式不在这里介绍,这里只介绍设置环境变量的方式,开启profiling功能: +``` +export PROFILING_MODE=true +export PROFILING_OPTIONS='{"output": "./cann_profiling", "training_trace": "on", "task_trace": "on", "aicpu": "on", "fp_point": "", "bp_point": "", "aic_metrics": "PipeUtilization"}' +``` +其中,output指明采集数据的存放目录,需提前创建好目录, aicpu为aicpu算子开关,aic_metrics为aicore算子开关,其他参数见说明[CANN V100R020C10 开发辅助工具指南 (训练) 01](https://support.huawei.com/enterprise/zh/doc/EDOC1100164832/6f4033fd) + +设置好环境变量后,然后执行训练,之后会在./cann_profiling目录下产生profiling数据: + + +## 3 数据解析 +### 3.1 解析工具 +解析数据必须要用到昇腾软件包的安装目录下的msprof工具,一般默认路径为: +``` +x86路径为: +/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/profiler/profiler_tool/analysis/msprof/msprof.py + +arm路径为: +/usr/local/Ascend/ascend-toolkit/latest/aarch64-linux/toolkit/tools/profiler/profiler_tool/analysis/msprof/msprof.py +``` +以下指令以x86_64环境为例 + +### 3.2 解析profiling数据 +``` +python3.7 /usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/profiler/profiler_tool/analysis/msprof/msprof.py import -dir ./cann_profiling/ +``` +其中,./cann_profiling为上面采集数据的保存路径 +执行过程: + +执行之后会在cann_profiling目录下生成sqlite等数据目录: + +### 3.3 导出timeline数据 +导出timeline数据,执行如下命令: +``` +python3.7 /usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/profiler/profiler_tool/analysis/msprof/msprof.py export timeline -dir ./cann_profiling/ +``` +如果需要指定某一个迭代step,可设置参数:-iteration-id +执行之后会生成timeline文件夹: + +里面的json文件可以用chrome://tracing查看 + +### 3.4 导出summary数据 +导出summary数据,执行如下命令: +``` +python3.7 /usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/profiler/profiler_tool/analysis/msprof/msprof.py export summary -dir ./cann_profiling/ +``` + +如果需要指定某一个迭代step,可设置参数:-iteration-id +执行之后会生成summary文件夹,里面csv文件就是summary数据,能看到算子名称,算子执行顺序,算子耗时。 + +csv文件 + +## 4 展望 +(1)该工具还可以profiling系统性能数据,如PCIE,DVPP,HBM等。 +(2)目前算子的input shape及其dtype、format,output shape及其dtype、format等信息(task_info信息)pytorch场景没有生成,tf场景是有的。因为对于op_based场景,GE没有上报这些信息。已经提了这个需求。 -- Gitee From dbabfdab824cde2187bdc23e7cc28c70c3526d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8E=8E=E8=8E=8E?= Date: Fri, 18 Jun 2021 16:09:54 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=B8=8A=E4=BC=A0aicore=5Fprofiling?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- figures/aicore_profiling_fig1.png | Bin 0 -> 10667 bytes figures/aicore_profiling_fig2.png | Bin 0 -> 23990 bytes figures/aicore_profiling_fig3.png | Bin 0 -> 12750 bytes figures/aicore_profiling_fig4.png | Bin 0 -> 14754 bytes figures/aicore_profiling_fig5.png | Bin 0 -> 9554 bytes figures/aicore_profiling_fig6.png | Bin 0 -> 15187 bytes figures/aicore_profiling_fig7.png | Bin 0 -> 18597 bytes 7 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 figures/aicore_profiling_fig1.png create mode 100644 figures/aicore_profiling_fig2.png create mode 100644 figures/aicore_profiling_fig3.png create mode 100644 figures/aicore_profiling_fig4.png create mode 100644 figures/aicore_profiling_fig5.png create mode 100644 figures/aicore_profiling_fig6.png create mode 100644 figures/aicore_profiling_fig7.png diff --git a/figures/aicore_profiling_fig1.png b/figures/aicore_profiling_fig1.png new file mode 100644 index 0000000000000000000000000000000000000000..cccb56eab432c1ac8c363bfc3d48e582c4f4d67c GIT binary patch literal 10667 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 k%lxs(^b literal 0 HcmV?d00001 diff --git a/figures/aicore_profiling_fig2.png b/figures/aicore_profiling_fig2.png new file mode 100644 index 0000000000000000000000000000000000000000..f983683ff7fd2e15d2081ecdc8ea2410508e625a GIT binary patch literal 23990 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 literal 0 HcmV?d00001 diff --git a/figures/aicore_profiling_fig6.png b/figures/aicore_profiling_fig6.png new file mode 100644 index 0000000000000000000000000000000000000000..65440a7b8763b801a0d7da66022b5785e8dfd7d2 GIT binary patch literal 15187 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 Vi@FXkn+7ZcQB&4ZDp#-y{y%t0jwJv9 literal 0 HcmV?d00001 diff --git a/figures/aicore_profiling_fig7.png b/figures/aicore_profiling_fig7.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f9bae08ef6674dfbba1738c3cd797ea98a39ac GIT binary patch literal 18597 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 TYqyZ3V%NB*t5&M=BG1 literal 0 HcmV?d00001 -- Gitee From bd5af940bc847f8ec97990783a33fd4750363609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=8E=8E=E8=8E=8E?= Date: Fri, 18 Jun 2021 16:14:34 +0800 Subject: [PATCH 4/4] =?UTF-8?q?update=20AICore=20Profiling=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E4=BD=BF=E7=94=A8=E6=8C=87=E5=AF=BC=E4=B9=A6.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\224\250\346\214\207\345\257\274\344\271\246.md" | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git "a/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" "b/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" index a9637b3..75f01c8 100644 --- "a/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" +++ "b/AICore Profiling\345\267\245\345\205\267\344\275\277\347\224\250\346\214\207\345\257\274\344\271\246.md" @@ -11,6 +11,7 @@ export PROFILING_OPTIONS='{"output": "./cann_profiling", "training_trace": "on", 其中,output指明采集数据的存放目录,需提前创建好目录, aicpu为aicpu算子开关,aic_metrics为aicore算子开关,其他参数见说明[CANN V100R020C10 开发辅助工具指南 (训练) 01](https://support.huawei.com/enterprise/zh/doc/EDOC1100164832/6f4033fd) 设置好环境变量后,然后执行训练,之后会在./cann_profiling目录下产生profiling数据: +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig1.png) ## 3 数据解析 @@ -31,8 +32,10 @@ python3.7 /usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/pro ``` 其中,./cann_profiling为上面采集数据的保存路径 执行过程: +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig2.png) -执行之后会在cann_profiling目录下生成sqlite等数据目录: +执行之后会在cann_profiling目录下生成sqlite等数据目录: +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig3.png) ### 3.3 导出timeline数据 导出timeline数据,执行如下命令: @@ -41,8 +44,10 @@ python3.7 /usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/pro ``` 如果需要指定某一个迭代step,可设置参数:-iteration-id 执行之后会生成timeline文件夹: +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig4.png) 里面的json文件可以用chrome://tracing查看 +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig5.png) ### 3.4 导出summary数据 导出summary数据,执行如下命令: @@ -51,9 +56,11 @@ python3.7 /usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/toolkit/tools/pro ``` 如果需要指定某一个迭代step,可设置参数:-iteration-id -执行之后会生成summary文件夹,里面csv文件就是summary数据,能看到算子名称,算子执行顺序,算子耗时。 +执行之后会生成summary文件夹,里面csv文件就是summary数据,能看到算子名称,算子执行顺序,算子耗时。 +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig6.png) -csv文件 +csv文件 +![](https://gitee.com/zwx5317131/ascend-pytorch-crowdintelligence-doc/raw/master/figures/aicore_profiling_fig7.png) ## 4 展望 (1)该工具还可以profiling系统性能数据,如PCIE,DVPP,HBM等。 -- Gitee