𝗕𝘂𝗿𝗻 𝟬.𝟮𝟬.𝟬 𝗥𝗲𝗹𝗲𝗮𝘀𝗲: 𝗨𝗻𝗶𝗳𝗶𝗲𝗱 𝗖𝗣𝗨 & 𝗚𝗣𝗨 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴 𝘄𝗶𝘁𝗵 𝗖𝘂𝗯𝗲𝗖𝗟 𝗮𝗻𝗱 𝗕𝗹𝗮𝗰𝗸𝘄𝗲𝗹𝗹 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝘁𝗶𝗼𝗻𝘀
It’s been an intense few months of development, and we’re ready to release Burn 0.20.0. Our goal was to solve a classic challenge in HPC: achieving peak performance on diverse hardware without maintaining a fragmented codebase. By unifying CPU and GPU kernels through CubeCL, we’ve managed to squeeze maximum efficiency out of everything from NVIDIA Blackwell GPUs to standard consumer CPUs.
𝗖𝘂𝗯𝗲𝗖𝗟 𝗖𝗣𝗨 𝗢𝘃𝗲𝗿𝗵𝗮𝘂𝗹
The CubeCL CPU backend received a major update. It now features proper lazy execution and the same multi-stream support as our WGPU runtime. We’ve also added support for kernel fusion, which was a missing piece in our previous CPU backends. In addition, by focusing on cache line alignment and memory coalescing, our kernels are now outperforming established libraries like libtorch in several benchmarks. On the figure, you can see that CubeCL achieves up to a 4x speedup over LibTorch CPU, with even larger margins compared to SIMD-enabled ndarray.
The real win here is that CubeCL kernels are designed to adapt their computation based on launch arguments. By selecting the optimal line size (vectorization), cube dimensions, and cube counts specifically for the CPU, we can control exactly how threads map to data without touching the kernel code. We increased the line size to ensure optimal SIMD vectorization and tuned the cube settings so that data ranges respect physical cache line boundaries. This automatically eliminates cache contention, preventing multiple cores from fighting over the same memory segments, and keeps the underlying logic fully portable and optimal across both GPU and CPU.
𝗕𝗹𝗮𝗰𝗸𝘄𝗲𝗹𝗹 𝗢𝗽𝘁𝗶𝗺𝗶𝘇𝗮𝘁𝗶𝗼𝗻
On the high-end GPU side, this release adds support for the Tensor Memory Accelerator (TMA) and inlined PTX for manual Matrix-Multiply Accumulate (MMA) instructions. This allows us to get closer to the theoretical peak of modern silicon. We’ve adapted our matmul engine to combine TMA with warp specialization, specifically targeting Blackwell-based hardware like the RTX 5090. These improvements also benefit NVIDIA’s Ada and Hopper architectures. New benchmarks show our kernels reaching state-of-the-art performance, matching the industry-standard CUTLASS and cuBLAS libraries found in LibTorch.
This release also packs several other enhancements, ranging from zero-copy weight loading to a more streamlined training API. For a deep dive into all the new features and performance gains, check out the full release post here: https://lnkd.in/eQNrNXAP
We’re excited to see what you build with these new capabilities. As always, feel free to reach out on Discord or GitHub with your feedback!