This repository provides a step-by-step guide to enable and benchmark the Ryzen AI Max+ 395 (Strix Halo) NPU, achieving up to 31.2 TFLOPS AI compute with open-source tools and a control-plane MVP.

Stars

8

7-day growth

No data

Forks

1

Open issues

0

License

Apache-2.0

Last updated

2026-06-28

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It documents the first publicly available method to unlock the full 31 TFLOPS AI compute of the Strix Halo NPU using a mix of open-source (IRON, Peano) and proprietary (Chess, FastFlowLM) components, with verified benchmark results.

Who it is for

  • AMD Ryzen AI developers and researchers
  • AI/ML engineers working with NPU acceleration
  • System integrators building AI inference servers on AMD hardware
  • Enthusiasts exploring cutting-edge consumer AI hardware

Use cases

  • Running LLM inference (Gemma 4 2B, Llama 3.1 8B) on NPU at 15-25 tok/s
  • Benchmarking NPU GEMM performance (30.9 TFLOPS sustained)
  • Developing custom NPU kernels using IRON and Peano
  • Orchestrating NPU experiments with the provided control-plane MVP

Strengths

  • Clear, reproducible steps with tested commands and expected outputs
  • Includes actual benchmark results (31.2 TFLOPS, LLM token rates)
  • Offers both open-source (Apache 2.0) and proprietary toolchain paths
  • Provides a lightweight control-plane MVP for experiment management

Considerations

  • Full 31 TFLOPS capability requires a proprietary Chess compiler license from AMD
  • Proprietary components (Chess, FastFlowLM) have redistribution restrictions
  • Setup is platform-specific (Strix Halo on Ubuntu 26.04) and may not apply to other hardware

README quick start

Strix Halo NPU Setup

Step-by-step guide to unlock the NPU on AMD Ryzen AI Max+ 395 (Strix Halo) — from zero to 31 TFLOPS AI compute.

System

ComponentSpec
CPUAMD RYZEN AI MAX+ 395 (16 Zen5 cores)
GPURadeon 8060S (40 RDNA 3.5 CUs)
NPURyzenAI-npu5 (32 AIE2P tiles)
RAM128 GB LPDDR5x (unified — CPU/GPU/NPU share)
OSUbuntu 26.04 LTS
Kernel7.0.0+ (in-tree amdxdna driver)

Results

BenchmarkResult
32-core BFP16 GEMM peak31.2 TFLOPS
32-core BFP16 GEMM sustained30.9 TFLOPS
Gemma 4 2B (FastFlowLM)25 tok/s
Llama 3.1 8B (FastFlowLM)15 tok/s

Step 1 — Verify NPU

# NPU should show as RyzenAI-npu5
sudo xrt-smi examine

Expected output:

[0000:c6:00.1]  |RyzenAI-npu5  |

If not present, check the driver is loaded:

lsmod | grep amdxdna
sudo modprobe amdxdna

Step 2 — Install XRT + Python bindings

sudo add-apt-repository ppa:amd-team/xrt
sudo apt update
sudo apt install libxrt2 libxrt-npu2 libxrt-dev libxrt-utils \
                 libxrt-utils-npu python3-xrt
sudo usermod -aG render $USER
# log out and back in, or: newgrp render

Step 3 — Set up IRON (Python NPU kernels, Apache 2.0)

git clone https://github.com/Xilinx/mlir-aie.git
cd mlir-aie
python3 -m venv .venv
source .venv/bin/activate
pip install numpy ml_dtypes

# Install prebuilt wheel
pip install https://github.com/Xilinx/mlir-aie/releases/download/v1.3.2/mlir_aie-1.3.2-cp314-cp314-manylinux_2_35_x86_64.whl

Apply patches (v1.3.2 wheel is missing some exports)

cd .venv/lib/python3.14/site-packages/mlir_aie/python/aie/iron

# Add In/Out/CompileTime markers
cat >> __init__.py  /tmp/pt.cc 
extern "C" void pt(int32_t* a, int32_t* c, int32_t n) {
    for (int i = 0; i  /tmp/example-kernel.elf
npu-ctrl kernels register \
  --name vec_add \
  --artifact /tmp/example-kernel.elf \
  --dtype i32 \
  --shape N=64 \
  --toolchain peano
npu-ctrl kernels list

Record a repeatable command benchmark

npu-ctrl bench run --label python-version --warmup 0 --iters 1 -- python3 --version
npu-ctrl bench list

The MVP stores JSON records for devices, toolchains, kernel artifacts, and benchmark runs. Later phases will add AIE kernel builders, profile collection, and compiler experiment integration.

Description

Step-by-step guide to set up Strix Halo NPU (Ryzen AI Max+ 395) with IRON, Peano, Chess, FastFlowLM — 31 TFLOPS

Related repositories

Similar projects matched by category, topics, and programming language.

lopopolo
Featured
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI & Machine LearningAI Agents
2,390
slvDev
Featured
slvDev GitHub avatar

esp32-ai

A 28.9 million parameter language model runs on an $8 ESP32-S3 microcontroller entirely on-device, generating simple stories at about 9.5 tokens per second.

AI & Machine LearningLarge Language Models
1,960
littledivy
Featured
littledivy GitHub avatar

mimic

mimic captures traffic from any iOS or web app and automatically generates a Python client library that lets you call the app's API like a regular library.

AI & Machine Learning
1,482