forked from github/verilator
b1b5b5dfe2
The --prof-threads option has been split into two independent options: 1. --prof-exec, for collecting verilator_gantt and other execution related profiling data, and 2. --prof-pgo, for collecting data needed for PGO The implementation of execution profiling is extricated from VlThreadPool and is now a separate class VlExecutionProfiler. This means --prof-exec can now be used for single-threaded models (though it does not measure a lot of things just yet). For consistency VerilatedProfiler is renamed VlPgoProfiler. Both VlExecutionProfiler and VlPgoProfiler are in verilated_profiler.{h/cpp}, but can be used completely independently. Also re-worked the execution profile format so it now only emits events without holding onto any temporaries. This is in preparation for some future optimizations that would be hindered by the introduction of function locals via AstText. Also removed the Barrier event. Clearing the profile buffers is not notably more expensive as the profiling records are trivially destructible.
37 lines
1.0 KiB
Plaintext
37 lines
1.0 KiB
Plaintext
Verilator Gantt report
|
|
|
|
Argument settings:
|
|
+verilator+prof+exec+start+2
|
|
+verilator+prof+exec+window+2
|
|
|
|
Analysis:
|
|
Total threads = 2
|
|
Total mtasks = 7
|
|
Total cpus used = 2
|
|
Total yields = 0
|
|
Total evals = 2
|
|
Total eval loops = 2
|
|
Total eval time = 21875 rdtsc ticks
|
|
Longest mtask time = 1190 rdtsc ticks
|
|
All-thread mtask time = 5495 rdtsc ticks
|
|
Longest-thread efficiency = 5.4%
|
|
All-thread efficiency = 12.6%
|
|
All-thread speedup = 0.3
|
|
|
|
Prediction (what Verilator used for scheduling):
|
|
All-thread efficiency = 63.2%
|
|
All-thread speedup = 1.3
|
|
|
|
MTask statistics:
|
|
min log(p2e) = -3.681 from mtask 5 (predict 30, elapsed 1190)
|
|
max log(p2e) = -2.409 from mtask 8 (predict 107, elapsed 1190)
|
|
mean = -2.992
|
|
stddev = 0.459
|
|
e ^ stddev = 1.583
|
|
|
|
CPUs:
|
|
cpu 10: cpu_time=4725 socket=0 core=10 Test Ryzen 9 3950X 16-Core Processor
|
|
cpu 19: cpu_time=770 socket=0 core=3 Test Ryzen 9 3950X 16-Core Processor
|
|
|
|
Writing profile_exec.vcd
|