Six independent blocks have the displayed dimensions. When right-hand-side count, scalar type, accumulation type, and kernel contract also agree within each class, they can be grouped into three batches. That reduces the modeled launch count from six to three without changing their arithmetic.

Reading the drawing
Matrices of compatible shapes can share launches. The diagram keeps launch counts and data movement as separate costs in the stated model.
Drawing labels and data 46 labels
Read the original labels as selectable text. Tables preserve grid relationships; other short labels are grouped compactly.
- 2\(\times\)2
| Row / column | Column 1 | Column 2 |
|---|---|---|
| Row 1 | \(1\) | \(1\) |
| Row 2 | \(1\) | \(1\) |
- task 1
- 2\(\times\)3
| Row / column | Column 1 | Column 2 | Column 3 |
|---|---|---|---|
| Row 1 | \(1\) | \(1\) | \(1\) |
| Row 2 | \(1\) | \(1\) | \(1\) |
- task 2
- 3\(\times\)2
| Row / column | Column 1 | Column 2 |
|---|---|---|
| Row 1 | \(1\) | \(1\) |
| Row 2 | \(1\) | \(1\) |
| Row 3 | \(1\) | \(1\) |
- task 3
- 2\(\times\)2
| Row / column | Column 1 | Column 2 |
|---|---|---|
| Row 1 | \(1\) | \(1\) |
| Row 2 | \(1\) | \(1\) |
- task 4
- 3\(\times\)2
| Row / column | Column 1 | Column 2 |
|---|---|---|
| Row 1 | \(1\) | \(1\) |
| Row 2 | \(1\) | \(1\) |
| Row 3 | \(1\) | \(1\) |
- task 5
- 2\(\times\)3
| Row / column | Column 1 | Column 2 | Column 3 |
|---|---|---|---|
| Row 1 | \(1\) | \(1\) | \(1\) |
| Row 2 | \(1\) | \(1\) | \(1\) |
- task 6
- Three shape classes, six independent tasks.
Grouping does not remove arithmetic, data transfer, or shared-output dependencies.
Independence must be real
The batching statement assumes compatible backend support and independent block tasks. If several blocks accumulate into one target, the reduction or accumulation policy is additional work. Equal matrix dimensions alone do not remove that dependency. Different accumulation types also define different shape classes under the paper's convention.
Count the data separately
For three diagonal \(2\times2\) blocks, eight-byte scalars, and \(q\) right-hand sides, the stated one-pass model moves
It gives 240 bytes at \(q=1\) and 672 bytes at \(q=4\). It deliberately assumes no reuse across edges. A cache-aware implementation may have another traffic model, but it must state one.
Given operation capacity \(P\) and bandwidth \(W\), \(T\ge\max(F/P,B/W)\) is a lower bound, not an achieved runtime. Launch overhead, imperfect overlap, and utilization can make the actual time much larger.
Read this as
Grouping can remove launches while leaving the same products and data movement. Arithmetic, traffic, and scheduling are related constraints, not one interchangeable cost.