ZenDNN 6.0:在 AMD EPYC(霄龙)CPU 上实现高效 FP16 推理和 MoE 加速
Jul 11, 2026
简介
ZenDNN 5.2.1 将量化技术从实验阶段推进到生产级部署,支持非对称 WOQ、INT8 动态量化以及标准化精度验证流程。该版本证明了 AMD EPYC(霄龙)CPU 完全有能力大规模实现高效的量化大语言模型推理。ZenDNN 6.0 迈入新阶段:为即将推出的第六代 AMD EPYC(霄龙)服务器处理器提供 FP16 功能支持、针对混合专家 (MoE) 模型进行专项优化,并充分扩大 ZenDNN 的 vLLM 兼容范围。
ZenDNN 6.0 版本率先针对即将问世的第六代 EPYC(霄龙)处理器引入 FP16 功能支持。现在,所有核心算子(MatMul、BatchMatMul、Embedding)均配备专属的 FP16 代码路径,为半精度推理工作负载奠定了坚实基础。再加上 zentorch 中的融合 MoE 算子、经过优化的注意力内核,以及与 vLLM v0.23.0 的全面对齐,ZenDNN 6.0 可充分适配现代大语言模型推理服务技术栈。
重要意义:从当前一代到下一代
ZenDNN 5.2 引入了重新设计的 ZenDNN 运行时,包含低开销 API 并集成了 vLLM V1。ZenDNN 5.2.1 推动量化技术实现生产落地。ZenDNN 6.0 在此基础上双管齐下:一方面扩展模型支持范围并提升当前第五代 AMD EPYC(霄龙)处理器的推理性能;另一方面为下一代硬件铺平道路。就当前而言,融合 MoE 算子、经过优化的注意力内核以及更丰富的量化选项,不仅可提升吞吐量,还能更好地支持 MoE 等新型模型架构。展望未来,FP16 功能支持让软件栈为适配即将到来的第六代 EPYC(霄龙)处理器及其硬件 FP16 功能做好准备。与此同时,vLLM 兼容范围扩展至 v0.23.0,可确保当前和未来部署都能适配快速发展的开源生态系统。
底层技术详解
ZenDNN 6.0 在 5.2 版本引入的模块化多后端架构基础之上进一步迭代,新增了 FP16 算子支持、MoE 专用算子融合、经过优化的注意力内核,并在 zentorch 插件与 ZenDNN 运行时中实现了更深层的量化集成。
核心亮点一览
- FP16 功能支持:在 ZenDNN 核心库和 zentorch 插件中,针对即将推出的第六代 EPYC(霄龙)处理器,为 MatMul(支持 DLP)、BatchMatMul 和 Embedding 算子引入了原生 FP16 数据路径。
- 混合专家 (MoE) 模型优化:支持 BF16 融合 MoE 算子,在 vLLM 流水线中支持量化 MoE(DA8W8、INT4 WOQ),并针对专家并行 (Expert Parallelism) 优化了分组矩阵乘法 (Group MatMul)。
- 更广泛的 vLLM 插件兼容性:实现从 vLLM 0.20.0 至 0.23.0 版本兼容,延续“零代码修改即可加速”的设计理念。
- 量化流水线增强:集成 LLM-Compressor,向上游 vLLM 分发量化线性算子,新增 TorchAO 配置预设,以及针对 MoE 架构提供 DA8W8 支持。
- zentorch 特性与优化:ZenDNN 核心库中实现了经过优化的注意力机制,支持 AOTI (CPP_Wrapper) 实现 Inductor 提前编译,同时针对 BF16 大语言模型进行吞吐量优化,包括降低矩阵乘法开销和改进运行时 API。
- 现代化框架及软件栈:PyTorch 2.12.0、TensorFlow 2.21.0(向后兼容 TF 2.16–2.21)、Python 3.10–3.13,以及 vLLM 0.20.0–0.23.0。
性能
在 ZenDNN 5.2.1 及之前版本中,性能评估采用离线基准测试,即处理固定批次的提示词,且不模拟并发用户。而在 ZenDNN 6.0 中,我们转向了在线推理服务基准测试,在此类测试中,请求会以不同的速率持续到达,从而反映真实的部署环境。
此外,我们还采用多实例推理服务作为在 AMD EPYC(霄龙)CPU 上进行大语言模型推理的主要基准测试模式。我们不再让单个 vLLM 进程占满整个处理器插槽,而是运行 N 个较小的 vLLM 实例,并将每个实例绑定到独立的 CPU 核心区块上。这种做法可确保每个实例的工作集都保持在本地 NUMA 节点内,避免实例间相互干扰,并使整体吞吐量的扩展能力更贴近可用核心数上限。测试负载由 GuideLLM 生成,它会在设定的并发级别下,向 NGINX 负载均衡器发送聊天工作负载请求,再由 NGINX 将流量轮询分发到各个实例。每次运行测试时,都会捕获标准推理服务指标(中位数和 p95 值):请求延迟、输出第一个 token 所需的时间 (TTFT)、token 间延迟 (ITL)、每个输出 token 耗时 (TPOT) 以及输出吞吐量(token 数/秒)。为了保证冷启动条件的一致性,每轮测试之间都会清除页面缓存;同时,负载生成器也会绑定到特定的 NUMA 节点,以确保客户端不会与正在测试的实例争抢资源。
单路分析
双路分析
精度
vLLM-zentorch 量化技术能够将模型精度维持在与 BF16 基准非常接近的范围内。量化模型采用 LM Evaluation Harness 进行验证,使用 5-shot 少样本提示在 GSM8K、ChartQA 等标准基准测试集上完成测试。
序列号 |
模型名称 |
任务 (num_fewshots=5) |
BF16 |
DA8W8 |
DA8W8 与 BF16 差值 |
| 1 | Llama-3.1-8B-Instruct | GSM8K |
0.8438 |
0.8415 |
-0.27% |
2 |
Phi-4-mini-instruct |
GSM8K |
0.8127 |
0.8143 |
0.20% |
3 |
Qwen2.5-VL-7B-Instruct |
ChartQA |
0.8600 |
0.8604 |
0.05% |
4 |
GPT-OSS-20B |
GSM8K |
0.8901 |
0.8757 |
-1.62% |
5 |
Mixtral-8x7B-Instruct |
GSM8K |
0.6588 |
0.6543 |
-0.68% |
注意:负数 (%) 表示精度相较于 BF16 基准有所下降;正数 (%) 则表示精度相较于 BF16 基准有所提升。若精度损失超过 5%,建议结合具体的部署场景进行评估。
结语
ZenDNN 6.0 面向 AMD 第五代及即将推出的第六代 EPYC(霄龙)处理器提供以下功能特性:
- 第五代 AMD EPYC(霄龙)处理器:通过融合 MoE 算子、经过优化的注意力内核以及扩展的量化选项,提升系统吞吐量,并支持更新的模型架构。
- 第六代 AMD EPYC(霄龙)处理器:提供 FP16 功能支持,为在即将推出的硬件上运行半精度推理奠定软件基础。
我们对生态系统的承诺:坚持“上游优先”理念。ZenDNN 6.0 中的量化线性调度逻辑已合入上游 vLLM(v0.22.1 及更高版本)。不断扩展的 vLLM 兼容性(现已扩展至 0.23.0 版本)确保 AMD EPYC(霄龙)CPU 用户可采用最新开源推理软件版本,同时不会失去 ZenDNN 加速能力。
以更少的资源运行更多任务:对 FP16 功能的支持为在即将推出的第六代 EPYC(霄龙)处理器上运行半精度推理奠定基础。结合 DA8W8 和 INT4 (WOQ) 量化技术,ZenDNN 6.0 提供了更广泛的精度选项,可在吞吐量、内存占用和精度之间实现平衡。对于使用 AMD EPYC(霄龙)基础设施的组织而言,ZenDNN 6.0 使其能够在现有硬件上运行更多 AI 工作负载
行动号召
请通过 pip install 命令或从 GitHub 下载最新版 AMD ZenDNN PyTorch 插件 (zentorch) 和 AMD ZenDNN TensorFlow 插件 (zentf),并在您的实际工作负载中体验最新的优化效果。
立即体验:
- PyPI:zentorch、zentf;GitHub:zentorch、zentf
- 文档资源:阅读完整的 ZenDNN 6.0 用户指南
期待了解您的实测结果。欢迎在我们的 GitHub 页面提交问题或发起讨论!
致谢
为本文作出贡献的 AMD 团队成员:Arjit Mukhopadhyay、Avinash Chandra Pandey、Naveen Thangudu 及团队其他成员。
资源
附注
附注
- ZD-063:AMD 性能实验室截至 2026 年 6 月 26 日基于 ZenDNN 6.0 软件库进行的性能测试,测试系统配置如下:
AMD 系统:双路 AMD EPYC(霄龙)9755 128 核处理器,使用单路,SMT 开启,24x96GB DDR5-6400(运行速度为 6000 MT/s),BIOS WVOT4807N,mitigations=off,单个 vLLM 实例绑定至 96 个核心,每路包含 2 个 NUMA 节点。软件:Python 3.12,PyTorch 2.12.0+cpu,vLLM 0.23.0+cpu,zentorch-2.12.0.2 (ZenDNN 6.0)。
工作负载:vLLM 在线推理服务,使用 GuideLLM 生成的负载;输入 512 个 token,输出 512 个 token,提示数 1000;SLA TTFT p95 ≤ 15 s,TPOT p95 ≤ 400 ms;指标为 output_tokens_per_sec(每秒输出 token 数,数值越高越好)。
下面的结果和配置信息采用如下格式:[处理器],[插槽],[SMT],[实例],[核心数/实例],[软件栈],[工作负载],[每秒输出 token 数]。
标准化结果(基准 = vLLM-Native-BF16 @ 1.000);每秒输出 token 数,数值越高越好:
模型 软件配置 每秒输出 token 数 标准化值
- Llama-3.1-8B-Instruct vLLM-Native-BF16 168.63 1.000
- Llama-3.1-8B-Instruct vLLM-zentorch-BF16 202.64 1.20
- Llama-3.1-8B-Instruct vLLM-zentorch-DA8W8 252.9 1.50
- Phi-4-mini-instruct vLLM-Native-BF16 332.46 1.000
- Phi-4-mini-instruct vLLM-zentorch-BF16 491.23 1.48
- Phi-4-mini-instruct vLLM-zentorch-DA8W8 629.54 1.89
- Qwen2.5-VL-7B-Instruct vLLM-Native-BF16 215.52 1.000
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-BF16 255.46 1.19
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-DA8W8 285.33 1.32
性能可能会因使用的驱动程序版本和其他因素而有所不同。
- ZD-064:AMD 性能实验室截至 2026 年 6 月 26 日基于 ZenDNN 6.0 软件库进行的性能测试,测试系统配置如下:
AMD 系统:双路 AMD EPYC(霄龙)9755 128 核处理器 (Turin),双路,SMT 开启,24x96GB DDR5-6400(运行速度为 6000 MT/s),BIOS WVOT4807N,mitigations=off,运行 7 个 vLLM 实例且每个实例绑定至独立的 32 核区块(NUMA 本地),采用 NGINX 轮询负载均衡;每路包含 2 个 NUMA 节点。软件:Python 3.12,PyTorch 2.12.0+cpu,vLLM 0.23.0+cpu,zentorch-2.12.0.2 (ZenDNN 6.0)。
工作负载:vLLM 在线推理服务,使用 GuideLLM 生成的负载;输入 512 个 token,输出 512 个 token,提示数 1000;SLA TTFT p95 ≤ 15 s,TPOT p95 ≤ 400 ms;指标为 output_tokens_per_sec(每秒输出 token 数,数值越高越好)。
下面的结果和配置信息采用如下格式:[处理器],[插槽],[SMT],[实例],[核心数/实例],[软件栈],[工作负载],[每秒输出 token 数]。
标准化结果(基准 = vLLM-Native-BF16 @ 1.000);每秒输出 token 数,数值越高越好:
模型 软件配置 每秒输出 token 数 标准化值
- Llama-3.1-8B-Instruct vLLM-Native-BF16 223.83 1.000
- Llama-3.1-8B-Instruct vLLM-zentorch-BF16 306.12 1.37
- Llama-3.1-8B-Instruct vLLM-zentorch-DA8W8 629.76 2.81
- Phi-4-mini-instruct vLLM-Native-BF16 634.63 1.000
- Phi-4-mini-instruct vLLM-zentorch-BF16 659.58 1.04
- Phi-4-mini-instruct vLLM-zentorch-DA8W8 1313.3 2.07
- Qwen2.5-VL-7B-Instruct vLLM-Native-BF16 351.26 1.000
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-BF16 447.8 1.27
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-DA8W8 675.11 1.92
性能可能会因使用的驱动程序版本和其他因素而有所不同
- ZD-065:AMD 性能实验室截至 2026 年 6 月 26 日基于 ZenDNN 6.0 软件库进行的性能测试,测试系统配置如下:
AMD 系统:双路 AMD EPYC(霄龙)9755 128 核处理器(“Turin”),SMT 开启,24x96GB DDR5-6400(运行速度为 6000 MT/s),BIOS WVOT4807N,mitigations=off;软件:Python 3.12,PyTorch 2.12.0+cpu,vLLM 0.23.0+cpu,zentorch-2.12.0.2 (ZenDNN 6.0)。精度验证采用 LM Evaluation Harness 工具,通过使用 5-shot 少样本提示在 GSM8K 和 ChartQA 数据集上进行测试,对比了 DA8W8 量化结果与 BF16 基准结果。
精度测试结果(LM Evaluation Harness,5-shot;数值越高越好;Delta = DA8W8 相对 BF16 基准的差值):
模型 任务 BF16 DA8W8 Delta
- Llama-3.1-8B-Instruct GSM8K 0.8438 0.8415 -0.27%
- Phi-4-mini-instruct GSM8K 0.8127 0.8143 +0.20%
- Qwen2.5-VL-7B-Instruct ChartQA 0.8600 0.8604 +0.05%
- GPT-OSS-20B GSM8K 0.8901 0.8757 -1.62%
- Mixtral-8x7B-Instruct GSM8K 0.6588 0.6543 -0.68%
性能可能会因使用的驱动程序版本和其他因素而有所不同
免责声明
本文档中的信息仅供参考,可能存在技术误差、遗漏和印刷错误。AMD 保留修订此等信息和随时更改本文档内容的权利,如有修订或更改,AMD 不承担任何通知义务。
AMD、AMD 箭头标识、霄龙、EPYC 及其组合是 AMD 公司的商标。本文中用到的其他产品名称仅用于标识目的,可能是其各自公司的商标。
附注
- ZD-063:AMD 性能实验室截至 2026 年 6 月 26 日基于 ZenDNN 6.0 软件库进行的性能测试,测试系统配置如下:
AMD 系统:双路 AMD EPYC(霄龙)9755 128 核处理器,使用单路,SMT 开启,24x96GB DDR5-6400(运行速度为 6000 MT/s),BIOS WVOT4807N,mitigations=off,单个 vLLM 实例绑定至 96 个核心,每路包含 2 个 NUMA 节点。软件:Python 3.12,PyTorch 2.12.0+cpu,vLLM 0.23.0+cpu,zentorch-2.12.0.2 (ZenDNN 6.0)。
工作负载:vLLM 在线推理服务,使用 GuideLLM 生成的负载;输入 512 个 token,输出 512 个 token,提示数 1000;SLA TTFT p95 ≤ 15 s,TPOT p95 ≤ 400 ms;指标为 output_tokens_per_sec(每秒输出 token 数,数值越高越好)。
下面的结果和配置信息采用如下格式:[处理器],[插槽],[SMT],[实例],[核心数/实例],[软件栈],[工作负载],[每秒输出 token 数]。
标准化结果(基准 = vLLM-Native-BF16 @ 1.000);每秒输出 token 数,数值越高越好:
模型 软件配置 每秒输出 token 数 标准化值- Llama-3.1-8B-Instruct vLLM-Native-BF16 168.63 1.000
- Llama-3.1-8B-Instruct vLLM-zentorch-BF16 202.64 1.20
- Llama-3.1-8B-Instruct vLLM-zentorch-DA8W8 252.9 1.50
- Phi-4-mini-instruct vLLM-Native-BF16 332.46 1.000
- Phi-4-mini-instruct vLLM-zentorch-BF16 491.23 1.48
- Phi-4-mini-instruct vLLM-zentorch-DA8W8 629.54 1.89
- Qwen2.5-VL-7B-Instruct vLLM-Native-BF16 215.52 1.000
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-BF16 255.46 1.19
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-DA8W8 285.33 1.32
性能可能会因使用的驱动程序版本和其他因素而有所不同。
- ZD-064:AMD 性能实验室截至 2026 年 6 月 26 日基于 ZenDNN 6.0 软件库进行的性能测试,测试系统配置如下:
AMD 系统:双路 AMD EPYC(霄龙)9755 128 核处理器 (Turin),双路,SMT 开启,24x96GB DDR5-6400(运行速度为 6000 MT/s),BIOS WVOT4807N,mitigations=off,运行 7 个 vLLM 实例且每个实例绑定至独立的 32 核区块(NUMA 本地),采用 NGINX 轮询负载均衡;每路包含 2 个 NUMA 节点。软件:Python 3.12,PyTorch 2.12.0+cpu,vLLM 0.23.0+cpu,zentorch-2.12.0.2 (ZenDNN 6.0)。
工作负载:vLLM 在线推理服务,使用 GuideLLM 生成的负载;输入 512 个 token,输出 512 个 token,提示数 1000;SLA TTFT p95 ≤ 15 s,TPOT p95 ≤ 400 ms;指标为 output_tokens_per_sec(每秒输出 token 数,数值越高越好)。
下面的结果和配置信息采用如下格式:[处理器],[插槽],[SMT],[实例],[核心数/实例],[软件栈],[工作负载],[每秒输出 token 数]。
标准化结果(基准 = vLLM-Native-BF16 @ 1.000);每秒输出 token 数,数值越高越好:
模型 软件配置 每秒输出 token 数 标准化值- Llama-3.1-8B-Instruct vLLM-Native-BF16 223.83 1.000
- Llama-3.1-8B-Instruct vLLM-zentorch-BF16 306.12 1.37
- Llama-3.1-8B-Instruct vLLM-zentorch-DA8W8 629.76 2.81
- Phi-4-mini-instruct vLLM-Native-BF16 634.63 1.000
- Phi-4-mini-instruct vLLM-zentorch-BF16 659.58 1.04
- Phi-4-mini-instruct vLLM-zentorch-DA8W8 1313.3 2.07
- Qwen2.5-VL-7B-Instruct vLLM-Native-BF16 351.26 1.000
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-BF16 447.8 1.27
- Qwen2.5-VL-7B-Instruct vLLM-zentorch-DA8W8 675.11 1.92
性能可能会因使用的驱动程序版本和其他因素而有所不同
- ZD-065:AMD 性能实验室截至 2026 年 6 月 26 日基于 ZenDNN 6.0 软件库进行的性能测试,测试系统配置如下:
AMD 系统:双路 AMD EPYC(霄龙)9755 128 核处理器(“Turin”),SMT 开启,24x96GB DDR5-6400(运行速度为 6000 MT/s),BIOS WVOT4807N,mitigations=off;软件:Python 3.12,PyTorch 2.12.0+cpu,vLLM 0.23.0+cpu,zentorch-2.12.0.2 (ZenDNN 6.0)。精度验证采用 LM Evaluation Harness 工具,通过使用 5-shot 少样本提示在 GSM8K 和 ChartQA 数据集上进行测试,对比了 DA8W8 量化结果与 BF16 基准结果。
精度测试结果(LM Evaluation Harness,5-shot;数值越高越好;Delta = DA8W8 相对 BF16 基准的差值):
模型 任务 BF16 DA8W8 Delta- Llama-3.1-8B-Instruct GSM8K 0.8438 0.8415 -0.27%
- Phi-4-mini-instruct GSM8K 0.8127 0.8143 +0.20%
- Qwen2.5-VL-7B-Instruct ChartQA 0.8600 0.8604 +0.05%
- GPT-OSS-20B GSM8K 0.8901 0.8757 -1.62%
- Mixtral-8x7B-Instruct GSM8K 0.6588 0.6543 -0.68%
性能可能会因使用的驱动程序版本和其他因素而有所不同
免责声明
本文档中的信息仅供参考,可能存在技术误差、遗漏和印刷错误。AMD 保留修订此等信息和随时更改本文档内容的权利,如有修订或更改,AMD 不承担任何通知义务。
AMD、AMD 箭头标识、霄龙、EPYC 及其组合是 AMD 公司的商标。本文中用到的其他产品名称仅用于标识目的,可能是其各自公司的商标。