Commit b56c690
committed
coll/alltoall: guard block-scope warp quiet when no warps are unused
When SCOPE==BLOCK and PE_size < groupSize, block-scope alltoall delegates
the final transfer_quiet to whichever warp has index == first_unused_warp.
If all warps already took part in the transfer (num_warps ==
first_unused_warp), no warp matches and transfer_quiet is silently skipped.
The kernel returns without flushing the proxy channel, so in-flight puts
may land at the destination after the caller observes completion, which
manifests as corrupted alltoall output for small block launches (e.g. the
functional device alltoall test on B300 with num_threads = 32, PE_size =
16, giving num_warps = 1 and first_unused_warp = 1).
Add the num_warps > first_unused_warp guard so the else branch runs a
full-scope transfer_quiet in that case.1 parent c2bd3f8 commit b56c690
1 file changed
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
114 | 117 | | |
115 | 118 | | |
116 | 119 | | |
| |||
0 commit comments