打印
[大数据]

面对云计算,FPGA何去何从?

[复制链接]
1837|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lvroubaozi|  楼主 | 2018-3-1 09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lvroubaozi 于 2018-3-1 09:20 编辑


面对云计算,FPGA何去何从?

FPGA,大家已经很熟悉了,近些年得到了广泛的应用和发展,在不同行业和领域都发挥着自己独特的作用。相比于其他各种中央处理器相互竞争、相互取代,FPGA一直都在另一个维度追逐自己的梦想,堪称独行者。因为相比于其他处理器的冯诺依曼架构,FPGA好像是一张白纸,以无形胜有型。但是目前很火的云计算里面FPGA的身影并不多,相比其他处理器,FPGA有什么特点呢?未来FPGA在云计算中应该如何发挥自己的优势呢?我们来分析一下。

首先我们来看一下FPGA有哪些自己的优势。

对于工业用户来说,早年最熟悉的莫过于DSP,不论什么应用,首先想到的解决方案就是DSP,因为其优秀的计算能力。目前高级的DSP已经可以有8核,同时主频都在1GHz以上了,而FPGA的主频离DSP真的是差太多了,但是相比DSP的架构,FPGA的程序架构完全是由用户自己设计的,这样的话,对于很多并行计算的任务,如果用DSP去完成,任然是顺序执行,或者最多也就是8核并行执行,而用FPGA去实现,无论有多少的并行任务,只要FPGA资源够用,全部都可以并行执行,这就大大提升了任务的执行速度,而且提升的量级是DSP永远无法追赶的。而且现在的FPGA内部都集成了很多的浮点DSP计算单元,因此对于高精度浮点运算也完全不惧。

再来看看FPGA和GPU的比较。相比于GPU的计算能力,FPGA确实还是差一些。但是除去这一劣势,与GPU相比的话,FPGA又有一些其他优势,比如说延迟以及功耗。因为对于一些复杂的、多级处理的任务、FPGA的灵活性可以将程序根据需要设计成不同的不流水线、不同的程序结构,不同的处理单元、每个单元的功能都可以不同。另外由于结构差异使得GPU在功耗方面与FPGA无法相比。

以上FPGA的特点ASIC芯片都有,但是ASIC芯片无法做到像FPGA一样根据需要修改程序。云服务器的任务来自不同的客户,任务灵活多变,从这一点是上讲,ASIC就可以被淘汰了。

FPGA相比于其他处理器还有一个重要优势是数据吞吐。对于CPU或者GPU来说,首先需要从网卡或者其他接口接收数据。而我们可以直接从FPGA扩展一个或多个高速网络接口或者其他的高速接口,这样需要处理的数据可以直接到达处理器,无需经过绕路了。

基于以上特点FPGA的很多优势其实正是云计算所需要的,但是基于FPGA以上这些特点,未来FPGA在云计算中可以发挥怎样的作用呢?很多大公司其实在几年前的就已经开始了在这方面的探索,Intel、微软、亚马逊等,国内BAT也已经开始了这方面尝试。

微软把 FPGA 部署在网卡和交换机之间,通过虚拟化技术,FPGA对每个虚拟机虚拟出一块网卡,虚拟机通过 SR-IOV直接访问这块虚拟网卡。通过这种方式将交换机的虚拟功能改由FPGA来承载。

而Intel则是通过收购altera,将altera的FPGA和自己的CPU深度结合,未来Intel的CPU和FPGA将实现高速直接通信,通过这种方式将CPU的任务直接加载给FPGA,从而大大提升数据中心的处理能力。

国内方面,阿里云已经在自己的云服务器中提供了FPGA加速服务,从网站介绍来看,其加速卡采用的是Intel 的A10加速卡方案,目前可以提供OpenCL平台的硬件加速。腾讯云采用的则是Xilinx的FPGA,其FPGA未来会支持C/C++、OpenCL、Verilog/VHDL 等开发语言。这些服务目前都属于内测阶段。百度云的FPGA加速服务推出是最早的,采用的是xilinx的FPGA,目前来看也是发展最完善的,未来应该也会提供Intel的FPGA方案。

当然,既然是在云服务器中的FPGA加速服务,必须涉及到的就是虚拟化,这样才能满足多用户的需求。我们虽然看不到BAT服务器目前在FPGA虚拟化方面的实现如何,但是可以预见虚拟化是必然的一个选择,否则云服务器的规模成本优势将会大打折扣。这样遇到的一个问题就是FPGA虚拟化并不容易实现及使用。试想一下,同一个FPGA内,两个不同的用户在同时使用各自的区域并且互不干扰。这虽然在技术上可以实现,但是BAT服务器目前是否有这些部署,我们还需进一步了解。

除了虚拟化,目前FPGA在云计算中应用有一个很大的挑战就是FPGA的编程难度要比GPU、CPU难很多、而且开发周期长,程序模块化差,当然目前的FPGA可以用很多高级语言去设计比,如HLS、OpenCL等,但其执行效率肯定就要比用Verilog直接开发低不少,这样的话FPGA与GPU相比是否还有功耗优势就不一定了。这样也会影响FPGA加速服务的性能。

有了服务,用在何处是另一个问题,也许BAT也没有特别的想清楚FPGA加速到底用在何处,目前提到的应用也只有深度学习、压缩算法等,还没有什么实际落地的应用。这一探索任务落到了目前很多传统基于FPGA做开发的公司身上,他们已经在BAT服务器中开始测试FPGA加速功能。隔着遥远的网线使用着也许是国外某个深山中的一颗FPGA,意味着做现场控制已经不现实了,这意味着未来的应用来自于FPGA的传统市场比例肯定会比较小,目前来看最快的有可能是某些公司发现之前用GPU实现的功能用FPGA实现更加的划算了,同时研究发现研发投入可以接受,那么可能会转到FPGA加速。

总结,FPGA在云计算中的优势是显而易见的,但是怎样才能找到一种高效、经济的方式将这种优势体现则是更加重要的一个因素。






相关帖子

沙发
louhou| | 2018-3-8 15:38 | 只看该作者
并行是电路的天然属性。
CPU微架构里的电路也有并行部分,只是有了串行顺序执行的高级语言以后,CPU返回的结果是串行执行。
FPGA是直接生成电路,电路可以有多个输入,同时输入多个数据多路并行执行。
云计算中,FPGA必然会扛起大数据并行计算的大梁。

使用特权

评论回复
板凳
quickman| | 2018-3-8 16:59 | 只看该作者
这个不影响FPGA的使用和推广吧。

使用特权

评论回复
地板
lvroubaozi|  楼主 | 2018-3-9 08:47 | 只看该作者
quickman 发表于 2018-3-8 16:59
这个不影响FPGA的使用和推广吧。

不影响。fpga在云计算里可以发挥不小的作用

使用特权

评论回复
5
arrowdavid| | 2018-3-10 15:35 | 只看该作者
大数据很被关注 期待更多分享

使用特权

评论回复
6
renzheshengui| | 2018-6-20 13:06 | 只看该作者
楼主分析的头头是道

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

30

主题

73

帖子

1

粉丝