Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
mindinsight
提交
65b41cd4
M
mindinsight
项目概览
MindSpore
/
mindinsight
通知
7
Star
3
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindinsight
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
65b41cd4
编写于
8月 21, 2020
作者:
M
mindspore-ci-bot
提交者:
Gitee
8月 21, 2020
浏览文件
操作
浏览文件
下载
差异文件
!553 Add Profiler README_GPU
Merge pull request !553 from yuximiao/master
上级
0553ba10
d42ed5d5
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
78 addition
and
1 deletion
+78
-1
mindinsight/profiler/README_GPU.md
mindinsight/profiler/README_GPU.md
+77
-0
mindinsight/profiler/analyser/gpu_analyser.py
mindinsight/profiler/analyser/gpu_analyser.py
+1
-1
mindinsight/profiler/images/gpu_activity_profiler.png
mindinsight/profiler/images/gpu_activity_profiler.png
+0
-0
mindinsight/profiler/images/gpu_op_ui_profiler.png
mindinsight/profiler/images/gpu_op_ui_profiler.png
+0
-0
未找到文件。
mindinsight/profiler/README_GPU.md
0 → 100644
浏览文件 @
65b41cd4
# 性能调试(GPU)
<!-- TOC -->
-
[
性能调试(GPU)
](
#性能调试(GPU)
)
-
[
概述
](
#概述
)
-
[
操作流程
](
#操作流程
)
-
[
准备训练脚本
](
#准备训练脚本
)
-
[
启动MindInsight
](
#启动mindinsight
)
-
[
性能分析
](
#性能分析
)
-
[
算子性能分析
](
#算子性能分析
)
<!-- /TOC -->
## 概述
将训练过程中的算子耗时等信息记录到文件中,通过可视化界面供用户查看分析,帮助用户更高效地调试神经网络性能。目前仅支持在Ascend芯片上的性能调试。
## 操作流程
> 操作流程可以参考Ascend 910上profiler的操作:
>
> https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/performance_profiling.html#id3
## 准备训练脚本
为了收集神经网络的性能数据,需要在训练脚本中添加MindSpore Profiler相关接口。
-
`set_context`
之后,需要初始化MindSpore
`Profiler`
对象,GPU场景下初始化Profiler对象时只有output_path参数有效。
-
在训练结束后,调用
`Profiler.analyse()`
停止性能数据收集并生成性能分析结果。
> 样例代码与Ascend使用方式一致可以参考:
>
> https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/performance_profiling.html#id4
## 启动MindInsight
启动命令请参考
[
MindInsight相关命令
](
https://www.mindspore.cn/tutorial/zh-CN/master/advanced_use/mindinsight_commands.html
)
。
### 性能分析
用户从训练列表中选择指定的训练,点击性能调试,可以查看该次训练的性能数据(目前gpu版本只支持算子耗时排名统计功能,其他功能暂时敬请期待)。
![
performance_overall.png
](
./images/performance_overall.png
)
图1:性能数据总览
图1展示了性能数据总览页面,包含了迭代轨迹(Step Trace)、算子性能、MindData性能和Timeline等组件的数据总体呈现。目前GPU场景下只支持算子性能统计功能:
-
算子性能:统计单算子以及各算子类型的执行时间,进行排序展示;总览页中展示了各算子类型时间占比的饼状图。
用户可以点击查看详情链接,进入组件页面进行详细分析。
#### 算子性能分析
使用算子性能分析组件可以对MindSpore运行过程中的各个算子的执行时间进行统计展示。
![
gpu_op_ui_profiler.png
](
./images/gpu_op_ui_profiler.png
)
图2:算子类别统计分析
图2展示了按算子类别进行统计分析的结果,包含以下内容:
-
可以选择饼图/柱状图展示各算子类别的时间占比,每个算子类别的执行时间会统计属于该类别的算子执行时间总和以及平均执行时间。
-
统计前20个占比时间最长的算子类别,展示其时间所占的百分比以及具体的执行时间(us)。
图2下半部分展示了算子性能统计表,包含以下内容:
-
选择全部:按单个算子的统计结果进行排序展示,展示维度包括算子位置(Device/Host)、算子类型、算子执行时间、算子全名等;默认按算子平均执行时间排序。
-
选择分类:按算子类别的统计结果进行排序展示,展示维度包括算子分类名称、算子类别执行时间、执行频次、执行总时间的比例、平均执行时间。点击每个算子类别,可以进一步查看该类别下所有单个算子的统计信息。
-
搜索:在右侧搜索框中输入字符串,支持对算子名称/类别进行模糊搜索。
![
gpu_activity_profiler.png
](
./images/gpu_activity_profiler.png
)
图3:内核信息分析
图3展示了CUDA activity信息统计,包含以下内容:
-
统计图表:展示了各个kernel activity的占比以及前15个算子的耗时信息
-
内核信息列表:信息列表展示activity的名称、所属算子名称、执行次数、总时间、平均时间等信息
-
搜索:可以通过name(activity名称)以及op_full_name(所属算子名称)进程部分匹配的搜索
\ No newline at end of file
mindinsight/profiler/analyser/gpu_analyser.py
浏览文件 @
65b41cd4
...
...
@@ -82,7 +82,7 @@ class GpuOpTypeAnalyser(GpuAnalyser):
Returns:
list, the converted data.
"""
return
[
row
[
0
],
int
(
row
[
1
]),
float
(
row
[
2
]),
float
(
row
[
3
]),
float
(
row
[
4
])]
return
[
row
[
0
],
int
(
row
[
1
]),
float
(
row
[
2
]),
float
(
row
[
3
])
*
100
,
float
(
row
[
4
])]
class
GpuOpInfoAnalyser
(
GpuAnalyser
):
...
...
mindinsight/profiler/images/gpu_activity_profiler.png
0 → 100644
浏览文件 @
65b41cd4
105.0 KB
mindinsight/profiler/images/gpu_op_ui_profiler.png
0 → 100644
浏览文件 @
65b41cd4
120.0 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录