Performance Optimizations and Bounds for Sparse Matrix-Vector Multiply
Abstract
We consider performance tuning, by code and data structure reorganization, of sparse matrix-vector multiply (SpM×V), one of the most important computational kernels in scientific applications. This paper addresses the fundamental questions of what limits exist on such performance tuning, and how closely tuned code approaches these limits. Specifically, we develop upper and lower bounds on the performance (Mflop/s) of SpM×V when tuned using our previously proposed register blocking optimization. These bounds are based on the non-zero pattern in the matrix and the cost of basic memory operations, such as cache hits and misses. We evaluate our tuned implementations with respect to these bounds using hardware counter data on 4 different platforms and on test set of 44 sparse matrices. We find that we can often get within 20% of the upper bound, particularly on class of matrices from finite element modeling (FEM) problems; on non-FEM matrices, performance improvements of 2× are still possible. Lastly, we present new heuristic that selects optimal or near-optimal register block sizes (the key tuning parameters) more accurately than our previous heuristic. Using the new heuristic, we show improvements in SpM×V performance (Mflop/s) by as much as 2.5× over an untuned implementation. Collectively, our results suggest that future performance improvements, beyond those that we have already demonstrated for SpM×V, will come from two sources: (1) consideration of higher-level matrix struc…
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
Claims other papers make about this one
Each is checked against this paper’s own text: does it say what the citing paper says it does?
The operational intensity of SpMV varies from 0.17 before a register blocking optimization to 0.25 Flops per byte afterwards.
“The operational intensity varies from 0.17 before a register blocking optimization to 0.25 Flops per byte afterwards [29].”
From Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures (2009) · cites this paper as [29]
Cited by
Sorted by citations
Williams, S., Waterman, A., & Patterson, D. A. (2009) · Communications of the ACM · doi:10.1145/1498765.1498785 · Cited by 2,484 · see citing works
Self-Adapting Linear Algebra Algorithms and Software
Demmel, J., Dongarra, J., Eijkhout, V., Fuentes, E., Petitet, A., Vuduc, R., Whaley, R. C., & Yelick, K. (2005) · Proceedings of the IEEE · doi:10.1109/jproc.2004.840848 · Cited by 204 · see citing works
Self-citationWilliams, S., Waterman, A., & Patterson, D. (2009) · doi:10.2172/1407078 · Cited by 110 · see citing works
- Authors
- Vuduc, R., Demmel, J. W., Yelick, K. A., Kamil, S., Nishtala, R., & Lee, B.
- Affiliations
- University of California, Berkeley (US)
- Venue
- ACM/IEEE SC 2002 Conference (SC'02)
- Publisher
- IEEE
- Published
- 2002
- Pages
- 26-26
- ISSN
- 1063-9535 (ISSN-L)
- OpenAlex
- W4256588782
- Cited by
- 66
- References
- 0
- Citations by year
- 2026: 3 · 2025: 3 · 2024: 1 · 2023: 5 · 2022: 5 · 2021: 2 · 2020: 1 · 2019: 1 · 2017: 1 · 2016: 1 · 2015: 2 · 2014: 3 · 2013: 3 · 2012: 2
- FWCI
- 2.59
- Type
- conference paper
- Language
- en
- Open access
- closed
- Locations
- ACM/IEEE Conference on Supercomputing (SC) (publishedVersion)
- Topics
- Physical Sciences › Computer Science › Hardware and Architecture › Parallel Computing and Optimization Techniques
- Physical Sciences › Computer Science › Computational Theory and Mathematics › Matrix Theory and Algorithms
- Physical Sciences › Computer Science › Computer Graphics and Computer-Aided Design › Computer Graphics and Visualization Techniques
- Keywords
- performance bounds, performance tuning, cache misses, finite element matrices, data reuse, sparse matrix kernels, hardware performance counters
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review