From 4b149ed253ebe216f39800999136b21498f8c4b5 Mon Sep 17 00:00:00 2001 From: wuyulong11 Date: Tue, 17 Oct 2023 12:11:44 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E3=80=91=20=E3=80=90tbplugin=E3=80=91=E3=80=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=8D=95=E3=80=91=E8=B5=84=E6=96=99=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0Diff=20View=E9=83=A8=E5=88=86=20?= =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E4=BA=BA=E3=80=91=20wuyulong=203003?= =?UTF-8?q?1080?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tensorboard-plugins/tb_plugin/README.md | 18 +++++++++++++++++- .../tb_plugin/docs/images/diff_detail.png | Bin 0 -> 60532 bytes 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 plugins/tensorboard-plugins/tb_plugin/docs/images/diff_detail.png diff --git a/plugins/tensorboard-plugins/tb_plugin/README.md b/plugins/tensorboard-plugins/tb_plugin/README.md index 4664281e0..1cd0af33e 100644 --- a/plugins/tensorboard-plugins/tb_plugin/README.md +++ b/plugins/tensorboard-plugins/tb_plugin/README.md @@ -197,4 +197,20 @@ Workers-Spans: 多线程的情况下Profiling可能包含多组数据,通过Wo * Component - 图展示的是PTA和GE组件内存使用,表格为各个组件内存使用峰值。 \ No newline at end of file + 图展示的是PTA和GE组件内存使用,表格为各个组件内存使用峰值。 +* Diff View + + Diff视图提供了Profiling数据比对功能。适用于同一网络不同迭代之间采集数据比对算子耗时情况,网络进行优化前后相同位置算子耗时情况比对、单机多卡不同卡之间采集数据比对以及相同网络不同硬件平台上运行性能情况比对等场景。 + ![Alt text](./docs/images/diff_view.png) + + * 最上方为整体比对,以采集的step为周期比较两份数据各类算子的耗时情况以及累计耗时变化趋势。点击其中某块柱形,可以单点查看对应详情。 + + ![Alt text](./docs/images/diff_detail.png) + + * 中间视图为差异图,由红蓝两块区域构成。横坐标与上方视图对应,蓝色区域为每类算子的耗时差值,红色区域表示当前所有算子耗时差的累加值。 + + * 最下方为算子比对明细表,显示相关差值以及相差比例信息。由于数据条目较多,支持选择是否显示Host Duration、Self Host Duration、Device Duration以及Self Device Duration相关比对信息。 + * Host Duration:算子在Host侧的累计耗时,包括子算子耗时。 + * Self Host Duration:算子在Host侧的累计耗时,不包括子算子耗时。 + * Device Duration:算子在Device侧的累计耗时,包括子算子耗时。 + * Self Device Duration:算子在Device侧的累计耗时,不包括子算子耗时。 \ No newline at end of file diff --git a/plugins/tensorboard-plugins/tb_plugin/docs/images/diff_detail.png b/plugins/tensorboard-plugins/tb_plugin/docs/images/diff_detail.png new file mode 100644 index 0000000000000000000000000000000000000000..abc0806f3db288ded406e8ae6691ea7004b1754f GIT binary patch literal 60532 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 WGZTn(*42-{8|s_tmEFAm{r>|P7@m*- literal 0 HcmV?d00001 -- Gitee