HadaCore: Tensor Core Accelerated Hadamard Transform Kernel
Krish Agarwal, Rishi Astra, Adnan Hoque, Mudhakar Srivatsa, Raghu Ganti, Less Wright, Sijia Chen
TL;DR
HadaCore presents a Tensor Core-accelerated FWHT kernel that preserves the asymptotic $O(mn\log(n))$ complexity while exploiting GPU hardware to reduce data movement and synchronization bottlenecks. By employing a 16-element Hadamard base case and transposition-based data reshaping, the method achieves substantial speedups on Nvidia A100 and H100 GPUs, with up to $3.5\times$ and $3.6\times$ improvements over a state-of-the-art library. It also demonstrates comparable numerical accuracy for FP16/BF16 and effective end-to-end performance in FP8-attention LLMS like Llama-3.1, validating the practical utility for quantized transformer workloads. The work lays groundwork for future integration with Triton and further Hopper-era optimizations, potentially enabling even richer fused kernels for Hadamard transforms and quantization pipelines.
Abstract
We present HadaCore, a modified Fast Walsh-Hadamard Transform (FWHT) algorithm optimized for the Tensor Cores present in modern GPU hardware. HadaCore follows the recursive structure of the original FWHT algorithm, achieving the same asymptotic runtime complexity but leveraging a hardware-aware work decomposition that benefits from Tensor Core acceleration. This reduces bottlenecks from compute and data exchange. On Nvidia A100 and H100 GPUs, HadaCore achieves speedups of 1.1-1.4x and 1.0-1.3x, with a peak gain of 3.5x and 3.6x respectively, when compared to the existing state-of-the-art implementation of the original algorithm. We also show that when using FP16 or BF16, our implementation is numerically accurate, enabling comparable accuracy on MMLU benchmarks when used in an end-to-end Llama3 inference run with quantized (FP8) attention.
