Get the latest tech news

How to optimize a CUDA matmul kernel for cuBLAS-like performance (2022)


In this post, I’ll iteratively optimize an implementation of matrix multiplication written in CUDA.My goal is not to build a cuBLAS replacement, but to deepl...

This means our final optimized kernel will be compute-bound, as long as we end up having to transfer <10x the absolute minimum memory volume of 278MB.The A6000 is advertised with 309TFLOPs/s of tensor core performance. For kernel 6 we’ll take two measures to try to improve that: Transposing As to enable auto-vectorization of SMEM loads, and promising the compiler alignment on the GMEM accesses. The profiler still shows a bunch of problem areas and optimization opportunities: We’re running into shared-memory bank conflicts (which cuBLAS avoids), our occupancy is higher than necessary, and we haven’t implemented any double buffering (which the CUTLASS docs seem to suggest is pretty useful).

Get the Android app

Or read this on Hacker News

Read more on:

Photo of like performance

like performance

Photo of cublas

cublas

Photo of worklog

worklog

Related news:

News photo

DeepCool Adds Vapor Chamber to an Air Cooler: AIO-Like Performance at Air Cooler Reliability