图2 FPGA在电信领域的应用历史
FPGA在航天、军工、电信领域有非常成熟和广泛的应用。以电信领域为例,在电信设备一体机阶段,FPGA由于其编程的灵活性以及高性能被应用网络协议解析以及接口转换。
在NFV(NetworkFunction Virtualization阶段,FPGA基于通用服务器和Hypervisor实现网元数据面5倍的性能提升,同时能够被通用Openstack框架管理编排。
在云时代,FPGA已经被作为基本IaaS资源在公有云提供开发服务和加速服务,AWS、华为、BAT均有类似通用服务提供。
截至目前,Intel的Stratix 10器件已被成功应用于微软实时人工智能云平台Brainwave项目。
3、两家主流FPGA公司发展近况
Xilinx聚焦芯片领先和丰富的加速解决方案,通过开放策略获得主流云平台支持,确立了其在数据中心的领先地位。其UltraScale+系列FPGA领先友商1年多,使其在云平台竞争中占领先机,其VU9P器件被大量应用于包括AWS、Baidu、Ali、Tencent及华为在内的多家公司的云计算平台。
为满足加速器领域对FPGA芯片日益递增的性能需求,Xilinx已发布面向数据中心的下一代ACAP芯片架构、推出7nm Everest器件。此器件已不属于传统的FPGA,它集成了ARM、DSP、Math Engine处理器阵列等内核,将于2019年量产。相较于VU9P,Everest支持的AI处理性能将能提升20倍。
Intel则提供从硬件到平台到应用的全栈解决方案,不开放硬件和平台设计以避免生态碎片化,投入巨大但进展缓慢。
图3 Xilinx产品系列图
图4 Intel(以Stratix系列为例)产品工艺年代
FPGA在数据中心服务器市场的实际应用中存在一定技术难点,具体包括如下几方面:
1、编程门槛较高:硬件描述语言不同于软件开发语言,需要开发者对底层硬件有着较深刻的认识;因此人才也就成为限制FPGA应用的一个重要因素。据了解,目前国内从事FPGA开发的人员初步估计大约两万多人。
2、集成难度较大:FPGA开发与应用需要软硬件的协同,包括使用高级语言的系统建模、硬件代码(电路)设计、硬件代码仿真、底层驱动软件与硬件逻辑的联调等等。
3、开发周期相对软件要长:硬件开发比软件开发过程复杂,调试周期也被拉长。