Cache-oblivious sparse matrix–vector multiplication
Cache-oblivious sparse matrix–vector multiplication
Albert-Jan Yzelman April 3, 2009 Joint work with Rob Bisseling
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrixvector multiplication Albert-Jan - - PowerPoint PPT Presentation
Cache-oblivious sparse matrixvector multiplication Cache-oblivious sparse matrixvector multiplication Albert-Jan Yzelman April 3, 2009 Joint work with Rob Bisseling Albert-Jan Yzelman & Rob Bisseling Cache-oblivious sparse
Cache-oblivious sparse matrix–vector multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Main memory (RAM) Cache (L1) Cache (L2)
✁✁✁ ✁✁✁ ✁✁✁ ✁✁✁ ✂✁✂✁✂✁✂ ✂✁✂✁✂✁✂ ✂✁✂✁✂✁✂ ✂✁✂✁✂✁✂ ✄✁✄✁✄✁✄ ✄✁✄✁✄✁✄ ✄✁✄✁✄✁✄ ☎✁☎✁☎✁☎ ☎✁☎✁☎✁☎ ☎✁☎✁☎✁☎ ✆✁✆✁✆✁✆ ✆✁✆✁✆✁✆ ✝✁✝✁✝✁✝ ✝✁✝✁✝✁✝CPU
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Memory and multiplication
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-friendly data structures
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-friendly data structures
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-friendly data structures
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-friendly data structures
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-friendly data structures
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-friendly data structures
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
No cache misses 1 cache miss per row 3 cache misses 1 cache miss 7 cache misses 15 cache misses
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Cache-oblivious sparse matrix structure
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Obtaining SBD form using partioners
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Obtaining SBD form using partioners
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Obtaining SBD form using partioners
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Obtaining SBD form using partioners
No cache misses 1 cache miss per row 3 cache misses 1 cache miss 7 cache misses 15 cache misses
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Obtaining SBD form using partioners
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Obtaining SBD form using partioners
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
1 2 3 4 5 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1 Matrix number Original 2/0.1 3 4 100 400 2/0.3 3 4 100 400
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results 11 12 13 14 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Matrix number Original 2 3 4 5 10 15 20
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
11 12 13 14 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 Matrix number CRS 1 2 3 4 5 10 15 20
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Experimental results
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Conclusions & Future Work
Albert-Jan Yzelman & Rob Bisseling
Cache-oblivious sparse matrix–vector multiplication > Conclusions & Future Work
Albert-Jan Yzelman & Rob Bisseling