引言
隨著機器學習演算法的研究,其變得越來越複雜和多樣性。計算密集性對計算資源和存儲以及帶寬提出了更高的要求,複雜性更要求硬體要有很好的靈活性。CPU是一個標量處理單元,對於處理過程複雜的演算法很靈活,比如決策樹和大量的圖像或者機器學習演算法。GPU和DSP集成了大量的運算單元,能夠並行處理大量計算,但是功耗較大。FPGA具有並行計算優點,以及靈活的可編程特性,但是在處理計算密集的過程時,依然受到存儲和帶寬限制,而且FPGA開發過程時間較長。Xilinx的ACAP將這三者結合起來,目標是能夠解決計算密集和帶寬瓶頸以及開發週期問題。本篇在網路上能搜索到的信息的基礎上,對ACAP的架構進行一個簡單的介紹,因為保密原因不能介紹內部文件對其描述,所以特此聲明。
1. 功能介紹
ACAP是Xilinx推出的一種革命性異構計算架構。它將標量計算,可編程邏輯還有矢量計算結合在一起,充分利用各自的優勢,不僅僅增強了針對各種機器學習演算法的適用性,也提高了計算密度和存儲帶寬。其中AI engine和NoC是新穎的設計,FPGA和CPU的結合早在zynq系列中已經應用。AI engine優點類似於GPU的結構,由多個DSP和BRAM以及DMA等構成,可以處理創新的超長指令字和單指令,多個數據指令。AI engine之間相互互聯,可以提供高達100Tb/s的存儲帶寬。NoC是一種片上網路,實現CPU,FPGA,AI engine之間的互聯。CPU是採用的雙核arm cortex-A72,與賽靈思上一代A53核相比,每核單線程相比性能提高了2倍。FPGA部分保留了原有設計,其內部的存儲器可以用於多層級cache。