LLVM Clang Begins Picking Up AMX-FP16 Support For Granite Rapids
On Friday night the initial support for Intel's AMX-FP16 instruction was merged to LLVM. AMX-FP16 was confirmed with Intel's latest programming reference manual update. The PRM update confirms as well that AMX-FP16 is being introduced with Granite Rapids server processors. Granite Rapids is the successor to Emerald Rapids, which in turn is the successor to the forthcoming Sapphire Rapids CPUs.
Sapphire Rapids introduces the Advanced Matrix Extensions (AMX) which are looking very promising but will be able to deliver independent benchmarks once having our hands on these Xeon Scalable processors and also as software support around AMX matures. With Sapphire Rapids not even ramped up yet, looking into the future with Granite Rapids there is AMX-FP16. AMX-FP16 allows for natively supporting matrix multiply on FP16 elements.
This commit to LLVM adds the initial AMX-FP16 instructions support for this open-source compiler. This is just one element of the eventual Granite Rapids support for LLVM/Clang and doesn't yet add any "-march=graniterapids" target or similar. Intel's most recent reference manual update has also confirmed PREFETCHIT0/1 as new instruction support coming to Granite Rapids.
Meanwhile on the Linux kernel side this week, Intel engineers began posting KVM patches for exposing new CPUID bits with future Granite Rapids and Sierra Forest processors.
Granite Rapids has been talked about for launching in 2024, though given the delays with Sapphire Rapids, I wouldn't at all be surprised to see this server processor to ship in 2025 especially as we still need to get through Emerald Rapids. In any event, even if Granite Rapids ships in 2024 it's good to see Intel open-source engineers already beginning work on the compiler/toolchain and Linux kernel support along with their work on Sierra Forest and other upcoming Intel products. It's great to see their continued, very timely Linux support well ahead of product launches.