diff --git a/mindinsight/ui/src/locales/en-us.json b/mindinsight/ui/src/locales/en-us.json
index b7a00ba7..1dbe49be 100644
--- a/mindinsight/ui/src/locales/en-us.json
+++ b/mindinsight/ui/src/locales/en-us.json
@@ -286,6 +286,7 @@
"showAverage": "Average value",
"iterationGapTime": "Step interval",
"fpBpTime": "Forward and Backward Propagation",
+ "fpTime": "Forward Propagation",
"tailTime": "Step Tail",
"time": "Time",
"operatorTimeConAnalysis": "Operator Time Consumption Analysis",
@@ -359,7 +360,9 @@
"iterGapTimeLabel": "Time",
"iterGapRateLabel": "Ratio",
"fpBpTimeLabel": "Time",
+ "fpTimeLabel": "Time",
"fpBpRateLabel": "Ratio",
+ "fpRateLabel": "Ratio",
"tailTimeLabel": "Time",
"tailRateLabel": "Ratio",
"operatorDetail": "Operator Details",
@@ -371,6 +374,7 @@
"pipelineMiddleTitle": "Queue relationship between operators",
"deviceQueueOp": "Data Transmission",
"deviceQueueOpTip": "Forward and Backward Propagation",
+ "deviceQueueOpFpTip": "Forward Propagation",
"getNext": "Data Obtaining Operator",
"connectorQuene": "Host Queues",
"getData": "Data Obtaining",
@@ -389,6 +393,7 @@
"totalTime": "Total consumed time:",
"totalSteps": "Total steps:",
"fpbpTimeRatio": "Ratio of time consumed by forward and backward propagation:",
+ "fpTimeRatio": "Ratio of time consumed by forward propagation:",
"iterationGapTimeRatio": "Ratio of time consumed by step interval:",
"iterativeTailingTimeRatio": "Ratio of time consumed by step tail:",
"dataProcess": "This shows the data processing. Data is stored in the host queue during data processing, and then stored in the data queue on a chip during data transmission. Finally, the forward and backward propagation get_next transmits the data to forward propagation.",
diff --git a/mindinsight/ui/src/locales/zh-cn.json b/mindinsight/ui/src/locales/zh-cn.json
index cb848df0..6e6e7a3f 100644
--- a/mindinsight/ui/src/locales/zh-cn.json
+++ b/mindinsight/ui/src/locales/zh-cn.json
@@ -284,6 +284,7 @@
"showAverage": "展示平均值",
"iterationGapTime": "迭代间隙时间",
"fpBpTime": "前向+反向时间",
+ "fpTime": "前向时间",
"tailTime": "迭代拖尾时间",
"time": "时间",
"operatorTimeConAnalysis": "算子耗时分析",
@@ -358,7 +359,9 @@
"iterGapTimeLabel": "迭代间隙时长",
"iterGapRateLabel": "迭代间隙占比",
"fpBpTimeLabel": "前向+反向时长",
+ "fpTimeLabel": "前向时长",
"fpBpRateLabel": "前向+反向占比",
+ "fpRateLabel": "前向占比",
"tailTimeLabel": "迭代拖尾时长",
"tailRateLabel": "迭代拖尾占比",
"operatorDetail": "算子详情",
@@ -370,6 +373,7 @@
"pipelineMiddleTitle": "算子间队列关系",
"deviceQueueOp": "数据发送",
"deviceQueueOpTip": "前向+反向",
+ "deviceQueueOpFpTip": "前向",
"getNext": "取数据算子",
"connectorQuene": "主机队列",
"getData": "数据获取",
@@ -388,6 +392,7 @@
"totalTime": "总耗时:",
"totalSteps": "总step数:",
"fpbpTimeRatio": "前向反向耗时占比:",
+ "fpTimeRatio": "前向耗时占比:",
"iterationGapTimeRatio": "迭代间隙耗时占比:",
"iterativeTailingTimeRatio": "迭代拖尾耗时占比:",
"dataProcess": "该图展示了数据处理阶段的流程,数据通过数据处理阶段存入主机队列,再通过数据传输阶段存入芯片侧的数据队列,最终由数据传输算子get_next发送给前向训练使用。",
diff --git a/mindinsight/ui/src/views/profiling-gpu/profiling-dashboard.vue b/mindinsight/ui/src/views/profiling-gpu/profiling-dashboard.vue
index 5b38207a..846075b1 100644
--- a/mindinsight/ui/src/views/profiling-gpu/profiling-dashboard.vue
+++ b/mindinsight/ui/src/views/profiling-gpu/profiling-dashboard.vue
@@ -53,8 +53,12 @@ limitations under the License.
{{$t('profiling.totalSteps')}}{{totalSteps}}
{{$t('profiling.iterationGapTimeRatio')}}{{iterationIntervalPercent}}
- {{$t('profiling.fpbpTimeRatio')}}{{fpBpPercent}}
- {{$t('profiling.iterativeTailingTimeRatio')}}{{tailPercent}}
+ {{$t('profiling.fpbpTimeRatio')}}{{fpBpPercent}}
+ {{$t('profiling.fpTimeRatio')}}{{fpPercent}}
+
+ {{$t('profiling.iterativeTailingTimeRatio')}}
+ {{tailPercent}}
+
@@ -391,6 +395,7 @@ export default {
queueInfoShow: false, // Whether to show queue information
deviceInfoShow: false, // Whether to show device information
fpBpPercent: '--', // Ratio of time consumed by forward and backward propagation
+ fpPercent: '--', // Ratio of time consumed by forward propagation
iterationIntervalPercent: '--', // Ratio of time consumed by step interval
totalSteps: '--',
totalTime: '--',
@@ -825,6 +830,7 @@ export default {
// Set the display information in tip
if (res.data.summary) {
this.fpBpPercent = res.data.summary.fp_and_bp_percent;
+ this.fpPercent = res.data.summary.fp_percent;
this.iterationIntervalPercent = res.data.summary.iteration_interval_percent;
this.totalSteps = res.data.summary.total_steps;
this.totalTime = res.data.summary.total_time;
@@ -850,6 +856,11 @@ export default {
this.svg.data = [];
this.svg.initOver = true;
this.removeTrace();
+ this.fpBpPercent = '--';
+ this.iterationIntervalPercent = '--';
+ this.totalSteps = '--';
+ this.totalTime = '--';
+ this.tailPercent = '--';
},
);
},
@@ -1025,6 +1036,9 @@ export default {
case 'fp_and_bp':
name = this.$t('profiling.deviceQueueOpTip');
break;
+ case 'fp':
+ name = this.$t('profiling.deviceQueueOpFpTip');
+ break;
case 'tail':
name = this.$t('profiling.lterationTail');
break;
diff --git a/mindinsight/ui/src/views/profiling/profiling-dashboard.vue b/mindinsight/ui/src/views/profiling/profiling-dashboard.vue
index 8051c9b6..e7514f68 100644
--- a/mindinsight/ui/src/views/profiling/profiling-dashboard.vue
+++ b/mindinsight/ui/src/views/profiling/profiling-dashboard.vue
@@ -53,8 +53,12 @@ limitations under the License.
{{$t('profiling.totalSteps')}}{{totalSteps}}
{{$t('profiling.iterationGapTimeRatio')}}{{iterationIntervalPercent}}
- {{$t('profiling.fpbpTimeRatio')}}{{fpBpPercent}}
- {{$t('profiling.iterativeTailingTimeRatio')}}{{tailPercent}}
+ {{$t('profiling.fpbpTimeRatio')}}{{fpBpPercent}}
+ {{$t('profiling.fpTimeRatio')}}{{fpPercent}}
+
+ {{$t('profiling.iterativeTailingTimeRatio')}}
+ {{tailPercent}}
+
@@ -386,6 +390,7 @@ export default {
data() {
return {
fpBpPercent: '--', // Ratio of time consumed by forward and backward propagation
+ fpPercent: '--', // Ratio of time consumed by forward propagation
iterationIntervalPercent: '--', // Ratio of time consumed by step interval
totalSteps: '--',
totalTime: '--',
@@ -704,8 +709,8 @@ export default {
// Set the display information in tip
if (res.data.summary) {
this.fpBpPercent = res.data.summary.fp_and_bp_percent;
- this.iterationIntervalPercent =
- res.data.summary.iteration_interval_percent;
+ this.fpPercent = res.data.summary.fp_percent;
+ this.iterationIntervalPercent = res.data.summary.iteration_interval_percent;
this.totalSteps = res.data.summary.total_steps;
this.totalTime = res.data.summary.total_time;
this.tailPercent = res.data.summary.tail_percent;
@@ -729,6 +734,11 @@ export default {
this.svg.data = [];
this.svg.initOver = true;
this.removeTrace();
+ this.fpBpPercent = '--';
+ this.iterationIntervalPercent = '--';
+ this.totalSteps = '--';
+ this.totalTime = '--';
+ this.tailPercent = '--';
},
);
},
@@ -904,6 +914,9 @@ export default {
case 'fp_and_bp':
name = this.$t('profiling.deviceQueueOpTip');
break;
+ case 'fp':
+ name = this.$t('profiling.deviceQueueOpFpTip');
+ break;
case 'tail':
name = this.$t('profiling.lterationTail');
break;
diff --git a/mindinsight/ui/src/views/profiling/step-trace.vue b/mindinsight/ui/src/views/profiling/step-trace.vue
index f1dae66b..b6fe3263 100644
--- a/mindinsight/ui/src/views/profiling/step-trace.vue
+++ b/mindinsight/ui/src/views/profiling/step-trace.vue
@@ -54,7 +54,8 @@ limitations under the License.
{{$t('profiling.FPMessage')}}
{{fp_start}}
-
+
{{$t('profiling.BPMessage')}}
{{bp_end}}
@@ -102,35 +103,40 @@ limitations under the License.
{{svg.initOver?$t("public.noData"):$t("public.dataLoading")}}
-
-
-
{{ item.name }}
-
-
- {{item.timeLabel}}:
- {{item.timeSummary[item.rate]}}ms
-
- {{item.rateLabel}}:{{item.timeSummary[item.percent]}}
-
- {{$t('profiling.stepNum')}}:{{item.timeSummary.total_steps}}
-
-
-
-
-
![]()
+
+
+
{{ item.name }}
+
+
+ {{item.timeLabel}}:
+ {{item.timeSummary[item.rate]}}ms
+
+
+ {{item.rateLabel}}:{{item.timeSummary[item.percent]}}
+
+
+ {{$t('profiling.stepNum')}}:{{item.timeSummary.total_steps}}
+
+
+
+
+
+
![]()
+
+
{{item.initOver?$t("public.noData"):$t("public.dataLoading")}}
-
{{item.initOver?$t("public.noData"):$t("public.dataLoading")}}
-
+
+ v-if="tabsArr[0].noData && tabsArr[1].noData && tabsArr[2].noData && svg.noData">
![]()
@@ -423,10 +429,18 @@ export default {
)}(ms)`;
this.tabsArr[0].noData = this.steps.max ? false : true;
this.tabsArr[0].initOver = true;
- } else if (type === 'fp_and_bp') {
- option.yAxis.name = `${this.$t('profiling.fpBpTime')}(ms)`;
+ } else if (type === 'fp_and_bp' || type === 'fp') {
+ option.yAxis.name =
+ type === 'fp_and_bp'
+ ? `${this.$t('profiling.fpBpTime')}(ms)`
+ : `${this.$t('profiling.fpTime')}(ms)`;
this.tabsArr[1].noData = this.steps.max ? false : true;
this.tabsArr[1].initOver = true;
+ if (type === 'fp_and_bp') {
+ this.tabsArr[1].name = this.$t('profiling.deviceQueueOpTip');
+ } else {
+ this.tabsArr[1].name = this.$t('profiling.deviceQueueOpFpTip');
+ }
} else if (type === 'tail') {
option.yAxis.name = `${this.$t('profiling.tailTime')}(ms)`;
this.tabsArr[2].noData = this.steps.max ? false : true;
@@ -439,10 +453,18 @@ export default {
(error) => {
if (type === 'iteration_interval') {
this.tabsArr[0].noData = true;
- } else if (type === 'fp_and_bp') {
+ this.tabsArr[0].initOver = true;
+ } else if (type === 'fp_and_bp' || type === 'fp') {
this.tabsArr[1].noData = true;
+ this.tabsArr[1].initOver = true;
+ if (type === 'fp_and_bp') {
+ this.tabsArr[1].name = this.$t('profiling.deviceQueueOpTip');
+ } else {
+ this.tabsArr[1].name = this.$t('profiling.deviceQueueOpFpTip');
+ }
} else if (type === 'tail') {
this.tabsArr[2].noData = true;
+ this.tabsArr[2].initOver = true;
}
},
);
@@ -496,7 +518,7 @@ export default {
: '--';
this.bp_end = res.data.point_info.bp_end
? res.data.point_info.bp_end
- : '--';
+ : '';
} else {
this.fp_start = '--';
this.bp_end = '--';
@@ -509,9 +531,11 @@ export default {
);
});
if (init) {
- this.getTimeInfo('fp-bp', 'fp_and_bp');
+ this.getTimeInfo('fp-bp', this.bp_end ? 'fp_and_bp' : 'fp');
this.getTimeInfo('iter-gap', 'iteration_interval');
- this.getTimeInfo('tailing', 'tail');
+ if (this.bp_end) {
+ this.getTimeInfo('tailing', 'tail');
+ }
}
} else {
this.fp_start = '--';
@@ -715,6 +739,9 @@ export default {
case 'fp_and_bp':
name = this.$t('profiling.deviceQueueOpTip');
break;
+ case 'fp':
+ name = this.$t('profiling.deviceQueueOpFpTip');
+ break;
case 'tail':
name = this.$t('profiling.lterationTail');
break;
@@ -1030,6 +1057,9 @@ export default {
}
}
}
+ .chart-wrap.chart-show {
+ width: calc(50% - 7.5px);
+ }
}
.image-noData {
width: 100%;