灵活的 DSP 解决方案

大规模并行计算

简介

凭借其固有的灵活性,AMD 自适应 SoC 和 FPGA 是高性能或多通道数字信号处理 (DSP) 应用的理想选择,这些应用可充分利用硬件的并行性。AMD 自适应 SoC 和 FPGA 将这种处理带宽与各种综合解决方案相结合,其中包括为硬件设计人员、软件开发人员和系统架构师提供的简单易用的设计工具。

硬件并行性

一个标准 Von Neumann DSP 架构需要 256 个周期才能完成一个 256 个抽头的 FIR 滤波器,而自适应 Soc 和 FPGA 只需要一个时钟周期便可达到相同的效果。

图表显示大规模并行计算可转化为极高水平的 DSP 性能

大规模并行计算可转化为极高水平的 DSP 性能:

  • 49.5 TeraMAC 的定点性能(8 位)
  • 单精度浮点的 23.1 万亿次浮点运算

综合 DSP 解决方案

AMD DSP 解决方案包含芯片、IP、参考设计、开发板、工具、文件和培训,可实现广泛市场的各种应用,包括(但不限于)无线通信、数据中心以及航空航天及军用产品。

综合开发流程

针对不同的使用模型及不同等级的设计抽象提供各种工具流程:

硬件设计者可以在以下方面进行设计:

软件开发者( 习惯于使用 C/C++ 进行开发) 可使用以下工具开发:

系统架构师可快速评估新算法,实现:

选择您的解决方案

有了 AMD 自适应 SoC 和 FPGA,设计人员可使用多种流程,根据设计方法和抽象级别部署其 DSP 应用。

AMD FPGA 和自适应 SoC 基于 ASIC 类架构,在Versal™ Premium 系列中将每秒数百千兆位 I/O 带宽与超过 49 TeraMAC 的定点 DSP 性能相结合。在最新一代 AMD FPGA 中,AMD DSP slice 及其并行性是实现 DSP 性能的关键。

DSP Slice 架构

Versal 器件 slice 中的 DSP58 是 AMD 架构中的第 6 DSP slice。

这款专用的 DSP 处理模块在全面定制的芯片中实现,这种芯片可实现领先的功耗性能比,从而可高效实现乘法累加器 (MACC)、乘法加法器 (MADD) 或复杂乘法等普及型 DSP 功能。

此外,Slice 也可提供执行各种逻辑运算的功能,如 AND、OR 和 XOR 运算。

Versal 器件 DSP58 架构建立在 UltraScale™ FPGA DSP48E2 的成功基础之上,具有更高的增强性能:

  • 更宽的乘法器(27 x 24 位)
  • 单精度浮点乘法器
  • 18x18 复数乘法使用两个背靠背的 DSP
  • INT8 向量点积模式

这些增强功能有助于 DSP 关键应用在进入 FPGA 架构之前在 DSP48E2 slice 内执行更多的计算,最终可节省资源及电源。

DSP48E2 (UltraScale) 与 DSP58 (Versal) Slice 特性

功能 UltraScale Versal
DSP 模块/Slice 类型 DSP48E2 DSP58
多重 Add/Sub/Acc 运算
乘法器和 MACC 27x18 27x24
开方: [(A 或 B)+/- D]2
WMUX 反馈超高效复杂乘法 CMACC 3 x DSP48E2 2 x DSP58
SIMD 支持
集成型模式检测电路
集成型逻辑单元
宽复用功能 48 位 58 位
Wide XOR 96 位 116 位
Single Precision Floating Point Multiplier   
可选 96 位输出
级联布线
流水线寄存器
D 预加法器
序列复杂乘法、AB 动态访问
改进的 AB 寄存器流水线平衡

工具与流程

AMD 可根据您的设计首选项为您提供支持 RTL、C/C++ 及模型设计入口的工具。这种设计流程灵活性加上大量 DSP IP 目录,可实现对 AMD 工具及器件的更便捷应用。

Versal Prime

访问工具、库和框架,了解更多详情。

DSP 性能指标

下表是 7 系列、UltraScale 和 UltraScale+ 系列的部分重要 DSP 性能指标。 如需了解 SoC 器件性能,敬请查看软件开发人员部分。

Kintex UltraScale Kintex UltraScale+ Virtex UltraScale Virtex UltraScale+ Versal AI Core Versal AI Edge Versal AI Prime Versal AI Premium
系统逻辑单元 (K) 318–1,451 356–1,143 783–5,541 862–3,780 540 - 1,968 44 - 1,139 329 - 2,233 833 - 7,352
DSP slice 768–5,520 1,368–3,528 600–2,880 2,280–12,288 928 - 1,968 90 - 1,312 464 - 3,984 1,140 - 14,352
27x18 乘法器 768–5,520 1,368–3,528 600–2,880 2,280–12,288 928 - 1,968 90 - 1,312 464 - 3,984 1,140 - 14,352
INT8 GOPs (1) 1,774–14,315 4,263–11,000 1,554–7,469 7,108–38,318 6,403 - 13,579 62 - 9,052 3,201 - 27,489 7,866 - 99,029
INT16 GOPs 1,014–8,180 2,436–6,286 888–4,268 4,062–21,896 2,134 - 4,526 21 - 3,017 1,067 - 9,163 2,622 - 33,010
复杂的 INT18 GOP 676 - 5,453 1,624 - 4,191 592 - 2,845 2708 - 14,597 913 - 1,937 8 - 1,291 456 - 3,920 1,122 - 14,122
单精度浮点 (GFLOP) (2) 320–2,685 800–1,673 294–1,411 1,354–7,299 1,494 - 3,168 14 - 2112 747 - 6,414 1,835 - 23,107

注:

  1. 请参考 WP486 – “利用 AMD 器件的 INT8 优化开展深度学习”
  2. 单精度浮点性能在 Ultrascale+ 中使用支持 3 个 DSP slice 的浮点运算内核

我们推出了软件开发环境及一系列功能强的常见综合工具、库以及软件开发人员可用来便捷锁定 AMD FPGA 及 SoC 目标的方法。 支持高层次抽象环境Vitis™ 统一软件平台。我们可针对 C、C++ 和/或 OpenCL 开发提供类似于 GPU 的熟悉嵌入式应用开发及运行时体验。

AMD MPSoC 和 Versal 器件

Zynq™ UltraScale+™ MPSoCVersal 架构结合强大的处理系统 (PS),在单个器件中完美整合 ARM® Cortex® 处理器和用户可编程逻辑 (PL)。

支持加速的应用剖析

Vitis 统一软件平台不仅提供分析给定应用的功能,而且还允许创建硬件加速器,以便在可编程逻辑 (PL) 中更高效地运行,其中可利用 FPGA 的灵活性和并行性提供巨大的性能改进。此外,这还可实现必要时可在处理系统 (PS) 中并行运行的其它应用功能。

通过将 AMD FPGA 及自适应 SoC 定为目标,许多 DSP 及嵌入式应用都将实现效率的提升并为其应用降低功耗。

AMD SoC 器件的特性和 DSP 性能

下表是 AMD Zynq UltraScale+ MPSoC 系列和 Versal 器件的部分重要特性及 DSP 性能指标。 如欲了解非 SoC 器件性能,敬请访问硬件设计人员部分。

处理系统 Zynq 7000 SoC Zynq UltraScale+ MPSoC
应用
处理单元
(APU)
  • 单核/双核 ARM Cortex-A9 MPCore™ (达 1GHz)
  • ARMv7-A 架构
  • NEON™ 媒体处理引擎
  • 单双精度矢量浮点单元 (VFPU)
  • 双核/四核 ARM Cortex-A53 MPCore (达 1.5GHz)
  • ARMv8-A 架构
  • Neon 高级 SIMD 媒体处理引擎
  • 单/双精度矢量浮点单元 (FPU)
实时
处理单元
(RPU)
-
  • 双核 ARM Cortex-R5 MPCore™ (达 600MHz)
  • ARMv7-R 架构
  • 单/双精度矢量浮点单元 (FPU)
多媒体处理 -
  • GPU ARM Mali™-400 MP2,高达 667MHz
    • 提供 OpenGL ES 1.1 和 2.0 支持
    • 支持 OpenVG 1.1
  • 支持 H.264-H.265 的视频编解码器(仅 EV 器件)
动态内存接口 DDR3, DDR3L, DDR2, LPDDR2 DDR4、LPDDR4、DDR3、DDR3L、LPDDR3、
高速外设 USB 2.0、Gigabit Ethernet、SD/SDIO PCIe® Gen2、USB3.0、SATA 3.1、 DisplayPort、Gigabit Ethernet、SD/SDIO
安全 RSA、AES、和 SHA, ARM TrustZone® RSA、AES、和 SHA, ARM TrustZone
最大 I/O 引脚数 128 214
可编程逻辑 Zynq 7000 SoC Zynq UltraScale+ MPSoC
系统逻辑单元 (K) 23–444 103–1,045
最大存储器 (Mb) 1.8–26.5 5.3–70.6
最大 I/O 引脚 100–362 252–668
DSP Slice 60–2,020 240–3,528
18x18 乘法器 60–2,020 240–3,528
定点性能 (GMACs) (1) 42–1,313 213–3,143
定点性能 面向对称滤波器 (GMAC) (1) (2) 84–2,626 426–6,286
INT8 GOPs (1) (3) 84–2,626 745–11,000
INT16 GOPs (1) 84–2,626 426–6,286
单精度浮点 (GFLOPs) (1) (4) 23–716 142–1,673
单精度浮点 (GFLOPs) (1) (5) 17–537 106–1,571
半精度浮点 (GFLOPs) (1) (6) 34–1,074 212–3,142

注:

  1. 所有性能计算均基于 Zynq 7000 SoC 的 -2 速度级部件以及 Zynq UltraScale+ MPSoC 的 -3 速度级部件
  2. 为对称滤波器使用预加法器,DSP 性能可提高 2 倍
  3. 请参考WP486 - “利用 AMD 器件的 INT8 优化开展深度学习” (不适用于 Zynq 器件)
  4. 使用支持 3 个 DSP slice 的浮点运算器内核实现单精度浮点性能
  5. 使用支持 4 个 DSP slice 的浮点运算器内核实现单精度浮点性能
  6. 使用支持 2 个 DSP slice 的浮点运算器内核实现半精度浮点性能

如欲了解有关 AMD SoC 及 MPSoC 的更多详情,敬请访问:

处理子系统中的 DSP

该处理系统 (PS) 可通过不同的 ARM 处理内核途径提供各种 DSP 处理功能。

如欲进一步了解有关 ARM 的 DSP 功能,敬请访问:

可在以下位置查看一些实用示例:

对于 Zynq UltraScale+ MPSoC,请查看:UG1211,了解使用 ARM NEON 指令集的 FFT 演示。

对于 Zynq 7000 SoC 而言,在将 Cortex-A9 和 ARM SIMD 确定为目标时,可在 Xilinx wiki 上获得以下技术要点:

AMD 数据类型支持

AMD 为其器件提供极其灵活的数据类型支持。 AMD 工具原生支持不同精度的定点、浮点和整数,这些浮点运算是在 Floating Point Operator IP 核的支持下实现的。

与定点或整数实现方案相比,在 FPGA 上实现的浮点设计始终会导致消耗更多的资源及功率。 如果可能的话,转化为定点解决方案,将带来巨大的优势:

  • 更少的 FPGA 资源
  • 功耗降低
  • 成本降低

如需进一步了解有关将浮点转换为定点数据类型的优势,敬请阅读 WP491

基准测试

下表是一小部分算法以及使用  AMD 器件、特别是可编程逻辑 (PL) 中的架构加速设计可实现的性能提升。

算法 CPU/GPU Zynq UltraScale+ MPSoC 优势
Stereo LocalBM @ 2K ARM:每瓦 0.5 FPS
nVidia:每瓦 3.5 FPS
每瓦 146 FPS 292x
42x
光流法
(Lucas-Kanade)
ARM:每瓦 0.1 FPS
nVidia:每瓦 0.8 FPS
每瓦 7.1 FPS 9.3x
GoogleNet
(Batch=1)
ARM:0.1 Imgs/s/w
nVidia:8.8 Imgs/s/w
53 Imgs/s/w 530x
6x

注释 1:ARM:四核 A53 以 1200MHz 的频率运行在 Raspberry Pi 上
注释 2:采用 Tegra X1 实现 Nvidia 基准
注释 3:光流 (LK) — 窗口尺寸:11x1

算法 CPU/DSP Zynq 7000 优势
正向投影 ARM:每视图 3 秒 每视图 0.016 秒 188x
运动检测 ARM: 0.7 FPS 67 FPS 90x
噪声降低 — Sobel ARM: 1 FPS 67 FPS 60x
Canny 边缘检查 ARM: 0.66 FPS 40 FPS 45x
3D 图像重建 ARM: 75k 8k 9x
DPD ARM: 506 ms 31.3ms 16x
FIR TI DSP: 64020 ns 1200 ns 53x
FFT TI DSP: 1036 ns 128 ns 8x

注释 1:将 ARM 作为目标时,Cortex-A9 内核只用在 Zynq 器件上
注释 2:使用 C66 DSP 内核完成 TI 基准

Vitis Model Composer for DSP 和高层次综合等 AMD 高层次设计工具提供的抽象等级可帮助系统架构师及域专家快速评估最新算法并集中精力进行其设计的差异化部分开发。 完整的 AMD DSP 解决方案是这些设计工具、IP、参考设计、方法及电路板的完美整合,这些元素的结合能够在尽可能最短的时间内获得一项可行的生产设计。

 Vitis Model Composer 是一款基于模型的设计工具,可利用 MATLAB 及 Simulink 开发环境以一小部分传统 RTL 开发时间在可编程逻辑中定义、测试和实现生产质量级 DSP 算法。

该工具提供:

  • 100 多个优化 DSP 模块,许多都有 C 仿真模型,与 RTL 相比,仿真速度提高了 2 至 3 倍
  • 高度集成 DSP 的 RTL、IP、Simulink、MATLAB 和 C/C++ 组件
  • 位精确与周期精确的浮点、定点仿真
  • 硬件协同仿真可加速仿真并可在可行硬件上验证算法
  • 从 Simulink 到打包 IP 或低层次 HDL 的自动代码生成
  • HDL 测试台的自动生成,包括测试矢量

了解有关 DSP Vivado 系统生成器的更多详情:

高层次综合 (HLS)

高层次综合包括 Vitis 统一软件平台,可移植 C、C++ 和 System C 算法规范能够直接针对 AMD FPGA 和自适应 SoC,无需创建 RTL。就像从 C/C++ 到不同处理器架构提供编译器一样,HLS 编译器可从 C/C++ 到 AMD FPGA & 自适应 SoC 提供相同的功能性。

了解更多有关高层次综合的信息:

工具与生态系统

工具

AMD 提供业界一流的工具,有助于在一款 AMD 自适应 SoC 和 FPGA 上以极低的功耗高效实现数字信号处理 (DSP) 应用。 无论您在使用 RTL、C/C++/SystemC 进行设计,还是在使用 Matlab/Simulink,以下 AMD 工具都可轻松简化您的设计,缩短上市进程。

库与框架

AMD 提供大量针对性能、资源利用及易用性进行优化的库。

库与框架 说明
应用
GitHub 库 AMD 创建了各种 GitHub 库,其可面向包含 DSP 相关功能在内的大量应用提供各种实用示例。

Vitis

Vitis Model Composer

Vitis 加速

Vitis 加速库 AMD 创建了一组广泛的、性能优化的开源库,这些库提供了即开即用的加速功能,并且对现有应用实现最小化代码更改或零更改。 Vitis 库

合作伙伴、开发板和套件

AMD 与其合作伙伴紧密协作,生产了各种工具及电路板,用于在大量不同市场领域简化 DSP 应用对 AMD FPGA 及 SoC 的采用。

合作伙伴 说明 解决方案
Avnet 以 DSP 为导向的开发套件及模块

通过与 Xilinx、MathWorks 以及领先高速模拟供应商长期构建的协作,Avnet 可为嵌入式视觉、软件定义无线电以及高性能电机控制提供以 DSP 为导向的开发套件和生成就绪型系统级模块。

Avnet
Mathworks 计算软件

Mathworks MATLAB® 和 Simulink® 可显著缩短自适应 SoC 和 FPGA 系统的开发时间,可帮助用户:

  • 创建复杂的信号图像处理、通信以及控制算法
  • 在开发过程早期验证系统要求
  • 针对 AMD FPGA 和 SoC 生成并验证 HDL 和 C 代码
Mathworks
模拟器件附加电路板

AD-FMCDAQ2-EBZ FMC 电路板是一款功能齐全的数据采集及信号综合原型设计平台,支持简单易行的工作,从而可加速终端系统信号处理开发。

  • AD9680 采用 14 位、1.0 GSPS、JESD204B ADC
  • AD9144 采用 4 通道、16 位、2.8 GSPS、JESD204B DAC
  • AD9523-1 由 14 组输出、1 GHz 时钟驱动
Analog Devices
技术文档

技术文档

Default Default 标题 日期
培训 & 支持
视频

重要视频


所有视频

Default Default 标题 日期