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