Memory Access Pattern and Performance: the Example of Matrix Multiplication - Johnny's Software Lab
johnysswlab.com · 4,709 words · saved by 1 readers
We use matrix multiplication example to investigate loop interchange and loop tiling as techniques to speed up your program that works with matrices.
Master software performance in just 16 hours! Join our Software Optimization for the Memory Subsystem Workshop taking place from May 18th to May 21st. Click here to express interest or register. We talked about data caches in several post ( here , here and here ), but I cannot stress enough the importance of undestanding how the data cache works for the speed of your code. In this post we will talk about performance of matrix multiplication . There are two reasons why we selected matrix multiplication: the basic algorithm itself is very simple so it is simple to explain what’s going on i
related reading
- How to Optimize a CUDA Matmul Kernel for cuBLAS-like Performance: a Worklogsiboehm.com
- Inside NVIDIA GPUs: Anatomy of high performance matmul kernels - Aleksa Gordićaleksagordic.com
- What Shapes Do Matrix Multiplications Like? [medium]thonking.ai
- Matrix Multiplication CUDA - ECA - GPU 2018-2019ecatue.gitlab.io
- Mini Project: GPU Accelerated Matrix Multiplication (almost) like cuBLAS0mean1sigma.com
- Worklog: Optimising GEMM on NVIDIA H100 for cuBLAS-like Performance (WIP) – Hamza's Bloghamzaelshafie.bearblog.dev
- Memory access is O(N^[1/3])vitalik.eth.limo
- abseil / Performance Hintsabseil.io
- GitHub - wangzyon/NVIDIA_SGEMM_PRACTICE: Step-by-step optimization of CUDA SGEMMgithub.com
- Outperforming cuBLAS on H100: a Worklogcudaforfun.substack.com
- Cache Lines - Algorithmicaen.algorithmica.org
- Strangely, Matrix Multiplications on GPUs Run Faster When Given "Predictable" Data! [short]thonking.ai