DeepSeek’s Flash MLA Kernel
February 25, 2025
Needless text
February 25, 2025
February 23, 2025
February 18, 2025
Who needs a tokenizer anyway!
February 16, 2025
In general, branching in GPU code is considered bad. When you write a kernel, it’s very easy to write the same kind of logic as you would on a CPU. However, GPU kernels execute on blocks of threads scheduled on streaming multiprocessors (SMs), and they are optimized for vectorized (or parallel) computation. This optimization relies on the idea that large groups of threads can execute the same instructions on different data in a lockstep fashion. Practically, these are scheduled as “warps” of 32 threads at a time (on Nvidia, the equivalent in AMD is 64 threads).
February 13, 2025
February 12, 2025
| [Deep Dive on CUTLASS Ping-Pong GEMM Kernel | PyTorch](https://pytorch.org/blog/cutlass-ping-pong-gemm-kernel/) |
February 11, 2025
One of the challenges discussed in the Deepseek v3 paper is the availability of grouped GEMM kernels, which are used to hide the performance impact of many small kernel launches on GPUs. Deepseek uses many small experts (256!) rather than a few larger ones, which exacerbates this problem.
February 8, 2025
February 6, 2025
Particularly at the giant tech firms where there are many, many smart people, folks look at success and try to copy it. They set themselves up for promotions against the definition of what is expected at the next level. But those expectations describe an average, not a person. Real people are spiky.
February 1, 2025