Overview of ThunderKittens
mainThunderKittens is a framework designed for writing high-performance deep learning kernels in CUDA for NVIDIA GPUs. It is built around the principle of manipulating small tiles of data (minimum 16x16) to maximize hardware utilization.
Key features include:
- Tensor Core acceleration: Support for asynchronous WGMMA (H100) and TCGEN05 (B200) calls.
- Memory Management: Optimized shared memory usage to avoid bank conflicts, and support for Distributed Shared Memory.
- Asynchronous Operations: Uses TMA (Tensor Memory Accelerator) for asynchronous loads/stores and hides latencies.
- Work Overlapping: Provides a
Load-Store-Compute-Finishtemplate to overlap I/O with computation. - Multi-GPU Support: Enables data transfer over NVLink and NVSwitch acceleration.
Note on Hardware Support:
- Primary Support: Hopper and Blackwell GPUs.
- Legacy Support: Ampere GPUs are supported but no longer actively maintained.
- AMD Support: Use HipKittens instead.