blob: 565495e27c0200d03a34c56819581cb3eec83ce3 [file] [log] [blame] [view]
# Profiler API
## Overview
MXNet has a built-in profiler which is compatibule with both Intel® VTune Amplifier as well as Chrome's chrome://tracing visualization engine. When built witht he USE_VTUNE=1 flag, MXNet makes actual VTune API calls to define Domains, Frames, Tasks, Events Counters, and Markers. For a detailed explanation of these, see [Instrumentation and Tracing Technology API Reference ](https://software.intel.com/en-us/vtune-amplifier-help-instrumentation-and-tracing-technology-api-reference)
```eval_rst
.. autosummary::
:nosignatures:
mxnet.profiler
```
## API Reference
```eval_rst
.. currentmodule:: mxnet
```
### Profiling system control
```eval_rst
.. autosummary::
:nosignatures:
profiler.set_config
profiler.set_state
profiler.pause
profiler.resume
profiler.dump
profiler.dumps
```
### Profiling Objects
These profiling objects can be created and accessed from python in order to resord performance information of the python code paths
```eval_rst
.. autosummary::
:nosignatures:
profiler.Domain
profiler.Task
profiler.Frame
profiler.Event
profiler.Counter
profiler.Marker
```
### Example usage
```python
profiler.set_config(profile_all=True,
filename='chrome_tracing_profile.json', # File used for chrome://tracing visualization
continuous_dump=True,
aggregate_stats=True) # Stats printed by dumps() call
profiler.set_state('run') # Start profiling engine
#
# Profile this section of code
#
profiler.pause() # Pause profiling
#
# Don't profile this section
#
profiler.resume() # Resume profiling
#
# Profile this section of code
#
profiler.set_state('stop') # Stop profiling engine (optional)
print(profiler.dumps()) # Print aggregate statistics if aggregate_stats was set to True
```
## API Reference
<script type="text/javascript" src='../../../_static/js/auto_module_index.js'></script>
```eval_rst
.. automodule:: mxnet.profiler
:members:
```
<script>auto_index("api-reference");</script>