Skip to content

Allow multi-source packet flows; fix pathfinder silent drop#2963

Draft
hunhoffe wants to merge 2 commits intomainfrom
fix-multi-source-packet-route-check
Draft

Allow multi-source packet flows; fix pathfinder silent drop#2963
hunhoffe wants to merge 2 commits intomainfrom
fix-multi-source-packet-route-check

Conversation

@hunhoffe
Copy link
Collaborator

PacketFlowOp::verify() was rejecting flows with more than one aie.packet_source, breaking valid fan-in topologies that predate the verifier check added in PR #2919. Relax the check from numSources != 1 to numSources < 1 so zero-source flows are still rejected while multi-source flows are accepted.

The pathfinder (AIEPathFinder.cpp / AIECreatePathFindFlows.cpp) had a related "last source wins" bug: Pass 1 overwrote the single srcCoords/ srcPort accumulator on each PacketSourceOp, silently dropping all but the last source before calling addFlow(). This is left for a follow-up fix; the per-source loop change belongs in a separate commit.

Tests added / updated:

  • badpacket_flow_source_count.mlir: remove multi-source rejection case (no longer an error), update error message for zero-source case
  • multi_source_packet_flow.mlir: positive verifier regression test
  • multi_source_pathfinder.mlir: pathfinder-level regression test (currently failing — documents the remaining bug)
  • npu-xrt/multi_source_packet_flow/: end-to-end hardware test

hunhoffe and others added 2 commits March 12, 2026 16:21
PacketFlowOp::verify() was rejecting flows with more than one
aie.packet_source, breaking valid fan-in topologies that predate the
verifier check added in PR #2919. Relax the check from `numSources != 1`
to `numSources < 1` so zero-source flows are still rejected while
multi-source flows are accepted.

The pathfinder (AIEPathFinder.cpp / AIECreatePathFindFlows.cpp) had a
related "last source wins" bug: Pass 1 overwrote the single srcCoords/
srcPort accumulator on each PacketSourceOp, silently dropping all but the
last source before calling addFlow(). This is left for a follow-up fix;
the per-source loop change belongs in a separate commit.

Tests added / updated:
- badpacket_flow_source_count.mlir: remove multi-source rejection case
  (no longer an error), update error message for zero-source case
- multi_source_packet_flow.mlir: positive verifier regression test
- multi_source_pathfinder.mlir: pathfinder-level regression test
  (currently failing — documents the remaining bug)
- npu-xrt/multi_source_packet_flow/: end-to-end hardware test

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant