This technical talk summarizes recent improvements to MLIR’s floating-point type infrastructure, focusing on how to represent and lower the rapidly growing zoo of low-precision and block-scaled formats used in modern ML workloads.
It introduces the "FloatTypeInterface", explains the interaction with LLVM’s "APFloat" and "fltSemantics", and shows step-by-step how to add new floating-point types, from extending "APFloat" to defining lowering rules and dialect design for "special" FP types across high-level and low-level dialects.
The talk also covers the new "arith-to-apfloat" infrastructure for software emulation of low-precision FP arithmetics on CPUs, discusses current limitations of adding FP types without patching LLVM, and outlines future directions for more extensible, vendor-friendly floating-point type systems in MLIR.