gpu_timeline(python code)

update mindspore/profiler/parser/integrator.py.

update mindspore/profiler/profiling.py.
pull/6842/head
gzhcv 5 years ago
parent f0f4ee985b
commit 81132207b8

@ -18,7 +18,7 @@ import time
from enum import Enum from enum import Enum
from mindspore import log as logger, context from mindspore import log as logger, context
from mindspore.communication.management import release from mindspore.communication.management import release, init, get_rank
from mindspore.profiler.common.exceptions.exceptions import ProfilerFileNotFoundException, \ from mindspore.profiler.common.exceptions.exceptions import ProfilerFileNotFoundException, \
ProfilerIOException, ProfilerException ProfilerIOException, ProfilerException
from mindspore.profiler.common.util import get_file_names, fwrite_format from mindspore.profiler.common.util import get_file_names, fwrite_format
@ -93,6 +93,8 @@ class Profiler:
self._gpu_profiler = GPUProfiler.get_instance() self._gpu_profiler = GPUProfiler.get_instance()
self._gpu_profiler.init(self._output_path) self._gpu_profiler.init(self._output_path)
self._gpu_profiler.step_profiling_enable(True) self._gpu_profiler.step_profiling_enable(True)
init()
self._dev_id = get_rank()
if kwargs: if kwargs:
logger.warning("Params not be supported yet on GPU.") logger.warning("Params not be supported yet on GPU.")
@ -291,18 +293,10 @@ class Profiler:
"""Used for gpu, generate timeline info, write to json format file.""" """Used for gpu, generate timeline info, write to json format file."""
try: try:
size_limit = 100 * 1024 * 1024 # 100MB size_limit = 100 * 1024 * 1024 # 100MB
#stastic the number of dev_id timeline_generator = GpuTimelineGenerator(self._output_path, self._dev_id)
file_list = os.listdir(self._output_path) timeline_generator.init_timeline()
dev_id_list = [] timeline_generator.write_timeline(size_limit)
for file_name in file_list: timeline_generator.write_timeline_summary()
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: except (ProfilerIOException, ProfilerFileNotFoundException, RuntimeError) as err:
logger.warning('Fail to write timeline data: %s', err) logger.warning('Fail to write timeline data: %s', err)
raise RuntimeError('Fail to write timeline data.') raise RuntimeError('Fail to write timeline data.')

Loading…
Cancel
Save