Intel通用加速堆栈简化云上部署CPU+FPGA异构架构
扫描二维码
随时随地手机看文章
刚刚落幕的全球云计算大会和华为全联接大会上,云计算和大数据再一次成为热议的话题。预测数据显示,到2020年,平均每一天,每位互联网用户的流量将达到1.5GB,自动驾驶汽车的流量是4TB,而云视频提供商的视频吞吐量是750PB!奔涌而来的数据洪流给数据中心带来了新的挑战。
英特尔可编程解决方案事业部FPGA软件解决方案高级总监 Bernhard Friebe向21ic记者介绍了Intel的FPGA在数据中心的变革中将起到怎样的作用,如何更好的为云上业务提供卓越的性能。
图:英特尔可编程解决方案事业部FPGA软件解决方案高级总监 Bernhard Friebe
据Friebe介绍,Intel的FPGA已经解决了很多数据中心和云计算的难题。
现在关系型数据库用的越来越多,数据量也越来越大,只靠CPU的能力在数据库里进行计算难度越来越大。完全采用CPU的方案成本非常高昂。Intel的合作伙伴SWARM64则很好地利用了FPGA的并行处理能力,实现实时数据加速、实时数据分析、传统数据仓储方面的提升。SWARM64的产品是一个简单的即插即用PCI,在这个数据库里面,无论是MySQL或其他数据库,加载驱动以后立刻可以满足需求。现在,SWARM64的实时数据分析速度提升了五倍,传统数据仓储效益超过原来两倍,存储压缩的性能达到三倍以上。根据他们的预测,通过使用FPGA加速,他们能够在三年内节省40%的成本。
在基因测序这个领域,Intel的合作伙伴Broad研究所采用FPGA解决医学遗传领域的尖端问题。基因测序会产生海量的数据,FPGA则可以大大地加速分析流程,从而加快医疗领域的创新。Intel和Broad研究所合作开发出了基因分析工具包,为基因测序的Pair-HMM算法专门制定了FPGA,大大提供了这个算法的效率。利用了FPGA的并行处理的能力,这一个算法速度提高了50倍,Broad研究所的业务流量在使用FPGA之后提高了1.2倍。
在Friebe分享的两个实例中,FPGA都扮演了加速器的角色。与ASSP/ASIC专用加速器相比,FPGA更加灵活,更适合网络、存储和计算领域的定制或变化的工作负载。
FPGA可以跟CPU进行协作,来打造一个旁路加速的功能。也就是说,CPU可以把大量的数据一次性地通过PE的方式发送给FPGA,由FPGA处理完之后再发回给CPU。数据中心和云端对于这种实时的非常低延迟的处理要求响应速度越来越快。
另一方面,由于FPGA的I/O非常灵活,可以直接网络或者相关的接口去对接。在微软的Brainwave项目里,就是直接把数据输入到FPGA进行加速或者实现一个非常低延迟的响应。
图:FPGA用做在线或旁路加速
Friebe表示,在数据中心和云的基础设施里面,不管是公有云还是私有云,我们都看到同样的需求,就是利用FPGA带来的性能提升。还有混合云的情况,如果本来是在私有云上有这个需求,比如处理能力需要有所增加,Intel的方案可以实现无缝的从私有云到公有云的迁移,反向迁移也可以实现。在中国,Intel一直和开放数据中心委员会合作,从它成立之初就担任了这个委员会的技术顾问。在最新的Scorpio3.0版本里,已经把FPGA纳入其中。
为了开发人员更轻松的使用FPGA,Intel近日推出了面向Intel至强CPU和FPGA的加速堆栈。下图所示是一个多层架构,最下面是Intel的硬件,包括至强CPU和FPGA。Friebe告诉21ic记者,Intel创建了一个包含OPAE(开放可编程的加速引擎)在内的加速环境,这个引擎可以在低层次上提取一些相应的驱动,用户自己能够控制。
图:Intel至强CPU和FPGA的加速堆栈
无论硬件是什么,FPGA是什么类型,多少数量,对用户来说,和硬件交互永远是通过一个统一的界面交互。这种OPAE环境,其中包括一系列相关的驱动和库,都是开源的。可以把一系列来自不同来源的客户整合到一起,他可能是来自于第三方,可能来自于我们的客户,当然也可以来自Intel。对于应用开发人员来说,他们完全可以用自己习惯使用的一些行业标准和框架,包括Intel提供的SDK来开发他们的应用,与这一系列标准库去配合使用。
以将加速堆栈嵌入到数据中心或者云基础设施为例,FPGA可以被简单的看做一个计算资源,用通常的编排工具,或者是用机架进行编排。
图:在云上部署FPGA加速
在云上这个层面,能够感知数据中心里面现在有个FPGA。从用户层面,不管是在公有云还是在私有云,如果希望用到FPGA加速功能,只要简单地做一个liberal report,调一个库,发起一个请求,这个编排软件就可以直接接收请求,下送到计算模块,接下去就可以生成一个虚拟机来跑这个应用。对于最终用户,只要做一个liberal report这样的请求就可以实现这一强大的功能了。
人工智能是现在的大热门,展望未来,它的网络拓扑、数据类型,未来都会不断变化,像人工智能这样的应用场景,FPGA将大有可为,因为它能够很好地对未来进行兼容,当新的需求出现了,情况发生变化了,可以随时对它进行再次的编程,适应新的变化。
凭借其灵活性和通用性,FPGA一方面能兼顾硬件性能,另一方面能带来软件的可编程性,能够很好的满足数据中心、云计算,乃至人工智能的在未来出现的动态需求。