Skip to main content

Module csr_queue_split

Module csr_queue_split 

Source
Expand description

Mixed queue traversal that keeps low-degree rows scalar and sends only hubs to row-strided teams. Mixed sparse CSR queue traversal for active sets with a small number of hubs.

A global row-strided pass is excellent for true hub rows, but wastes lanes on the many one-edge and three-edge rows that usually travel in the same active queue. This primitive keeps low-degree rows in a scalar queue pass and compacts only high-degree sources into a second queue for row-strided traversal.

Structs§

CsrQueueSplitLowForwardCpuResult
CPU result for the low split pass.
CsrQueueSplitLowForwardParams
Positional inputs for csr_queue_split_low_forward_traverse.

Constants§

CSR_QUEUE_SPLIT_HIGH_DEGREE_THRESHOLD
Degree at which a queued row has enough work to amortize a 32-lane team.
CSR_QUEUE_SPLIT_LOW_FORWARD_OP_ID
Canonical op id for mixed low-row traversal and high-row compaction.
CSR_QUEUE_SPLIT_LOW_FORWARD_WORKGROUP_SIZE
Workgroup shape for the low-row split pass.

Functions§

csr_queue_split_low_dispatch_grid
Dispatch grid for the one-lane-per-active-source low split pass.
csr_queue_split_low_forward_traverse
Build the low-row half of a mixed queue traversal.
csr_queue_split_low_forward_traverse_with
Build the low-row half of a mixed queue traversal.
csr_queue_split_mixed_logical_lanes
Logical lanes consumed by low split plus a high row-strided follow-up pass.
try_csr_queue_split_low_forward_traverse_cpu
Fallible CPU reference for the low split pass.