Striking the Balance: GEMM Performance Optimization Across Generations of Ryzen AI NPUs
Endri Taka, Andre Roesti, Joseph Melber, Pranathi Vasireddy, Kristof Denolf, Diana Marculescu
TL;DR
This work presents a unified methodology to optimize GEMM workloads on AMD Ryzen AI NPUs across two generations, XDNA and XDNA2, by coupling analytical modeling with hardware profiling to identify the optimal compute-memory balanced point. It introduces a multi-level tiling GEMM design that preserves regular DRAM layouts and leverages on-the-fly data transformations and explicit data movement to maximize throughput. End-to-end evaluations on two mini PCs demonstrate state-of-the-art performance, with up to 38.05 TOPS int8 on XDNA2 and 14.71 TOPS bf16 on XDNA2, and 6.76 TOPS int8 on XDNA. The study highlights the critical role of data movement, buffering strategies, and kernel balance in achieving high performance, and offers a generalizable framework for future NPU generations and GEMM-related workloads.
Abstract
The high computational and memory demands of modern deep learning (DL) workloads have led to the development of specialized hardware devices from cloud to edge, such as AMD's Ryzen AI XDNA NPUs. Optimizing general matrix multiplication (GEMM) algorithms for these architectures is critical for improving DL workload performance. To this end, this paper presents a common systematic methodology to optimize GEMM workloads across the two current NPU generations, namely XDNA and XDNA2. Our implementations exploit the unique architectural features of AMD's NPUs and address key performance bottlenecks at the system level. End-to-end performance evaluation across various GEMM sizes demonstrates state-of-the-art throughput of up to 6.76 TOPS (XDNA) and 38.05 TOPS (XDNA2) for 8-bit integer (int8) precision. Similarly, for brain floating-point (bf16) precision, our GEMM implementations attain up to 3.14 TOPS (XDNA) and 14.71 TOPS (XDNA2). This work provides significant insights into key performance aspects of optimizing GEMM workloads on Ryzen AI NPUs.
