gpu_timeline(python code)
update mindspore/profiler/parser/integrator.py. update mindspore/profiler/profiling.py.
This commit is contained in:
parent
6240189190
commit
28d574cdd9
|
@ -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."""
|
||||
|
|
|
@ -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.')
|
||||
|
|
Loading…
Reference in New Issue