Commit db8c0fc
[python][iron] ObjectFifo: emit per-handle depth ArrayAttr instead of collapsing equal depths
Cherry-picks the python-side change from upstream PR Xilinx#3096 ("Fix
objectfifo declared depth as minimum"). IRON's ObjectFifo previously
collapsed `[prod_depth, *cons_depths]` to a single int when all values
were equal, which the `aie-objectFifo-stateful-transform` lowering
interpreted as "producer depth only" and silently auto-minimized each
consumer's ping-pong from max-acquire -- dropping below the user's
declared depth.
For multi-consumer fanout with uneven acquire patterns (one consumer
must buffer ahead of a peer that's waiting on upstream data), the
auto-minimize sized every pool to 2 (ping-pong) regardless of what
.cons(depth=N) requested, deadlocking at runtime.
Concrete symptom hit in this branch: yolo26n m6 (c3k2_heavy) bot_fifo
fanout to m_0_split AND cv3_cv2. ObjectFifo declared depth=6,
.cons(depth=6) on both consumers, but lowered IR allocated 2 buffers
per pool and m6 standalone TIMEOUT'd. After the fix the producer pool
gets 6 buffers, each consumer pool gets 6 buffers, and m6 runs bit-
exact at 66.9 fps. m2 (c3k2_small, same fanout pattern, also depth=6
+ .cons(depth=6)x2) was getting prod=6/cons=4 pre-fix (some other
auto-sizing path); post-fix it gets the full 6 everywhere and m2 perf
goes 62.4 -> 69.7 fps as a side effect.
Test included upstream: `test/python/objFifo_iron_multi_cons_depth.py`.
Co-Authored-By: Claude Opus 4 (1M context) <noreply@anthropic.com>1 parent b5a3004 commit db8c0fc
1 file changed
Lines changed: 17 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | 270 | | |
285 | 271 | | |
286 | 272 | | |
| |||
304 | 290 | | |
305 | 291 | | |
306 | 292 | | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
307 | 309 | | |
308 | 310 | | |
309 | 311 | | |
310 | 312 | | |
311 | | - | |
| 313 | + | |
312 | 314 | | |
313 | 315 | | |
314 | 316 | | |
| |||
0 commit comments