gpu_timeline(python code)

update mindspore/profiler/parser/integrator.py.

update mindspore/profiler/profiling.py.
This commit is contained in:
gzhcv 2020-09-09 21:56:28 +08:00
parent 6240189190
commit 28d574cdd9
2 changed files with 15 additions and 7 deletions

View File

@ -490,8 +490,6 @@ class BaseTimelineGenerator:
__col_names__ = ['op_name', 'stream_id', 'start_time', 'duration']
_output_timeline_data_file_path = 'output_timeline_data_{}.txt'
_min_cycle_counter_file_path = 'min_cycle_counter_{}.txt'
_display_filename = 'timeline_display_{}.json'
_timeline_summary_filename = 'timeline_summary_{}.json'
_timeline_meta = []
_timeline_summary = {
'total_time': 0,
@ -680,7 +678,7 @@ class GpuTimelineGenerator(BaseTimelineGenerator):
timeline_dict['args'] = args_dict
else:
# Update total time of operator execution.
self._timeline_summary['total_time'] += dur
self._timeline_summary['total_time'] += dur / factor
self._timeline_summary['op_exe_times'] += 1
self._timeline_meta.append(timeline_dict)
@ -770,6 +768,8 @@ class GpuTimelineGenerator(BaseTimelineGenerator):
class AscendTimelineGenerator(BaseTimelineGenerator):
"""Generate ascend Timeline data from file."""
_display_filename = 'ascend_timeline_display_{}.json'
_timeline_summary_filename = 'ascend_timeline_summary_{}.json'
def _load_timeline_data(self):
"""Load timeline data from file."""

View File

@ -286,10 +286,18 @@ class Profiler:
"""Used for gpu, generate timeline info, write to json format file."""
try:
size_limit = 100 * 1024 * 1024 # 100MB
timeline_generator = GpuTimelineGenerator(self._output_path, self._dev_id)
timeline_generator.init_timeline()
timeline_generator.write_timeline(size_limit)
timeline_generator.write_timeline_summary()
#stastic the number of dev_id
file_list = os.listdir(self._output_path)
dev_id_list = []
for file_name in file_list:
if file_name.startswith('gpu_op_detail'):
_dev_id = file_name.split('.')[0].split('_')[-1]
dev_id_list.append(_dev_id)
for dev_id in dev_id_list:
timeline_generator = GpuTimelineGenerator(self._output_path, dev_id)
timeline_generator.init_timeline()
timeline_generator.write_timeline(size_limit)
timeline_generator.write_timeline_summary()
except (ProfilerIOException, ProfilerFileNotFoundException, RuntimeError) as err:
logger.warning('Fail to write timeline data: %s', err)
raise RuntimeError('Fail to write timeline data.')