早前,Xilinx宣布其新一代基于ACAP架构的芯片系列Versal已经正式出货给第一批客户,并将在今年下半年正式大规模出货。这也意味着Xilinx研发多年的新架构终于到了经历市场检验的阶段。
自从Xilinx从2018年发布ACAP架构以来,该架构就得到了行业的高度关注。ACAP全称“灵活计算加速平台”(Adaptive Computation Acceleration Platform),该芯片不仅包含了FPGA的可配置逻辑,还包含了ARM核,以及AI Engine和DSP Engine。这意味着使用ACAP架构的芯片将可以满足三种需求:ARM核可以运行一些通用化且对性能需求不高的任务,例如操作系统;FPGA可配置逻辑可以运行定制化逻辑;而AI Engine则可以运行AI相关的高性能专用计算,例如矩阵运算等。
ACAP架构里新加入的AI Engine是大家关注的焦点。根据Xilinx发布的资料,该AI Engine是一组SIMD核阵列,每个核都包含了完整的RISC处理器、定点SIMD处理单元、浮点SIMD处理单元以及本地内存。每个核之间还可以通过片上网络(NoC)连接到一起,从而可以实现高度灵活的数据流。这样的架构,事实上类似众核架构。在这次发布的Versal AI Core系列芯片中,将会集成128-400个AI Engine,从而实现43-133TOPS的INT8定点计算能力。
为什么Xilinx会在FPGA里面加入专用的AI Engine呢?我们不妨回顾一下FPGA的发展历史。
在FPGA最初出现的时候,其最大的卖点是可以配置成任意的逻辑,只要逻辑容量不超过FPGA的上限即可。最初人们对于FPGA的期望是满足其功能需求。
在这样的预期下,使用FPGA的系统可以划分为两个部分,一个是使用通用处理器实现的高速处理部分,而另一部分是使用FPGA实现的特殊功能部分。换句话说,FPGA的主要角色是协处理器。
然而,随着用户的需求和FPGA公司的业务扩展,FPGA并不满足于只当一个协处理器。从用户角度来说,事实上这种主-从处理器的系统在设计和集成的时候会比较麻烦,如何正确处理主-从处理器之间的可靠互联和数据通信协议设计都需要不少功夫。随着FPGA容量的增大,不少用户试着在FPGA上部署一个处理器核来跑OS并控制其余部分的可编程逻辑。然而,这样的效率很低,因为处理器核是一种通用处理器,而FPGA事实上最合适的领域是定制化逻辑而非通用处理器。从Xilinx和Altera这样的FPGA公司业务来说,FPGA作为协处理器的市场可以提供的利润率显然会小于整个系统的利润率。因此,基于供需双方的需求,Xilinx推出了包含了ARM硬核和FPGA的Zynq系列芯片,而Altera也推出了类似概念的Altera SoC系列产品。
在Zynq和Altera SoC这类的产品中,包含了一个ARM处理器硬核,以及可编程逻辑。由于处理器是硬核,因此可以运行在GHz这样的频率范围,相比之前跑在FPGA上的软核只能跑到100MHz这样的频率,可以说集成ARM硬核是大大提升了通用处理器核的性能,使其不再成为系统的性能瓶颈。此外,由于ARM硬核和FPGA集成在同一块芯片上,因此处理器和FPGA之间有着丰富的高速互联资源,从而让ARM硬核和FPGA逻辑之间的数据交换变得高效。同时在工具链上,对于ARM核+FPGA的协同工作也提供了很好的支持。这样几个要素组合在一起,就实现了一个重要的突破,即这样一个包含ARM核和FPGA的芯片在不少场景下可以直接作为一个系统工作,而不再依赖于其他主处理器了。因此,集成了ARM核的FPGA就不再是一个协处理器,而是可以作为一个主处理器。
到了今天,随着FPGA目标人工智能市场,事实上又出现了之前同样的情况:不少用户希望用FPGA实现人工智能计算,但是FPGA实现人工智能计算的能力有限,而另一方面主流人工智能计算其实都相当规则,基本都是基于矩阵运算,因此Xilinx在ACAP的架构中主动加入了能灵活支持这类人工智能运算的硬核——AI Engine,从而希望能作为完整的系统支持人工智能计算,并慢慢从芯片厂商走向系统厂商。
ACAP主要针对的市场是云端和边缘计算市场。云端市场即数据中心的服务器,在此类应用中,ACAP可望作为用于加速人工智能计算的加速卡进入服务器。目前,亚马逊AWS已经有不少部署了Xilinx FPGA的服务器,随着ACAP的发布,可望会有更多FPGA进入此类云计算市场。值得注意的是,ACAP主要的强项是低精度定点计算(INT8),因此针对的AI应用主要是推理,而作为云端人工智能重要应用的训练仍然会需要擅长浮点运算的GPU。而在AI推理方面,FPGA相比GPU的优势是功耗小并且可定制,因此会在该领域与GPU竞争市场份额。然而,相比GPU完整的开发者生态,FPGA的开发生态仍然不够成熟,因此工具链等开发生态可能会成为充分开启FPGA潜力的关键点。
在云端市场之外,边缘计算将是ACAP的重点市场。边缘计算介于终端节点和云之间,边缘服务器部署在物联网终端附近,它收集终端设备的信息并做就近处理,同时将必要的信息再上传至云端。物联网、5G和自动驾驶技术在大大增加边缘计算市场潜力的同时,也对边缘计算提出了新的需求,需要边缘计算在做网络操作和数据存储之外,还要能实现实时人工智能计算,而这也是ACAP主要针对的市场。事实上,通信基站本来就是FPGA的主要市场之一,因此随着5G结合边缘计算和人工智能的概念,ACAP显然也能迎合这样的潮流,从而有望随着5G+概念的崛起占领更多通信市场。
对于人工智能芯片初创公司来说,ACAP将会在云端和边缘计算端成为一个有力的竞争者。考虑ACAP的计算能力(40-100TOPS),我们认为ACAP在边缘计算方面将有非常强的竞争力(在云端对于算力的需求将会很快超过100TOPS,因此ACAP或许将更多发挥其在可配置而非算力方面的优势)。由于FPGA成本较高,因此我们认为ACAP将会更多面对高端市场,但是从整体上来说,我们认为ACAP将会成为Xilinx进军人工智能市场的一把利器。
对于Xilinx FPGA的老对手——Intel来说,应对Xilinx ACAP的策略并非针锋相对推出另一款功能相近的芯片,而是利用自身在封装工艺上的优势以虚击实。今年四月,Intel发布了下一代FPGA构架AgileX,该架构利用EMIB封装,可以把FPGA和其他芯片粒封装在一起。因此,如果客户选择在AgileX的系统中集成一块用于AI加速的芯片粒,则可以实现和Xilinx ACAP类似的效果。这样一来,Intel的AgileX方案比起Xilinx来说更加灵活,因为Xilinx的ACAP只针对AI相关计算优化,而Intel的AgileX优化的计算取决于客户选择集成什么芯片粒。然而,现在芯片粒的生态还未完善,因此无论是成本、工具链还是产能来说都要打个问号,因此我们认为Intel的AgileX架构的第一批客户还主要是针对希望能和Intel深度合作使用EMIB技术并且有技术实力理解甚至定制芯片粒系统的大客户,这样看来,我们认为Xilinx的ACAP是赌定了AI市场,并且希望能快速覆盖更多的客户;而Intel还不愿意放弃FPGA的灵活性,因此并不希望这么早就把FPGA和AI深度绑定,而是希望FPGA能作为其芯片粒生态的先锋部队。这另一方面和两家公司的架构也有关:FPGA只是Intel的一个事业部,其产品定义必须服从Intel整体的战略;而FPGA产品对于Xilinx来说就是全部,所以一切都围绕FPGA。
对于中国芯片公司来说,意识到FPGA与专用加速器以及处理器硬核集成的趋势也是重要的。虽然我们在FPGA领域尚需追赶,但是FPGA SoC的架构与FPGA更像是一种横向扩展而非纵向加深,也即完全可以在与研发FPGA并行进行,从而在未来更快追上FPGA发展的步伐。从另一个角度来说,我们也可以认为FPGA下一步的发展已经不只是如何把FPGA逻辑规模做大速度做快,而是如何把FPGA搭配其他应用组成在灵活度和性能方面都足够好的SoC。随着FPGA IP的发展,中国芯片公司也可以考虑购买FPGA IP搭配专用加速器IP,从而实现我们自己的“ACAP”