1. Agilex 架构概述
Agilex FPGA 家族是 Intel 基于 10 nm SuperFin 工艺打造的异构计算平台,其核心设计理念是将传统 FPGA 可编程逻辑、高性能 Hard Processor System (HPS)、AI Tensor Block 以及增强型 DSP 模块融合在同一芯片上。本章从家族产品线、异构计算架构、AI Tensor Block 与 DSP 模块的定位三个维度展开,为后续 HLS 开发与算力利用奠定基础。
1.1 Agilex FPGA 家族介绍
Agilex 系列覆盖从边缘到数据中心的应用场景,主要分为以下三个子系列:
| 子系列 | 目标应用 | 关键特性 | DSP 数量(典型) |
|---|---|---|---|
| Agilex 7 | 数据中心、网络、高性能计算 | 最高逻辑密度,支持 PCIe 5.0 / CXL,集成 HBM 内存控制器 | ~5,000+ (可变) |
| Agilex 5 | 嵌入式、工业、AI 推理 | 平衡功耗与性能,集成 AI Tensor Block,支持硬核 ARM Cortex-A76 | ~1,500+ (可变) |
| Agilex 3 | 低成本边缘、IoT | 小尺寸封装,低功耗,面向传感器融合与简单控制 | ~200+ (可变) |
开发提示: 在 HLS 开发中,Agilex 7 适合大规模并行 DSP 流水线,Agilex 5 则更适合混合 AI+信号处理任务。选择器件时需优先确认 DSP 与 AI Tensor Block 的硬核数量。
1.2 异构计算架构
Agilex 的异构计算架构由四个主要计算域组成,它们通过高速片上网络(NoC)和 AXI 总线互联:
- FPGA 可编程逻辑(FPGA Fabric): 提供可重配置的逻辑单元(ALM)、查找表(LUT)和布线资源,用于实现自定义数据通路和控制逻辑。
- Hard Processor System (HPS): 集成多核 ARM Cortex-A76 / A55 处理器,运行 Linux 或裸机程序,负责任务调度、网络协议栈和上层应用。
- AI Tensor Block: 专为矩阵乘法与卷积运算设计的硬核加速器,支持 INT8 / BF16 精度,直接与 FPGA 逻辑和 HPS 交互。
- DSP 模块: 增强型硬核乘加单元(DSP Block),支持浮点(FP16 / FP32)与定点运算,是传统信号处理与 HLS 数值计算的核心。
架构要点: 四个计算域共享统一内存层次(L3 Cache + HBM / DDR),数据搬运由 NoC 自动调度,开发者无需手动管理跨域互联细节,这大大降低了 HLS 编程的复杂度。
1.3 AI Tensor Block 与 DSP 模块的定位
在 Agilex 架构中,AI Tensor Block 与 DSP 模块虽然都执行数值计算,但设计目标与适用场景有明显差异:
| 对比维度 | AI Tensor Block | DSP 模块 |
|---|---|---|
| 核心运算 | 矩阵乘法、卷积、向量点积 | 乘加(MAC)、乘累加、浮点运算 |
| 数据精度 | INT4 / INT8 / BF16 | INT9 / INT18 / FP16 / FP32 / 自定义定点 |
| 并行粒度 | 张量级(2D/3D 阵列) | 向量级(1D 乘加链) |
| 典型延迟 | 固定流水线深度(~4-6 周期) | 可配置流水线(1-3 周期) |
| 适用负载 | AI 推理、图像分类、目标检测 | FIR 滤波、FFT、信道估计、控制环路 |
| HLS 调用方式 | 通过 Intel oneAPI DPC++ 或专用库函数 | 通过 HLS pragma 或直接实例化 DSP 原语 |
常见误区: 不要试图用 AI Tensor Block 执行高精度浮点 FIR 滤波,也不要用 DSP 模块做大规模 INT8 卷积。两者在 Agilex 中是互补关系,而非替代关系。HLS 开发时应根据算法特性选择正确的计算单元。
1.4 架构关系图
下图展示了 Agilex 异构计算架构中四个计算域之间的互联关系以及数据流路径:
1.5 开发视角总结
从 HLS 开发者的角度看,Agilex 架构带来的核心优势是:
- 计算单元选择自由: 同一段 HLS 代码可以通过 pragma 指定映射到 DSP 模块或 AI Tensor Block,无需重写算法。
- 数据搬运透明化: NoC 和统一内存模型让开发者无需手动管理跨域 DMA,HLS 工具链自动生成最优搬运调度。
- 精度与吞吐权衡: 在 Agilex 7 上,DSP 模块支持 FP32 高精度;在 Agilex 5 上,AI Tensor Block 提供 INT8 高吞吐。HLS 开发时应根据应用需求选择器件与计算单元组合。