Everything About ___
Live briefing

Everything about Systolic array

Type of parallel computing architecture of tightly coupled nodes

In parallel computer architectures, a systolic array is a homogeneous network of tightly coupled data processing units (DPUs) called cells or nodes. Each node or DPU independently computes a partial result as a function of the data received from its upstream neighbours, stores the result within itself and passes it downstream. The principles of systolic-like data flow were first seen in Colossus, which was an early computer used to break German Lorenz ciphers during World War II. Due to the classified nature of Colossus, they were independently invented by H. T. Kung and Charles Leiserson who described arrays for many dense linear algebra computations for banded matrices. Early applications include computing greatest common divisors of integers and polynomials. Today, they can be found in NPUs and hardware accelerators based on spatial designs. They are sometimes classified as multiple-instruction single-data (MISD) architectures under Flynn's taxonomy, but this classification is questionable because a strong argument can be made to distinguish systolic arrays from any of Flynn's four categories: single instruction, single data (SISD); single instruction, multiple data (SIMD); multiple instruction, single data (MISD); and multiple instruction, multiple data (MIMD). Wikipedia →

🧭 Start here: a 6-step reading path

  1. Read the overview: Systolic arrayA 5-minute orientation
  2. Skim a recent paper: A Survey of Design and Optimization for Systolic Array-based DNN AcceleratorsInfluential work since 2022
  3. Pick up a classic book: An introduction to systolic algorithm designThe most-reprinted book on the subject
  4. Read the landmark paper: On supercomputing with systolic/wavefront array processorsCited 211 times
  5. Go sideways: Multiple instruction, single dataA closely related topic
  6. Go sideways: Topological sortingA closely related topic

📖 Definitions

Noun In parallel computer architectures, a homogeneous network of tightly coupled data processing units (DPUs), each of which independently computes a partial result as a function of the data received from its upstream neighbors, stores the result within itself, and passes it downstream.

🏆 Landmark papers (most cited)

🆕 Influential since 2022

📚 Books worth reading

Ranked by number of editions on Open Library, a rough measure of how lasting a book is.

🔗 Related topics