Drew
65bd9df5f7
Chunk vertices in BFS parallel iteration for dynamic load balancing
...
Dispatch fixed-size chunks (8 vertices per task) instead of one
contiguous slice per thread, so threads that finish early pick up more
work. Chunk size vs. runtime is U-shaped; 8 is the smallest size at the
bottom of the curve.
report_checks on a 32-core machine (min of 5 runs):
- gcd_sky130hd, 32 threads: 1845 us -> 1255 us (-32%)
- gcd_sky130hd, 8 threads: 1254 us -> 1117 us (-11%)
- aes_nangate45 (~17k inst): neutral; single-threaded path unchanged.
To keep upstream merges clean, the fork logic lives in a new
BfsIterator::visitLevelChunked() wrapped in "OpenROAD fork: BFS chunked
dispatch" markers, called from one marked line in visitParallel's
existing else branch. All other upstream lines are byte-identical. This
is a stop-gap until the upstream BFS rework lands; on merge conflict
take upstream and drop it.
Signed-off-by: Drew <[email protected] >
2026-08-27 08:50:21 -04:00
..
2026-07-29 08:45:39 -07:00
2026-04-15 09:38:10 -07:00
2026-08-27 08:50:21 -04:00
2026-05-05 16:41:14 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-25 10:35:42 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-06-26 21:11:13 -07:00
2026-06-26 21:11:13 -07:00
2026-04-16 21:37:37 +00:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-06-06 16:45:46 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-08-09 09:29:03 -07:00
2026-07-10 09:37:48 -07:00
2026-03-24 12:22:20 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-07-19 10:28:43 -07:00
2026-06-23 15:09:08 -07:00
2026-04-15 09:38:10 -07:00
2026-07-14 15:30:19 -07:00
2026-05-27 10:44:55 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-05-13 09:59:35 -07:00
2026-06-22 19:20:39 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-25 10:35:42 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-06-18 14:42:12 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-05-29 16:32:47 -07:00
2026-04-15 09:38:10 -07:00
2026-08-09 09:29:03 -07:00
2026-04-15 09:38:10 -07:00
2026-06-06 11:55:51 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-06-13 16:31:24 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-07-27 08:50:40 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-25 10:40:14 -07:00
2026-08-14 19:47:46 +09:00
2026-08-09 09:29:03 -07:00
2026-04-13 14:59:05 -07:00
2026-05-29 16:32:47 -07:00
2026-07-04 09:04:31 -07:00
2026-04-24 11:54:28 -07:00
2026-06-24 16:55:51 -07:00
2026-04-13 14:59:05 -07:00
2026-08-14 19:47:46 +09:00
2026-04-13 14:59:05 -07:00
2026-07-19 10:28:43 -07:00
2026-04-13 14:59:05 -07:00
2026-05-08 10:10:21 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-06-13 16:31:24 -07:00
2026-04-13 14:59:05 -07:00
2026-06-13 16:31:24 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-15 09:38:10 -07:00
2026-04-13 14:59:05 -07:00
2026-04-13 14:59:05 -07:00
2026-04-15 09:38:10 -07:00
2026-08-09 09:29:03 -07:00
2026-04-13 14:59:05 -07:00
2026-03-10 14:57:45 -07:00