add some debug info for dispatch queue and regression
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
This commit is contained in:
parent
2daf7a9bb7
commit
d53029aba1
|
|
@ -338,6 +338,12 @@ Sta::setThreadCount1(int thread_count)
|
||||||
dispatch_queue_ = new DispatchQueue(thread_count);
|
dispatch_queue_ = new DispatchQueue(thread_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t
|
||||||
|
Sta::dispatchCallCount() const
|
||||||
|
{
|
||||||
|
return dispatch_queue_ ? dispatch_queue_->dispatchCallCount() : 0;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Sta::updateComponentsState()
|
Sta::updateComponentsState()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ sta_module_tests("search"
|
||||||
genclk_latch_deep
|
genclk_latch_deep
|
||||||
genclk_property_report
|
genclk_property_report
|
||||||
json_unconstrained
|
json_unconstrained
|
||||||
|
kahns_bfs_dispatch
|
||||||
latch
|
latch
|
||||||
latch_timing
|
latch_timing
|
||||||
levelize_loop_disabled
|
levelize_loop_disabled
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
Warning 198: ../../examples/gcd_sky130hd.v line 527, module sky130_fd_sc_hd__tapvpwrvgnd_1 not found. Creating black box for TAP_11.
|
||||||
|
off_dispatches=203
|
||||||
|
on_dispatches=1060
|
||||||
|
on_to_off_ratio=5.22x
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Performance regression: DispatchQueue dispatch() counts under Kahn's
|
||||||
|
# BFS OFF vs ON. The count is a wall-clock-independent proxy for
|
||||||
|
# parallel-dispatch overhead, so a shift in the golden signals a real
|
||||||
|
# change in the BFS/dispatch strategy.
|
||||||
|
|
||||||
|
read_liberty ../../test/sky130hd/sky130hd_tt.lib
|
||||||
|
read_verilog ../../examples/gcd_sky130hd.v
|
||||||
|
link_design gcd
|
||||||
|
|
||||||
|
sta::set_thread_count 2
|
||||||
|
source ../../examples/gcd_sky130hd.sdc
|
||||||
|
|
||||||
|
# OFF phase: level-based BFS.
|
||||||
|
set sta_use_kahns_bfs 0
|
||||||
|
set before [sta::dispatch_call_count]
|
||||||
|
report_checks -path_delay min_max -group_count 10 > /dev/null
|
||||||
|
set off_dispatches [expr {[sta::dispatch_call_count] - $before}]
|
||||||
|
|
||||||
|
# ON phase: Kahn's BFS. Invalidate arrivals so the iterators
|
||||||
|
# re-propagate through visitParallel instead of returning cached
|
||||||
|
# results.
|
||||||
|
sta::arrivals_invalid
|
||||||
|
set sta_use_kahns_bfs 1
|
||||||
|
set before [sta::dispatch_call_count]
|
||||||
|
report_checks -path_delay min_max -group_count 10 > /dev/null
|
||||||
|
set on_dispatches [expr {[sta::dispatch_call_count] - $before}]
|
||||||
|
|
||||||
|
puts "off_dispatches=$off_dispatches"
|
||||||
|
puts "on_dispatches=$on_dispatches"
|
||||||
|
puts [format "on_to_off_ratio=%.2fx" \
|
||||||
|
[expr {$on_dispatches / double($off_dispatches)}]]
|
||||||
Loading…
Reference in New Issue