An accelerator wins when the workload has steady parallel work, the dataflow keeps operands local, and the platform cost of launching and feeding it stays below the saved compute.
Pattern | Assumes | Breaks when |
|---|---|---|
Systolic / MAC array | Dense regular math with reuse | Shapes mismatch the array, sparsity grows |
SIMD / vector | Wide regular loops | Lanes diverge, masks go sparse |
Reduction tree | Many-to-few combines | Reduction depth exceeds accumulator residency |
Streaming pipeline | Producer-consumer flow | FIFOs underrun, backpressure stalls |
Lesson | What it covers |
|---|---|
Amdahl bounds plus launch and transfer costs, with kill criteria. | |
Weight, output and input stationary styles, with traffic counted by hand. | |
Fill, drain and padding losses, proved by a runnable MAC pipeline. | |
Bytes per operation, scratchpads and tile fit against SRAM capacity. | |
Overlapping transfers with compute, proved by a runnable overlap model. | |
Coherency choice, launch budgets, tail latency and release gates. |
Transfer time and launch overhead. If tiles arrive late or each launch pays a fixed cost, the array waits and the gain stays unrealized.