CPU不堪重负,FPGA来助阵!
本刊记者薛士然
据分析师预测,到2020年互联网数据量会大得惊人:平均每位互联网用户的数据流量达1.5 GB/天,自动驾驶汽车产生数据达4 TB/天,联网飞机的数据达5 TB/天,智能工厂产生的数据达1 PB/天,云视频提供商每天的数据流量高达750 PB/天……如此庞大的数据量,必然会给数据中心带来巨大的压力,加之数据分析、机器学习等应用,更会让CPU不堪重负,这种情况下该怎么办?
近日,英特尔公司可编程解决方案事业部副总裁兼客户体验事业部总经理Rina Raman告诉了大家一个解决方案,那就是借助FPGA!
2015年6月,英特尔高价收购了当时的第二大FPGA公司Altera,开始涉足FPGA领域。FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展来的,主要包括以下几部分:可编程输入/输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。
FPGA具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,FPGA能完成任何数字器件的功能,甚至是高性能CPU都可以用FPGA来实现(要知道,所有ASIC的设计都是通过FPGA来实现物理验证的)。FPGA如同一张白纸:加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后进入工作状态;掉电后,FPGA恢复成白片,内部逻辑关系消失。因此,FPGA能够反复使用,其优势就是可以用硬件电路实现并行处理。
一个ASIC SoC的设计周期是14到24个月,而一个FPGA是半成品,因而设计时间要缩短一半。如果将x86处理器和FPGA结合起来创造新型异构处理器,还可以继续实现摩尔定律,而且这样的处理器既拥有x86的高性能,又通过FPGA实现了灵活性,堪称是一种完美的方案。
Rina介绍,随着物联网时代的到来,需要对网络进行根本性的转型,如此众多的设备涌入网络,就需要将网络功能进行虚拟化,很多功能需要从专用硬件转到数据中心软件中来运行,这种情况下采用FPGA是一个非常不错的解决方案,而且随着数据量的增长、计算环境的改变以及对功耗的要求越来越苛刻,要对计算进行加速,CPU+FPGA的异构架构确实是目前来看最好的方式。CPU是核心引擎,作为专用加速器,FPGA在灵活加速中使用,因为如此大量的数据需要处理,负载一定是动态变化的,FPGA是软件定义的硬件,能够应对不断出现的变化,充分发挥硬件的性能。
Rina还举例详细介绍了异构计算中FPGA的作用,FPGA配合英特尔的至强处理器在计算处理中可以采用两种方式:旁路加速和内建加速。在数据库加速应用中,swarm64采用了英特尔的FPGA方案,使用内建加速方式,在数据处理之前先进行压缩,结果实时数据分析速度快了5倍,传统数据仓储速度快了2倍,存储数据压缩速度快了3倍。在基因测序应用中,Broad Institute使用了英特尔的FPGA后取得了突破性的进步,采用Pair-HMM算法后,基因测序速度提高了50倍,改变了此行业的现状。
以上应用案例足以显示FPGA在计算加速中的优势,也让我们更加理解了英特尔斥巨资收购Altera的初衷。目前,英特尔的FPGA产品状况如下:用于高端的Stratix 10已有样片,用于中端的Arria 10已经全面投产,还有已经大量出货的Cyclone 10和正在发运中的Max 10,广泛的产品线完全能够满足多种应用需求。Rina还透漏,英特尔正在研发下一代产品,也是Altera并入英特尔后的第一代新产品,内部代号为Falcon Mesa,计划采用英特尔10 nm工艺制程,会采用新的接口规范。
据Rina介绍,其实英特尔一直在研究如何更好地将CPU与FPGA融合,研究紧密耦合的英特尔架构处理器是未来考虑的一个方向。因为目前CPU和FPGA各自有自己的开发工具,英特尔希望将两者的开发工具、结构框架、软件环境加以整合,这样就更方便了工程师实现开发应用。将FPGA与CPU融合,如此大胆的想法,目前也只有英特尔可以想!