引言
随著机器学习演算法的研究,其变得越来越复杂和多样性。计算密集性对计算资源和存储以及带宽提出了更高的要求,复杂性更要求硬体要有很好的灵活性。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。