---
title: "Roofline — paper by Williams et al. (2009) — summary and ideas"
description: "Multicore chips are diverging in design: many simple cores versus a few complex ones… 30 references, cited by 332 papers here."
authors: ["Samuel Williams", "Andrew Waterman", "David Patterson"]
year: 2009
venue: "Communications of the ACM 52(4)"
source: "https://doi.org/10.1145/1498765.1498785"
doi: "10.1145/1498765.1498785"
licence: "author copy (berkeley.edu) — read only"
summary_licence: "Elamur Cosmic License"
canonical: "https://research.elamur.ai/free/en/papers/williams-2009-roofline-insightful-visual-performance-model/"
---
[Elamur Research](https://md.research.elamur.ai/free/en/) · [this page in HTML](https://research.elamur.ai/free/en/papers/williams-2009-roofline-insightful-visual-performance-model/)

[home](https://md.research.elamur.ai/free/en/) / [papers](https://md.research.elamur.ai/free/en/papers/) / [2009](https://md.research.elamur.ai/free/en/papers/2009/) / Roofline: An Insightful Visual Performance Model for Multicore Architectures

# Roofline: An Insightful Visual Performance Model for Multicore Architectures

**Authors:** Samuel Williams, Andrew Waterman and [David Patterson](https://md.research.elamur.ai/free/en/authors/david-patterson/) · **Year:** 2009 · **Venue:** [Communications of the ACM 52(4)](https://md.research.elamur.ai/free/en/venues/communications-of-the-acm/) ([Communications of the ACM 2009](https://md.research.elamur.ai/free/en/venues/communications-of-the-acm/2009/)) · **Publisher:** [Association for Computing Machinery](https://md.research.elamur.ai/free/en/publishers/association-for-computing-machinery/) · **Licence:** author copy (berkeley.edu) — read only

**Links:** [Publisher's page](https://doi.org/10.1145/1498765.1498785) · [PDF](https://people.eecs.berkeley.edu/~kubitron/cs252/handouts/papers/RooflineVyNoYellow.pdf) · [DOI 10.1145/1498765.1498785](https://doi.org/10.1145/1498765.1498785) · [OpenAlex](https://openalex.org/W2002555321)

**Citations:** 2,456 citations (OpenAlex, 2026-10-14) · [332](https://md.research.elamur.ai/free/en/papers/williams-2009-roofline-insightful-visual-performance-model/cited-by/) in our library, of the 149,439 papers whose bibliographies we read

## Summary
Multicore chips are diverging in design: many simple cores versus a few complex ones, multithreading, and local stores in place of caches. This makes it harder for programmers, compiler writers and architects to reason about performance. The authors propose Roofline, a bound-and-bottleneck model that aims to give insight rather than exact predictions. It uses a log-log chart that plots attainable floating-point throughput against operational intensity, defined as flops per byte of DRAM traffic after the cache hierarchy has filtered accesses.

A kernel's speed is capped by whichever is lower: peak compute, or sustainable memory bandwidth multiplied by intensity. This produces a flat roof and a slanted roof that meet at a "ridge point". Bandwidth comes from the authors' own optimized microbenchmarks, not from DRAM pin specifications.

The model is then extended with "ceilings", which show the limit reached when a specific optimization is missing. These indicate which optimizations to apply and in what order. The approach is demonstrated on four diverse multicore machines (AMD Opteron X4, Intel Xeon Clovertown, IBM Cell, Sun UltraSPARC T2+) using floating-point kernels such as sparse matrix, stencil/structured grid and FFT codes. One chart per machine can be reused for any kernel.

## Key points
- Core bound: attainable GFlops/s = min(peak FP performance, peak memory bandwidth × operational intensity). Both lines are measured once per computer, not once per kernel.
- The dual-socket 2.2 GHz AMD Opteron X2 (model 2214) has a peak of 17.6 GFlops/s and 15 GB/s of measured sustainable bandwidth, which puts its ridge point at about 1 flop/byte.
- The Opteron X4 uses the same socket and therefore has the same DRAM bandwidth, but its peak compute is roughly 4× higher. Its ridge point moves to 4.4, so kernels need higher intensity to gain anything from it.
- Opteron X2 compute ceilings: 8.8 GFlops/s with an unbalanced add/multiply mix, and 2.2 GFlops/s when ILP/SIMD optimizations are also missing.
- Opteron X2 memory ceilings: 11 GB/s without software prefetching, 4.8 GB/s without NUMA memory affinity as well, and 2.7 GB/s with only unit-stride optimization.

## Interesting ideas
- **Aim for insight over accuracy.** The authors deliberately build an imperfect but intuitive model, as the 3Cs cache model did. Simple bounding charts can guide decisions better than precise but opaque predictors, for example when explaining throughput of NLP inference or data pipelines.
- **Measure traffic at the real bottleneck.** Counting bytes between caches and DRAM, rather than between CPU and cache, lets memory optimizations show up in the model. More generally, define the ratio at whichever interface actually limits throughput, such as disk, network or GPU memory.
- **Treat ceilings as an ordered optimization checklist.** Each missing optimization lowers the reachable limit, and the kernel's intensity indicates which group of fixes (compute or memory) matters. This turns profiling into a prioritized to-do list.
- **Use the ridge point as a one-number difficulty score.** Its x-coordinate summarizes how hard it is to reach a machine's peak, which helps compare hardware for a given workload before writing any code.
- **Use measured, sustainable limits rather than spec-sheet numbers.** Benchmarking achievable bandwidth gives honest roofs. The authors also suggest the model can extend to non-arithmetic operations, which makes it reusable outside floating-point work.

*Our summary of the paper, in our own words — not its text. The work belongs to its authors; read it at the links above.*

## Institutions

- [University of California, Berkeley](https://md.research.elamur.ai/free/en/universities/university-of-california-berkeley/) — University, Berkeley, United States · 209 works · 244,782 citations
- [Lawrence Berkeley National Laboratory](https://md.research.elamur.ai/free/en/labs/lawrence-berkeley-national-laboratory/) — Research institute, Berkeley, United States · 4 works · 41,948 citations

📚 Shelves (3): [🖥️ Computer Science](https://md.research.elamur.ai/free/en/shelves/computer-science/) · 18,614 works · [🔌 Hardware and Architecture](https://md.research.elamur.ai/free/en/shelves/computer-science/hardware-and-architecture/) · 167 works · [🌐 Computer Networks and Communications](https://md.research.elamur.ai/free/en/shelves/computer-science/computer-networks-and-communications/) · 100 works

🧭 Topics (1): [⚡ GPU & parallel computing](https://md.research.elamur.ai/free/en/topics/gpu-parallel-computing/) · 41 works

## Cite

Cite as: Samuel Williams, Andrew Waterman and David Patterson. 2009. Roofline: An Insightful Visual Performance Model for Multicore Architectures. Communications of the ACM 52(4).

The paper itself, not this page. BibTeX from the library's record of the work.

```bibtex
@inproceedings{williams2009roofline,
  title = {{Roofline: An Insightful Visual Performance Model for Multicore Architectures}},
  author = {Samuel Williams, Andrew Waterman and David Patterson},
  booktitle = {Communications of the ACM 52(4)},
  year = {2009},
  doi = {10.1145/1498765.1498785},
  url = {https://doi.org/10.1145/1498765.1498785}
}
```

- [← previous Distant supervision for relation extraction without labeled data](https://md.research.elamur.ai/free/en/papers/mintz-2009-distant-supervision-relation-extraction-without/)
- [next → Reading Tea Leaves: How Humans Interpret Topic Models](https://md.research.elamur.ai/free/en/papers/chang-2009-reading-tea-leaves-humans-interpret-topic/)
- [↑ back to papers of 2009](https://md.research.elamur.ai/free/en/papers/2009/)

## References

30 references, 0 of them with a card of ours. ↗ leads to the work, «find» searches for one we have no id for yet.

1. V. Adve, Analyzing the Behavior and Performance of Parallel Programs, PhD thesis, Univ. of Wisconsin, 1993. [find](https://scholar.google.com/scholar?q=V%2E+Adve%2C+Analyzing+the+Behavior+and+Performance+of+Parallel+Programs%2C+PhD+thesis%2C+Univ%2E+of+Wisconsin%2C+1993%2E)
2. AMD, Software Optimization Guide for AMD Family 10h Processors, Publication 40546, April 2008. [find](https://scholar.google.com/scholar?q=AMD%2C+Software+Optimization+Guide+for+AMD+Family+10h+Processors%2C+Publication+40546%2C+April+2008%2E)
3. G. Amdahl, “Validity of the Single Processor Approach to Achieving Large-Scale Computing Capabilities,” AFIPS Conference Proceedings 30(1967), 483-485. [find](https://scholar.google.com/scholar?q=G%2E+Amdahl%2C+%E2%80%9CValidity+of+the+Single+Processor+Approach+to+Achieving+Large%2DScale+Computing+Capabilities%2C%E2%80%9D+AFIPS+Conference+Proceedings+30%281967%29%2C+483%2D485%2E)
4. K. Asanovic, R. Bodik, B. Catanzaro, J. Gebis, K. Keutzer, D. Patterson, W. Plishker, J. Shalf, S. Williams, K. Yelick. “The landscape of parallel computing research: A view from Berkeley.” Tech. Rep. UCB/EECS-2006-183, EECS, U.C. Berkeley, Dec 2006. [find](https://scholar.google.com/scholar?q=K%2E+Asanovic%2C+R%2E+Bodik%2C+B%2E+Catanzaro%2C+J%2E+Gebis%2C+K%2E+Keutzer%2C+D%2E+Patterson%2C+W%2E+Plishker%2C+J%2E+Shalf%2C+S%2E+Williams%2C+K%2E+Yelick%2E+%E2%80%9CThe+landscape+of+parallel+computing+research%3A+A+view+from+Berkeley%2E%E2%80%9D+Tech%2E+Rep%2E)
5. C. Bienia,. S. Kumar, J. Singh, and K. Li. “The PARSEC Benchmark Suite: Characterization and Architectural Implications,” Princeton University Technical Report TR-81 1-008, January 2008. [find](https://scholar.google.com/scholar?q=C%2E+Bienia%2C%2E+S%2E+Kumar%2C+J%2E+Singh%2C+and+K%2E+Li%2E+%E2%80%9CThe+PARSEC+Benchmark+Suite%3A+Characterization+and+Architectural+Implications%2C%E2%80%9D+Princeton+University+Technical+Report+TR%2D81+1%2D008%2C+January+2008%2E)
6. S. Bird et al, “A Case for Sensible Performance Counters,” submitted to the First USENIX Workshop on Hot Topics in Parallelism (HotPar ’09), Berkeley CA, March 2009. [find](https://scholar.google.com/scholar?q=S%2E+Bird+et+al%2C+%E2%80%9CA+Case+for+Sensible+Performance+Counters%2C%E2%80%9D+submitted+to+the+First+USENIX+Workshop+on+Hot+Topics+in+Parallelism+%28HotPar+%E2%80%9909%29%2C+Berkeley+CA%2C+March+2009%2E)
7. E. Boyd, W. Azeem, H. Lee, T. Shih, S. Hung, and E. Davidson, “A Hierarchical Approach to Modeling and Improving the Performance of Scientific Applications on the KSR1,” Proc. 1994 Int’l Conf. on Parallel Processing, vol. 3, pp. 188-192, 1994. [find](https://scholar.google.com/scholar?q=E%2E+Boyd%2C+W%2E+Azeem%2C+H%2E+Lee%2C+T%2E+Shih%2C+S%2E+Hung%2C+and+E%2E+Davidson%2C+%E2%80%9CA+Hierarchical+Approach+to+Modeling+and+Improving+the+Performance+of+Scientific+Applications+on+the+KSR1%2C%E2%80%9D+Proc%2E+1994+Int%E2%80%99l+Conf%2E+on+Para)
8. D. Callahan, J. Cocke, and K. Kennedy. “Estimating interlock and improving balance for pipelined machines,” J. Parallel Distrb. Comput. 5, 334-358. 1988. [find](https://scholar.google.com/scholar?q=D%2E+Callahan%2C+J%2E+Cocke%2C+and+K%2E+Kennedy%2E+%E2%80%9CEstimating+interlock+and+improving+balance+for+pipelined+machines%2C%E2%80%9D+J%2E+Parallel+Distrb%2E+Comput%2E+5%2C+334%2D358%2E+1988%2E)
9. J. Chong, Private Communication, 2008. [find](https://scholar.google.com/scholar?q=J%2E+Chong%2C+Private+Communication%2C+2008%2E)
10. P. Colella, “Defining Software Requirements for Scientific Computing,” presentation, 2004. [find](https://scholar.google.com/scholar?q=P%2E+Colella%2C+%E2%80%9CDefining+Software+Requirements+for+Scientific+Computing%2C%E2%80%9D+presentation%2C+2004%2E)
11. S. Carr and K. Kennedy, “Improving the Ratio of Memory Operations to Floating-Point Operations in Loops,” ACM TOPLAS 16(4) (Nov. 1994). [find](https://scholar.google.com/scholar?q=S%2E+Carr+and+K%2E+Kennedy%2C+%E2%80%9CImproving+the+Ratio+of+Memory+Operations+to+Floating%2DPoint+Operations+in+Loops%2C%E2%80%9D+ACM+TOPLAS+16%284%29+%28Nov%2E+1994%29%2E)
12. K. Datta, M. Murphy, V. Volkov, S. Williams, J. Carter, L. Oliker, D. Patterson, J Shalf, K. Yelick, “Stencil Computation Optimization and Autotuning on State-of-the-Art Multicore Architectures,” Supercomputing (SC08), 2008. [find](https://scholar.google.com/scholar?q=K%2E+Datta%2C+M%2E+Murphy%2C+V%2E+Volkov%2C+S%2E+Williams%2C+J%2E+Carter%2C+L%2E+Oliker%2C+D%2E+Patterson%2C+J+Shalf%2C+K%2E+Yelick%2C+%E2%80%9CStencil+Computation+Optimization+and+Autotuning+on+State%2Dof%2Dthe%2DArt+Multicore+Architectures%2C%E2%80%9D+Supe)
13. J. Demmel, J. Dongarra, V. Eijkhout, E. Fuentes, A. Petitet, R. Vuduc, R. Whaley, and K. Yelick, “Self Adapting Linear Algebra Algorithms and Software,” Proc. IEEE: Special Issue on Program Generation, Optimization, and Adaptation, 93 (2) 2005. [find](https://scholar.google.com/scholar?q=J%2E+Demmel%2C+J%2E+Dongarra%2C+V%2E+Eijkhout%2C+E%2E+Fuentes%2C+A%2E+Petitet%2C+R%2E+Vuduc%2C+R%2E+Whaley%2C+and+K%2E+Yelick%2C+%E2%80%9CSelf+Adapting+Linear+Algebra+Algorithms+and+Software%2C%E2%80%9D+Proc%2E+IEEE%3A+Special+Issue+on+Program+Generation)
14. M. Dubois and F. A. Briggs, “Performance of Synchronized Iterative Processes in Multiprocessor Systems,” IEEE Trans. on Software Engineering SE-8, 4 (July 1982), 419-431. [find](https://scholar.google.com/scholar?q=M%2E+Dubois+and+F%2E+A%2E+Briggs%2C+%E2%80%9CPerformance+of+Synchronized+Iterative+Processes+in+Multiprocessor+Systems%2C%E2%80%9D+IEEE+Trans%2E+on+Software+Engineering+SE%2D8%2C+4+%28July+1982%29%2C+419%2D431%2E)
15. M. Frigo and S. Johnson, "The Design and Implementation of FFTW3," Proc. IEEE: Special Issue on Program Generation, Optimization, and Platform Adaptation. 93 (2) 2005. [find](https://scholar.google.com/scholar?q=M%2E+Frigo+and+S%2E+Johnson%2C+%22The+Design+and+Implementation+of+FFTW3%2C%22+Proc%2E+IEEE%3A+Special+Issue+on+Program+Generation%2C+Optimization%2C+and+Platform+Adaptation%2E+93+%282%29+2005%2E)
16. M. Harris, "Mapping Computational Concepts to GPUs," ACM SIGGRAPH Tutorials, Chapter 31, 2005. [find](https://scholar.google.com/scholar?q=M%2E+Harris%2C+%22Mapping+Computational+Concepts+to+GPUs%2C%22+ACM+SIGGRAPH+Tutorials%2C+Chapter+31%2C+2005%2E)
17. J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach, 4th ed., Boston, MA: Morgan Kaufmann Publishers, 2007. [find](https://scholar.google.com/scholar?q=J%2E+Hennessy+and+D%2E+Patterson%2C+Computer+Architecture%3A+A+Quantitative+Approach%2C+4th+ed%2E%2C+Boston%2C+MA%3A+Morgan+Kaufmann+Publishers%2C+2007%2E)
18. M. Hill and M. Marty, “Amdahl's Law in the Multicore Era,” IEEE Computer, July 2008. [find](https://scholar.google.com/scholar?q=M%2E+Hill+and+M%2E+Marty%2C+%E2%80%9CAmdahl%27s+Law+in+the+Multicore+Era%2C%E2%80%9D+IEEE+Computer%2C+July+2008%2E)
19. M. Hill and A. Smith, "Evaluating Associativity in CPU Caches," IEEE Trans. on Computers, 38(12), pp. 1612-1630, Dec. 1989. [find](https://scholar.google.com/scholar?q=M%2E+Hill+and+A%2E+Smith%2C+%22Evaluating+Associativity+in+CPU+Caches%2C%22+IEEE+Trans%2E+on+Computers%2C+38%2812%29%2C+pp%2E+1612%2D1630%2C+Dec%2E+1989%2E)
20. E. Lazowska, J. Zahorjan, S. Graham, and K. Sevcik, Quantitative System Performance: Computer System Analysis Using Queueing Network Models, Prentice Hail, Upper Saddle River, NJ, 1984. [find](https://scholar.google.com/scholar?q=E%2E+Lazowska%2C+J%2E+Zahorjan%2C+S%2E+Graham%2C+and+K%2E+Sevcik%2C+Quantitative+System+Performance%3A+Computer+System+Analysis+Using+Queueing+Network+Models%2C+Prentice+Hail%2C+Upper+Saddle+River%2C+NJ%2C+1984%2E)
21. J. D. C. Little, "A Proof of the Queueing Formula L = λ W" Operations Research, 9, 383-387 (1961). [find](https://scholar.google.com/scholar?q=J%2E+D%2E+C%2E+Little%2C+%22A+Proof+of+the+Queueing+Formula+L+%3D+%CE%BB+W%22+Operations+Research%2C+9%2C+383%2D387+%281961%29%2E)
22. J. McCalpin, “STREAM: Sustainable Memory Bandwidth in High Performance Computers,” www.cs.virginia.edu/stream, 1995. [find](https://scholar.google.com/scholar?q=J%2E+McCalpin%2C+%E2%80%9CSTREAM%3A+Sustainable+Memory+Bandwidth+in+High+Performance+Computers%2C%E2%80%9D+www%2Ecs%2Evirginia%2Eedu%2Fstream%2C+1995%2E)
23. D. Patterson, “Latency Lags Bandwidth,” 47:10, CACM, Oct. 2004. [find](https://scholar.google.com/scholar?q=D%2E+Patterson%2C+%E2%80%9CLatency+Lags+Bandwidth%2C%E2%80%9D+47%3A10%2C+CACM%2C+Oct%2E+2004%2E)
24. S. Williams, Autotuning Performance on Multicore Computers, PhD thesis, U.C. Berkeley, 2008. [find](https://scholar.google.com/scholar?q=S%2E+Williams%2C+Autotuning+Performance+on+Multicore+Computers%2C+PhD+thesis%2C+U%2EC%2E+Berkeley%2C+2008%2E)
25. S. Williams, J. Carter, L. Oliker, J. Shalf, K. Yelick, "Lattice Boltzmann Simulation Optimization on Leading Multicore Platforms," Int’l Parallel & Distributed Processing Symposium (IPDPS), 2008. [find](https://scholar.google.com/scholar?q=S%2E+Williams%2C+J%2E+Carter%2C+L%2E+Oliker%2C+J%2E+Shalf%2C+K%2E+Yelick%2C+%22Lattice+Boltzmann+Simulation+Optimization+on+Leading+Multicore+Platforms%2C%22+Int%E2%80%99l+Parallel+%26+Distributed+Processing+Symposium+%28IPDPS%29%2C+2008%2E)
26. S. Williams, L. Oliker, R. Vuduc, J. Shalf, K. Yelick, J. Demmel, "Optimization of Sparse Matrix-Vector Multiplication on Emerging Multicore Platforms," Supercomputing (SC07), 2007. [find](https://scholar.google.com/scholar?q=S%2E+Williams%2C+L%2E+Oliker%2C+R%2E+Vuduc%2C+J%2E+Shalf%2C+K%2E+Yelick%2C+J%2E+Demmel%2C+%22Optimization+of+Sparse+Matrix%2DVector+Multiplication+on+Emerging+Multicore+Platforms%2C%22+Supercomputing+%28SC07%29%2C+2007%2E)
27. M. Tikir, L. Carrington, E. Strohmaier, A. Snavely, "A Genetic Algorithms Approach to Modeling the Performance of Memory-bound Computations," Supercomputing (SC07), 2007. [find](https://scholar.google.com/scholar?q=M%2E+Tikir%2C+L%2E+Carrington%2C+E%2E+Strohmaier%2C+A%2E+Snavely%2C+%22A+Genetic+Algorithms+Approach+to+Modeling+the+Performance+of+Memory%2Dbound+Computations%2C%22+Supercomputing+%28SC07%29%2C+2007%2E)
28. A. Thomasian and P. Bay, “Analytic Queueing Network Models for Parallel Processing of Task Systems,” IEEE Trans. on Computers C-35, 12 (December 1986), 1045-1054. [find](https://scholar.google.com/scholar?q=A%2E+Thomasian+and+P%2E+Bay%2C+%E2%80%9CAnalytic+Queueing+Network+Models+for+Parallel+Processing+of+Task+Systems%2C%E2%80%9D+IEEE+Trans%2E+on+Computers+C%2D35%2C+12+%28December+1986%29%2C+1045%2D1054%2E)
29. R. Vuduc, J. Demmel, K. Yelick, S. Kamil, R. Nishtala, and B. Lee. “Performance Optimizations and Bounds for Sparse Matrix-Vector Multiply,” Supercomputing (SC02), Nov. 2002. [find](https://scholar.google.com/scholar?q=R%2E+Vuduc%2C+J%2E+Demmel%2C+K%2E+Yelick%2C+S%2E+Kamil%2C+R%2E+Nishtala%2C+and+B%2E+Lee%2E+%E2%80%9CPerformance+Optimizations+and+Bounds+for+Sparse+Matrix%2DVector+Multiply%2C%E2%80%9D+Supercomputing+%28SC02%29%2C+Nov%2E+2002%2E)
30. S. Woo, M. Ohara, E. Torrie, J-P Singh, and A. Gupta. “The SPLASH-2 programs: characterization and methodological considerations,” Proc. 22nd annual Int’l Symp. on Computer Architecture (ISCA '95), May 1995, 24 - 36. Categories and Subject Descriptors B.8.2 [Performance And Reliability]: Performance… [find](https://scholar.google.com/scholar?q=S%2E+Woo%2C+M%2E+Ohara%2C+E%2E+Torrie%2C+J%2DP+Singh%2C+and+A%2E+Gupta%2E+%E2%80%9CThe+SPLASH%2D2+programs%3A+characterization+and+methodological+considerations%2C%E2%80%9D+Proc%2E+22nd+annual+Int%E2%80%99l+Symp%2E+on+Computer+Architecture+%28ISCA+%2795%29%2C+Ma)

*Updated 2 November 2026*
