...
Code Block | ||
---|---|---|
| ||
mxnet.profiler.get_summary(reset=False) """Gets current profiler summary as a JSON string. If reset is True, resets all the aggregate statistics collected up to this point i.e., it clears all the profiler counters. Parameters: ----------- reset: boolean, If True, resets all profiler statistics collected up to this point. """ |
Output:
We can visualize the output of this API as a JSON representation of the output from `mxnet.profiler.dumps(reset=False)` API as shown below.
However, please note that, below, Memory profile output is not the total bytes allocated. Current output from dumps is providing number of memory allocation calls made.
In the new suggested API, we will be adding additional Summary - Memory => Total Bytes Allocated (Per Device).
API / User Experience
We can define 2 types of users of the library and describe API interface for each of these users.
...
- ~150 most commonly used operators will be tested on CPU(with and without MKL), GPU, FP32, FP64. See Appendix 1 for list of operators.
- Operators will be tested with NDArray and Gluon interface only i.e., symbol interface is not used for testing owing to plans of deprecation.
- Python interface is used - faster and get a check in place.along with MXNet profiler.
- Time and Memory usage are Only timing is measured to start with.
- Statistics - Mean of the metric.
...
- Cover remaining operators left out from Phase 1.
- Support memory performance measurements.
- Integrate with MXNet Profiler to capture - time, memory metrics.
- Add more statistics - p50, p90, p99, min, max.
Phase 3
- Explore and have CPP performance tests for most commonly used operators. This will give the true measurements compared to using Python Interface.
- Integrate with property based testing libraries like Hypothesis, to randomly generate test cases with different tensor shapes and inputs.
...