-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Conversation
@mxnet-label-bot add [pr-awaiting-review] |
f43c1e0
to
d2d1510
Compare
Looks like the alias mapping needs to get updated to search for the correct name in the MXNet profile. |
26f1ea3
to
3940595
Compare
Custom op profiler output: https://gist.github.com/connorgoggins/84601f1fe836dc81eafeebb6b09678d2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Custom": "SetValueOp" still looks incorrect. Will have dive deep to find what is the correct way of benchmarking CustomOp (since it is user defined so maybe there's no right/wrong answer.
But SetValueOp is an operator call that will happen for every op.
For eg even when we run profiler for add
this is how the profile for operator part looks
Name Total Count Time (ms) Min Time (ms) Max Time (ms) Avg Time (ms)
---- ----------- --------- ------------- ------------- -------------
DeleteVariable 196 1.4490 0.0040 0.0250 0.0074
_backward_broadcast_add 100 521.2320 4.8070 8.5970 5.2123
SetValueOp 100 645.8060 5.8820 10.0380 6.4581
broadcast_add 100 394.8910 3.5230 5.8790 3.9489
So here as well you can see DeleteVar and SetValueOp. So they can't be counted per se for Custom or any op.
Makes sense?
@ChaiBapchya makes sense. The reason I chose |
6c0a0a5
to
7d01559
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Again since we have updated this over and over, would be great to have the results updated (especially group of misc operators) Thanks |
@ChaiBapchya all perf results are updated! |
75532b6
to
c3d812f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for your contribution!
* Initial commit - added first batch of misc ops * Initial commit - added first batch of misc ops * Added remaining misc ops, including Custom op logic * Added more test cases, fixed lint errors * Update documentation * Added run_backward=True for ops supporting backwards runs * Added issue link for bilinear UpSampling * Added remaining misc ops, including Custom op logic * Update documentation * Updated alias map * Fixed missing and incorrect alias issues * Added remaining missing aliases * Fixed Custom profile dump parsing and alias * Switched to using sets for O(1) op membership checks * Added fix for dtype issue in master
* Initial commit - added first batch of misc ops * Initial commit - added first batch of misc ops * Added remaining misc ops, including Custom op logic * Added more test cases, fixed lint errors * Update documentation * Added run_backward=True for ops supporting backwards runs * Added issue link for bilinear UpSampling * Added remaining misc ops, including Custom op logic * Update documentation * Updated alias map * Fixed missing and incorrect alias issues * Added remaining missing aliases * Fixed Custom profile dump parsing and alias * Switched to using sets for O(1) op membership checks * Added fix for dtype issue in master
Description
This PR serves to implement all miscellaneous (not fitting into preexisting categories) operators in OpPerf. To achieve this, I created a file (
benchmark/opperf/nd_operations/misc_operators.py
) with a function (run_mx_misc_operators_benchmarks
) to run all miscellaneous ops. Within this function, I used calls torun_performance_test
for the misc ops with positional arguments and a call to a new function I wrote (get_remaining_miscellaneous_operators
) in conjunction withrun_op_benchmarks
for the misc ops with keyword args. I also added a call torun_mx_misc_operators_benchmarks
inopperf.py
.I also added functionality to disable backwards runs on ops that do not support them (
SequenceLast
) and registered a custom operator inline to test theCustom
op.Checklist
Essentials
Please feel free to remove inapplicable items for your PR.
Changes
Comments
Tested on p2.16xl w/ubuntu 16.04 and Mac OS with:
run_mx_misc_operators_benchmarks
- runs all misc ops on relevant dataopperf.py
(full run of all ops)Performance Results
Group of operator test - all misc ops (CPU)
Full OpPerf test (CPU)
Group of operator test - all misc ops (GPU)
Full OpPerf test (GPU)
@apeforest @access2rohit @ChaiBapchya