06 / 06 · Arrays, work and delivery

Designing the Tile

Choose how many arrays, their square dimension, the time for one MVM, the link configuration, and its bandwidth. The model compares what those arrays require with what the memory path can supply.

Can the bandwidth keep every array busy?

One N × N MVM transfers 4N input bytes and 4N output bytes. A arrays, each computing once every T cycles, need:

Brequired=8ANTMVMB_{\text{required}} = \dfrac{8AN}{T_{\text{MVM}}}

Shared link: B is the total input/output budget for all arrays. Independent links: B is available in each direction for the group, giving 2B total. It is never bandwidth per array.

The charts compare total input-plus-output capacity and demand. Independent links assume equally provisioned input and output paths that operate simultaneously.

Increasing array count or dimension raises the requirement. Shortening MVM time also raises it: faster compute needs its next input sooner. Increasing B changes capacity, not the amount of data each MVM needs.

Which combinations fit the same bandwidth?

This map holds MVM time, link configuration and bandwidth fixed, then compares all 1–16 array counts and square dimensions from 32 to 2048.

Each cell is the ideal utilization bound. 100% means capacity covers demand. Lower values show the fraction of compute capacity that this bandwidth could sustain.

Select a cell to inspect its exact required bandwidth and throughput above. The cell changes array count and dimension together; MVM time and bandwidth remain unchanged.

The map is a calculation, not a sweep of new simulations. It does not check whether the matrices fit a particular scratchpad or whether the workload can use that many independent arrays.