ACAP不可不知的几个基本概念

  • 2020 年 3 月 31 日
  • 筆記

在谈ACAP之前,我们先看看传统的三类计算引擎,如下图所示(图片来源Figure 2, wp 505, Xilinx)。从左至右,第一类就是典型的CPU处理机制,其优势在于处理分支条件判定较多的算法,而其顺序执行的方式成为性能瓶颈。第二类则是FPGA处理机制。FPGA也被称为“液体硬件”(Liquid Hardware),源于其高度可定制化,这使得其在实时性要求很高的场合更有优势,尤其是芯片规模不断增大、并行性不断增强,更凸显了这种优势。但随之而来的是编译时间不断增长,可达几小时,甚至十几小时。第三类是GPU处理机制。其在特定领域可实现较高的并行性,如数字信号处理、视频和图像处理等。但其不够灵活的内存分级(Memory Hierarchy)对延迟和效率带来了一定的负面影响。

ACAP是什么

ACAP(Adaptive Compute Acceleration Platform)是Xilinx推出的具有革命性的异构计算平台,它将上述三种处理机制融合在一起,如下图所示(图片来源:Figure 3, wp 505, Xilinx)。

三类引擎

ACAP中包含了三类引擎,分别是Scalar Engine(对应ARM Core,包括双核Cortex-A72和Cortex-R5)、Adaptable Engine(对应Programmable Logic)和Intelligent Engine(对应AI Engine和DSP Engine),这三类Engine通过高带宽的NoC(Network-on-Chip)互连,实现了极高的数据吞吐率,如下图所示(图片来源:Figure 4, wp 505, Xilinx)。

Versal系列产品

三类引擎以不同比例组合,从而形成了Versal系列产品,如下图所示(图片来源:Table 1, wp 505, Xilinx)。可以看到,不同系列针对不同的应用,从而保证Versal在数据中心、无线通信、有线通信、自动驾驶、测试测量等领域都能胜任。

编程方式

从Versal的内部结构可以看到,对于ARM,需要采用C/C++编程;对于PL,需要采用HDL编程;对于Intelligent Engines,也需要用C/C++编程。为此,Xilinx提供了统一的开发平台Vitis,从Framework Level到C level到底层的RTL全面支持,如下图所示(图片来源:Figure 6, wp 505, Xilinx)。

参考文献:Xilinx, WP505(V1.01), 2019