HazyResearch/HipKittens
Fast and Furious AMD Kernels
What it solves
HipKittens provides a set of low-level C++ programming primitives designed to help developers write high-performance AI kernels specifically for AMD GPUs. It addresses the challenge of creating a multi-silicon future where AI software can be efficiently ported across different hardware platforms by optimizing for the specific architectural nuances of AMD's CDNA3 and CDNA4 chiplet architectures.
How it works
The library is built from the hardware up, focusing on how the silicon actually operates. It implements several key primitives:
- Tile Primitives: Memory operations sized for tensor core units that are bank-conflict free and coalesced to minimize address computation costs.
- Python-inspired Functions: Lightweight bulk compute functions that wrap assembly and HIP.
- Asynchronous Loads/Stores: Direct buffer loads to shared memory used to hide latency and address generation.
- ** uma Scheduling and Overlapping**: Specific patterns (such as 8-wave ping pong and 4-wave interleave) to overlap compute and memory operations.
Who it’s for
It is intended for developers and researchers building high-performance AI kernels (such as GEMM, Attention, and Layernorm) who are targeting AMD hardware (MI300X, MI325X, MI350X, MI355X).
Highlights
- Hardware-Centric Design: Specifically optimized for CDNA3 and CDNA4 architectures.
- Broad Kernel Support: Includes implementations for BF16 GEMM, various Attention forwards/backwards (MHA, GQA, Causal), Rotary, and fused Layernorm.
- AITER Integration: Officially serves as a backend for AITER.
- Performance Benchmarking: Includes scripts to compare performance against baselines like Triton, CK, HipBLASLT, and Mojo.
Related
- Project
- Project
- Project
- Project
- Project