parser script to process pytorch autograd profiler result, convert json file to excel.
# To enable GPU profiling, provide use_cuda=True for profiler()
with torch.autograd.profiler.profile() as prof:
func_()
prof.export_chrome_trace("result.json")
python process.py --input result.json --output result.xlsx
OR:
bash process.sh result.json
PyTorch autograd profiler records each operator executed by autograd engine, the profiler overcounts nested function calls from both engine side and underlying ATen library side, so total summation will exceed actual total runtime. Columns in the output excel:
name
: kernel name from PyTorch ATen library (the native C++ Tensor library)ts
: time stampdur
: execution sum time in ustid
: 0 for CPU forward path; for CPU backward path; N+2 for GPU N (tid2 refers to GPU 0)call_num
: iteration count Sort bydur
column, then you will get hotspot kernels.