主流 CPU 对 FP16 / BF16 的支持

Intel:

AMD:

ARM:

RISCV:

厂商的实现大致沿四条路线演进

  1. 把 16-bit 当压缩格式并转换为 FP32
  2. 以 16-bit 为乘法输入、FP32 为累加器做 dot product
  3. 提供完整的 FP16 标量/向量算术
  4. 在 CPU core 内加入 tile/outer-product 矩阵状态和执行引擎。

应用取舍

  • BF16 保留 FP32 的 8-bit exponent,训练、微调、LLM、推荐系统通常比 FP16 更易保持动态范围
  • FP16 有更多 significand bits,适合推理、DSP、图像/视频、FFT 和部分 mixed-precision HPC

“支持层级”定义

层级 判定标准
L0:存储/搬运 ABI、内存或寄存器可容纳 16-bit 数据
L1:硬件转换 FP16/BF16 与 FP32 间有指令转换
L2:向量 dot / 扩宽乘加 16-bit 输入,通常累加到 FP32
L3:完整标量/向量算术 有原生 add/sub/mul/FMA,并常含 div/sqrt/compare
L4:tile / matrix CPU ISA 暴露 tile/ZA 状态及矩阵乘加/outer product

Intel

Core/ISA

  • Ivy Bridge 的 F16C 只有 VCVTPH2PS/VCVTPS2PH packed conversion
  • Cooper Lake 的 AVX512_BF16 增加 VDPBF16PS
    • 每个 FP32 destination lane 汇总两对 BF16 乘积,并保留 FP32 accumulator;
    • 有 FP32→BF16 窄化指令,但没有 BF16 add/div/sqrt
  • Sapphire Rapids 的 AVX512_FP16 是完整度较高的 IEEE binary16 ISA: 包括 scalar/packed add、mul、FMA、div、sqrt、compare、conversion 以及 complex multiply/FMA
  • AMX-BF16 则以 BF16 tile 为源、FP32 tile 为累加器
  • Granite Rapids 系 Xeon 6 P-core 通过 TDPFP16PS 增加 FP16 tile 输入与 FP32 累加
  • Xeon 600 workstation 亦明确加入 AMX FP16 datatype

AMX 有 8 个二维 TMM,每个最大 16 rows × 64 bytes(1 KiB),总架构 tile state 8 KiB;TMUL 是矩阵乘加引擎。host core 负责循环、地址、packing 和 tile load/store,TMUL 执行多周期矩阵运算
Intel AMX overview

反例:

  • Sierra Forest/Clearwater Forest E-core 没有 AVX-512/AMX,只提供 AVX2/VNNI 和 BF16/FP16 fast convert
  • Arrow Lake、Lunar Lake、Panther Lake CPU 的 AVX_NE_CONVERT 也只属于 L1
  • Xeon 6 6300 是 Raptor Lake-E Refresh,即使带 P-core 后缀也只有 AVX2

官方吞吐数据

  • Sapphire Rapids AMX-BF16、Granite Rapids AMX-BF16/FP16 的峰值均为 1,024 operations/cycle/core
  • Sapphire Rapids VADDPH latency 4 cycles、reciprocal throughput 0.5 CPI,即理想条件下最多 2 条/cycle;除法、平方根和转换不可套用这一数字

软件生态与应用场景

  1. AI
    • oneDNN JIT、oneMKL、Intel Extension for PyTorch、TensorFlow、OpenVINO、oneCCL 和 Neural Compressor 形成完整 BF16/AMX 软件栈
    • 常见 dispatch 为 AMX-BF16 → AVX512_BF16 → FP32 fallback
    • 主要场景是 training/inference、LLM、推荐、图像/语音、dense GEMM/Conv
  2. DSP/HPC
    • AVX512_FP16 的完整算术和 complex 指令让它也适用于 FFT、DSP、5G baseband、媒体与 mixed-precision HPC;AMX-FP16 则可直接承接已有 FP16 model 的 GEMM/Conv,不必整体改为 BF16。F16C/AVX_NE_CONVERT 更适合 compressed weights、通信和内存格式,不应宣传为 16-bit 原生计算。

Intel AI tuning guide

AMD

Core/ISA

  • Zen 1–3 的 F16C 只有 FP16↔FP32 转换
  • Zen 4/4c 首次加入 AVX512_BF16 的 VCVTNE*VDPBF16PS,但仍无 AVX512_FP16
  • Zen 5/5c 延续 BF16,EPYC/desktop 的后端升级为 full-width 512-bit vector/FP path、六条 FP pipes

Zen CPU 没有对软件公开的 AMX/SME 式 tile state 或 matrix ISA;BF16 GEMM 由库对 VDPBF16PS 做 packing、blocking 和 FP32 accumulation

吞吐量

  • AMD 的 Zen 5 latency spreadsheet 给出 ZMM VDPBF16PS 为 1 macro-op、FP0/FP1、latency 6 cycles、throughput 2 instructions/cycle;VCVTNEPS2BF16 的 XMM 形式为 2/cycle,而 YMM/ZMM 是 2 macro-ops、约 1.5/cycle

软件生态与应用场景

  • AOCL-DLP 有 BF16 GEMM 和 Zen dynamic dispatch, Zen 1–3 fallback 会把 BF16 转为 FP32、调用 AVX2 FP32 kernel,再压回 BF16
  • ZenDNN、Zentorch、ZenTF 和 PACE 覆盖 PyTorch/TensorFlow/vLLM 的 GEMM、Conv、RMSNorm、attention/MLP、BERT、ResNet 与 LLM inference。

AMD 当前 CPU 上 BF16 是 AI inference、mixed-precision training/fine-tuning 和部分 HPC 的计算格式;FP16 主要仍是模型、图像、视频、checkpoint 和通信的压缩格式。

ARM

Core/ISA

  • Armv8.2-A FEAT_FP16 提供完整 scalar/Advanced SIMD FP16 arithmetic
  • Armv8.4-A FEAT_FHM 增加 FP16 乘、FP32 widening accumulation
  • Armv8.6-A FEAT_BF16BFCVT/BFCVTN 是转换,BFDOT/BFMMLA/BFMLAL 是 BF16 输入、FP32 归约/累加;真正的 BF16 destination 非扩宽算术还需后续可选 FEAT_B16B16

Cortex-X925:X925 有高吞吐 SVE BF16 matrix/dot,但 TRM 明确无 SME,不能把 BFMMLA 写成 SME

Neoverse 系列:

公开组织 FP16/BF16 指令 官方 latency / throughput
N1 2×128-bit ASIMD/FP FP16 FMLA;无 BF16 dot FP16 FMLA latency 4、2/cycle
V1 2×256-bit SVE FP16;BFDOT/BFMMLA BFDOT 4(acc 2)、2/cycle;BFMMLA 5(acc 3)、2/cycle
N2 128-bit SVE2/ASIMD FP16;BF16 dot/matrix BFMMLA 5(acc 3)、2/cycle。
V2 4×128-bit SVE2 组织 FP16;BF16 dot/matrix BFDOT 5(acc 3)、4/cycle;BFMMLA 6(acc 4)、4/cycle
N3 新一代 Neoverse FP16;BFDOT/BFMMLA/BFMLAL BFDOT 4(acc 2)、2/cycle;BFMMLA 5(acc 3)、2/cycle
V3 新一代 Neoverse FP16;ASIMD/SVE BF16 dot/matrix BFDOT 5(acc 3)、4/cycle;BFMMLA 6(acc 4)、4/cycle

AWS Graviton

  • Graviton2/N1 有 FP16、无 Armv8.6 BF16 dot
  • Graviton3/V1、Graviton4/V2 有 BF16 dot/matrix
  • Graviton5 的 M9g/M9gd 与 C9g/C9gd 已于 2026-06 GA,AWS 明确称其由 Neoverse V3 驱动,因此可使用 V3 的 FP16/BF16 ISA

Grace / Axion:NVIDIA Grace 与 Google Axion 基于 V2,可确认 FP16/BF16 IS

Ampere:Altra/N1 无 BF16 dot;AmpereOne/One M 产品 brief 明确 2×128-bit vector units 原生支持 FP16、BF16,但未公开 BFDOT/BFMMLA port/latency 或 tile engine

Apple M4

  • LLVM target 明确 full FP16、BF16、SME2 等 feature
  • LLDB 也有 SME2 enablement
  • 公开实测论文显示 M4 为 512-bit streaming vector length,并可用 ZA/FMOPA 生成矩阵 kernel,但 Apple 未公开 BF16/SME 峰值和物理阵列

Qualcomm

  • Qualcomm 工程材料称 QMX 集成在最新 CPU、兼容 Arm SME、采用 tile execution,支持 BF16,并在已发布 Snapdragon 8 Elite Gen 5 上用 Llama Q4/Q8 对比 QMX 与 NEON,主要改善 compute-bound prefill

Oryon generations QMX CPU benchmark

软件生态与场景

Arm Compute Library、Kleidi、oneDNN、PyTorch/ExecuTorch、TensorFlow/XLA、ONNX Runtime、Apple Accelerate 及厂商库按 HWCAP/ID register dispatch NEON/SVE/SME kernel。

  • Neoverse BF16 面向云端 inference、training/fine-tuning、HPC mixed precision;FP16 在媒体、DSP、图像和端侧 inference 更普遍;
  • SME/QMX 重点覆盖 GEMM、Conv 与 attention

RISC-V

Core/ISA

RISC-V 对 FP16 的支持分成最小转换与完整算术两级

  • Zfhmin 只提供 FP16 load/store、move、classify 以及 FP16 与更高精度格式之间的转换
  • Zfh 才加入标量 add、mul、FMA、div、sqrt 等完整算术
  • 向量侧的 Zvfhmin 同样只负责 FP16 与 FP32 的 widening/narrowing conversion
  • 只有 Zvfh 才允许 RVV 在 SEW=16 下执行完整 FP16 vector arithmetic

BF16 的标准扩展更偏向 AI 数据通路,并不构成完整 BF16 add/mul/div/sqrt ISA:

  • Zfbfmin 负责 BF16 与 FP32 的标量转换
  • Zvfbfmin 负责向量转换
  • Zvfbfwmavfwmaccbf16 以 BF16 相乘并累加到 FP32

RVA23U64 的 mandatory 集合只包含 F/D/V/Zfhmin/Zvfhmin,完整 Zfh/Zvfh 和三个 BF16 扩展都是 expansion option

矩阵扩展目前也没有统一的量产标准

  • VME 以 vector outer product 更新专用 matrix accumulator
  • IME 方向复用 vector registers
  • AME 则使用独立的 source/accumulator tile state

但各大厂商都有自己自定义的矩阵扩展:

  • SpacemiT IME
  • 玄铁 MME/AME
  • Andes AMM
  • SiFive XM
  • Ventana matrix

SpacemiT

K1/X60:

  • 8-stage、dual-issue in-order core,VLEN 为 256
  • 支持 Zfh/Zvfh,具备完整 FP16 vector arithmetic
  • XsmtVdot/IME 只做 INT8 点积,不支持 FP16/BF16 matrix

K3:

  • X100, A100 均支持 Zfh/Zvfh/Zfbfmin/Zvfbfmin/Zvfbfwma, A100 的 VLEN 为 1024
  • FP16/FP32 由两组 256-bit execution resources 执行,两颗 vector core 共享 1024-bit IME 2.0,以 FP16/BF16 8×8 输入和 FP32 8×8 accumulator 完成矩阵乘加
  • 官方给出的 dense FP16/BF16 7.5 TOPS
  • A100 定位为 AI-CPU 或 tightly coupled coprocessor,但它本身是可运行 Linux 的 hart,处于 X100 的 SMP/一致性域并使用 CPU 指令流,所以属于 CPU 紧耦合 matrix

Xuantie

  • C906 已在量产 SoC 中使用,具有半精度标量/向量能力,但旧版 Vector ISA 不是最终标准 Zvfh,BF16 也没有说明

  • C908 使用 9-stage、dual-issue in-order core,VLEN 可选 128/256,资料确认支持 RVV 1.0 FP16 与 BFP16 vector hardware,但没有给出它与标准 BF16 扩展的区别

  • C910/TH1520 采用 12-stage OoO core 和 128-bit RVV 0.7.1 vector,支持 FP16/BF16 vector datatype,但没有公开具体 BF16 运算支持、累加语义和指令吞吐

  • C907 声称支持 FP16/BF16 两倍宽乘加并累加到 FP32;与之配套的 MME 使用独立二维 matrix registers,AME/TPE 还可作为私有或跨核共享单元并配置 Tensor Cache

  • C930 支持 512-bit RVV 1.0 与 8 TOPS Matrix,但 FP16/BF16 datatype 和配置仍未知

SiFive

  • P670 和 P870-D 面向通用高性能 CPU,前者基于 RVA22、只确认 Zfhmin,后者基于 RVA23、只确认 Zfhmin/Zvfhmin
  • P570 Gen 3 明确说明支持 FP16/BF16 datatype 与专用 dot,但没有公开 opcode、输入/累加精度或完整 BF16 支持程度
  • X160/X180 Gen 2 采用 128-bit VLEN、64-bit DLEN,确认支持 BF16 datatype,但没有说明 FP16 和累加语义
  • X280 与 X390 Gen 2 明确支持 FP16/BF16/FP32/FP64,前者的 VLEN/DLEN 为 512/256、使用单 VPU,后者为 1024/512、使用双 VPU
  • XM Gen 2 进一步将四颗 X300 与 shared fat-outer-product matrix engine 紧耦合,以 vector registers 提供源操作数、matrix accumulators 保存结果,公开 BF16 峰值为 8 TFLOPS/GHz/cluster;

Ventana

Ventana Veyron V2 是 15-wide OoO、512-bit RVV 1.0 的可授权 IP

  • 支持 RVA23 , 可以确认其有 minimal FP16,资料还列出 BF16 vector datatype,但没有公开其 ISA
  • 集成 matrix 单元,公开的 0.5 TOPS/GHz/core 峰值对应 INT8,另有 FP8 方向,未说明支持 BF16 matrix

Andes

Andes AX45MPV 是 8-stage、dual-issue、VLEN/DLEN 最高 1024 的 RVV 1.0 core

  • 支持 FP16/BF16 datatype,其中 BF16 属 Andes extension
  • 基于 RVA22,提供完整 scalar/vector BF16 arithmetic 和 vendor AMM
  • 可选第二 MAC、双 RVV load/store,VLEN/DLEN 范围为 128–2048

Nuclei

Nuclei UX900 该核为 9-stage、dual-issue,VLEN 可配置为 128–512

  • 标准 Zfh/Zvfh 提供 FP16
  • 自定义扩展 Xxlfbf/Xxlvfbf 覆盖 BF16 add、mul、div、FMA、sqrt 等运算;fp16mode 复用 opcode 和 datapath 来切换 BF16 语义

Tenstorrent

Ascalon-X 是已发布的可授权 CPU IP, 其公开目标是 8-wide OoO、256-bit vector datapath 和 2.5 GHz 以上

  • LLVM target 明确包含 Zfh/Zvfh/Zfbfmin/Zvfbfmin/Zvfbfwma,对应完整 FP16 和 BF16 conversion/widening MAC

Ascalon-S 虽已发布,但没有单列 FP16/BF16 和 vector width

软件生态与应用场景

  • 标准扩展已经进入 GCC 和 LLVM,zfh/zfhmin/zvfh/zvfhmin/zfbfmin/zvfbfmin/zvfbfwma

  • Nuclei BF16、Andes AMM、SpacemiT IME、玄铁 MME/AME、Ventana matrix 和 SiFive XM 则依赖 vendor intrinsic、专用 library 或 MLIR/IREE/graph compiler;更大的 accumulator state 和专用供数路径可以提高矩阵吞吐

  • K1、C908 和 UX900 主要面向视觉、DSP、语音与边缘推理

  • K3 和 C907-MME 更强调端侧 LLM、AI PC、机器人及 Transformer GEMM

  • SG2042/SG2044、C930、Ventana 和 Rivos 则更看重服务器多核、Linux 与数值库生态, 让 CPU 承担 host/control,把 tensor 主计算放在 GPU、NPU、Tensix、TPU 或独立 Matrix Engine

专利分析

核心 CPU 低精度 / vector / tile / SME 专利族

年份 Assignee 专利族与代表号 相关性与边界
2018 Intel Systems and methods for performing 16-bit floating-point vector dot product instructions, US20190079767A1 / US11366663B2 直接公开 VDPBF16PS、BF16 pair dot 与 FP32 destination,是 AVX512_BF16 类语义的强相关族。family
2018 Intel Systems and methods for performing instructions to convert to 16-bit floating-point format, US20190079762A1 / US11372643B2 直接公开 VCVTNEPS2BF16/VCVTNE2PS2BF16 类 FP32→BF16 packed conversion;属于 BF16 数据准备路径,同族 continuation 只计一次。family
2018 Intel Systems and methods for performing 16-bit floating-point matrix dot product instructions, US20190079768A1 / US10963246B2 16-bit source matrix、FP32 destination,格式可为 BF16 或 binary16;同族 continuation 不重复计数。family
2020 Intel Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions, US20220100502A1 / US11941395B2 / WO2022066356A1 直接公开 TILEDPFP16PS、FP16 tile input 与 FP32 accumulation,是 AMX-FP16 技术方向的最强相关族之一。family
2020 Intel Apparatuses, methods, and systems for instructions to convert 16-bit floating-point formats, EP3974967A1 / US20220100507A1 / US12277419B2 packed FP16↔BF16 conversion;说明格式数据准备路径,不证明已发布产品一定暴露该指令。family
2021 Intel BFLOAT16 fused multiply instructions, US20230067810A1 / US12229554B2 BF16×BF16+BF16 并最终舍入到 BF16,区别于现有 FP32 accumulator;应视为未来 ISA 方向。family
2021 AMD Method and apparatus of dynamically controlling approximation of floating-point arithmetic operations, US20230098421A1 将 FP32 分解为多个 BF16 项,按精度动态选择 1/3/7 个部分积;覆盖 CPU/FPU,但不能映射 Zen。family
2022 AMD Systems and methods for interpolating register-based lookup tables, US20240095180A1 / WO2023240051A1 AVX-512 ZMM 内保存 BF16 LUT 并插值,面向 GELU/超越函数;是 CPU vector/BF16 强邻接,并非公开 Zen ISA。family
2023 AMD Floating-point conversion circuit, US20250130767A1 依 source/destination format 选择 conversion micro-op,覆盖 FP16 widening/narrowing 与 mixed-precision workflow;CPU/GPU 均可实施。family
2023 Microsoft In-core implementation of advanced RISC machine (Arm) SME instruction set, US20250117220A1 / WO2025075801A1 outer-product engine 和 ZA 放入 CPU core;vector RF 分 bank、1024-bit source 可按 256-bit temporal slices 供数,是核内 SME 强相关族。family
2024 Qualcomm Enabling high-performance SME instruction issue in processor devices, WO2026064057A1 / US12450070B1 / US20260079702A1 reservation station 以两阶段 ZA hazard tracking 降低全宽比较成本;是 SME issue 微架构强相关族,但不证明某款 Oryon 实施。family
2020 Alibaba Group Holding Ltd 《处理单元、片上系统、计算装置及方法》, CN113885943A / CN113885943B 覆盖 vector-parameter-setting 预测、后续 vector op 的投机执行和错误回退;是 RVV vsetvl/vtype 前端邻接,datatype generic,不能映射某个玄铁核。family
2022 SpacemiT 《一种处理器寄存器堆之间的零拷贝数据传输装置及方法》, CN115248701A / CN115248701B 覆盖 RISC-V CPU vector/tile register banks 的重映射与 crossbar,实现 vector↔tile 零拷贝;是核内 vector/matrix 数据通路强相关族,但 claims 未限定 FP16/BF16,也不证明 K1/K3 采用。family
2023 SpacemiT 《基于 RISC-V 向量处理器架构的滑动窗口 2D 卷积计算方法》, CN117313803A / CN117313803B RVV sliding-window 与 vmadot 类 matrix/conv 组合;dependent claim 是 INT8→INT32,应降格为整数 vector-matrix 邻接,不能作为 FP16/BF16 证据。family
2024 SiFive Matrix multiply engine, US20260056736A1 / US20260056737A1 同一 continuation family;覆盖 vector processor 接口、shared matrix engine、operand buffers、cell/tile-state 与 dot/accumulator。datatype generic,不映射 XM。family
2024 Tenstorrent Vector mask buffers in a vector instruction execution pipeline, US20250306927A1 / US12572357B2 / WO2025207901A1 main VRF、lane-local mask buffer、ports/crossbar 的 CPU vector pipeline 族;说明书有 RISC-V/SEW/LMUL/OoO 语境,claims 不限 datatype。family
2024 Tenstorrent Efficient compression instruction handling in a processing pipeline, US20250322948A1 以 parallel prefix sum/search 与 payload selection 实现 RISC-V vcompress;属于 sparse/filter RVV pipeline 邻接,不是 FP16/BF16 或 matrix MAC 专利。family