Hello there, I've some questions and I would very much apreciate any help.
I'm profiling a toy benchmark using VTune Amplifier Lightweight hotspot analysis and analyzing the CPU utilization histogram on the Top-down Three tab. My question is: in the histogram If I zoom sufficiently I see that one of my threads has CPU Time = 0.0% this means what? That the CPU is waiting memory/cache ? In this same graph I see some bars with CPU Time above 7000%, how could that happen? How CPU Time is calculated?
Please see the image attached for a example.
I try to interpret your result. Your thread ran quickly, total 1ms around for CPU time total, self time of main() is zero, all CPU time was contributed from do_work() which is the subroutine of main(), do_work() includes work1 and work2 which spent CPU time 0.503ms and 0.419ms respectively, but do_works() spent 0.084ms itself.
Self CPU time doesn't include wait time, overhead time, but includes spin-time. Note that spin-time will consume the CPU time.
Total CPU time includes function self-time, and all CPU time of its subroutines, also it includes wait time, overhead time and spin-time (which is a part of CPU self-time).
Hope it helps.