← Back to article

Equation 1 · How AI Memory Systems and the Bandwidth Wall Actually Work

What does this equation mean?

P  ≤  min⁡ ⁣(Pmax⁡,  I⋅B),I=FLOPsbytes movedP \;\le\; \min\!\left(P_{\max},\; I \cdot B\right), \qquad I = \frac{\text{FLOPs}}{\text{bytes moved}}

Read the formula alongside the article passage below. Each part has a deeper page with its role in the equation, the supporting passage and nearby citations.

Start withFLOPs
Divide bybytes moved
This relates toP ≤ min(P_max, I × B), qquad I
How to read the two sides of this formula. Follow the article passage for the meaning of each quantity.

This equation states a bound: one expression must stay on the indicated side of the other under the article’s assumptions. Read the equation part by part below; each part has a contextual explanation and a link to its mathematical background.

Read it piece by piece

PP

Symbol P

the attainable performance [ 11 ].

Understand this part →

Pmax⁡P_{\max}

Symbol P_max

the peak arithmetic rate of the device.

Understand this part →

II

Symbol I

I is an argument of the function-like quantity on the left; its role is set by that function’s stated inputs.

Understand this part →

BB

Symbol B

the achievable bandwidth of the memory tier supplying the operands.

Understand this part →

=

=

The expressions on both sides represent the same quantity under the stated assumptions.

Understand this part →

See an illustrated explanation →
fraction

fraction

Divide the expression above the line by the one below it.

Understand this part →

See an illustrated explanation →
multiplication

multiplication

Multiply the quantities on either side.

Understand this part →

subscript

subscript

The lower label selects a particular version, component, or indexed member of the quantity. For example, x₀ and xₜ can be values at different positions.

Understand this part →

FLOPs\text{FLOPs}

Numerator: FLOPs

The complete quantity above the fraction bar. FLOPs count floating-point arithmetic operations.

Understand this part →

bytes moved\text{bytes moved}

Denominator: bytes moved

The complete quantity below the fraction bar; it must be nonzero for this division. Bytes measure the data moved or stored.

Understand this part →

How to interpret it

With a fixed numerator, increasing a nonzero denominator reduces the fraction. Read it with the definitions, units, and assumptions supplied by the article.

What the article says around this equation

Given a memory system built this way, the question for any specific piece of computation is simple to state and consequential to answer: for this kernel, is the bottleneck the arithmetic units or the memory system that feeds them? The quantity that answers it is arithmetic intensity , defined as the number of floating-point operations a kernel performs per byte it moves across the memory boundary that matters. Williams, Waterman and Patterson formalized the relationship between intensity and attainable performance as the roofline model: P  ≤  min⁡ ⁣(Pmax⁡,  I⋅B),I=FLOPsbytes movedP \;\le\; \min\!\left(P_{\max},\; I \cdot B\right), \qquad I = \frac{\text{FLOPs}}{\text{bytes moved}}. with Pmax⁡P_{\max} the peak arithmetic rate of the device, B the achievable bandwidth of the memory tier supplying the operands, and P the…
Read the full surrounding passage
Given a memory system built this way, the question for any specific piece of computation is simple to state and consequential to answer: for this kernel, is the bottleneck the arithmetic units or the memory system that feeds them? The quantity that answers it is arithmetic intensity , defined as the number of floating-point operations a kernel performs per byte it moves across the memory boundary that matters. Williams, Waterman and Patterson formalized the relationship between intensity and attainable performance as the roofline model: P  ≤  min⁡ ⁣(Pmax⁡,  I⋅B),I=FLOPsbytes movedP \;\le\; \min\!\left(P_{\max},\; I \cdot B\right), \qquad I = \frac{\text{FLOPs}}{\text{bytes moved}}. with Pmax⁡P_{\max} the peak arithmetic rate of the device, B the achievable bandwidth of the memory tier supplying the operands, and P the attainable performance [ 11 ] . The two terms cross at a ridge point I∗I^{*} = Pmax⁡P_{\max}/B : below it, runtime is set by how many bytes must move, whatever the peak arithmetic rate promises; above it, the arithmetic units are the limit and the memory system is idle capacity. Because peak compute has grown roughly twice as fast as memory bandwidth for two decades running [ 12 ] , that ridge point has been climbing — a kernel that was comfortably compute-bound on one generation of hardware can become memory-bound on the next without a single line of its code changing.

Read the equation in its article →

Sources cited in the surrounding passage

These citations give research context. Read each source to check which claims it supports.

Return to How AI Memory Systems and the Bandwidth Wall Actually Work

See this formula across 1 published context →

Browse the mathematical compendium →