第二届全球未来网络发展峰会
创新·引领·未来
谢谢组委会的邀请,我今天给大家分享的题目是FPGA加速未来网络,这个题目有点大,这是物联网的峰会,当时组委会邀请我的时候,你能不能来讲一个讲座,我当时正在考虑FPGA跟网络的关系。我今天给大家的内容主要是三部分,一个是FPGA在未来网络中的应用和发展趋势,面临的问题及思考。我做了20年的网络的研究,也用FPGA做了20年的网络系统,我觉得有很多问题需要思考。
未来网络我认为很重要的特点就是技术发展越来越快,新的协议和新的处理机制不断涌现,传统基于ASIC的实现很难满足技术快速发展的需求,因为它的周期是24个月。现在如果我定一个芯片是两年以后的事情,两年中处理机制会发展的很快。我们知道ASIC不行了,现在越来越多的网络功能现在已经在端系统上已经软件实现了,软件性能肯定是有所欠缺的。因为现场可编程的,能不能用FPGA做网络功能,它和CPO相比,它在处理的性能和灵活性方面是一个很好的折中,因此我认为未来网络功能实现的很好选择。
早在2001年,我们查到最早的文献就是用FPGA来做网络功能,华盛顿大学2001年写的论文,怎么样用FPGA实现高性能路由器和防火墙功能,实现原型系统。这个课题组工作做得非常好在2005、2006年今年刚提出的时候,搭建今年的节点是最初的方案,后面经过真正的部署,它失败了。
在2001年我们国内还有一件事情,国防科大和大唐电信基于FPGA,研制成功我国第一台具有自主知识产权的核心路由器,2002年完成了入网测试,上午张教授说做V6是做得非常好。但是这个项目实际上后来产业化失败了,原因有多种,主要原因是因为和我们合作的大唐电信业务调整要做3G把部门裁掉了,还有一个很重要的原因是FPGA的能力是非常低的,内部没有嵌入,虽然可以都有编程,但是我们可以发挥的空间很少,资源有限,速度比较慢,所以这个失败了。2002我们用网络处理器做各种各样的路由器,从今天来看,FPGA在网络中运用有了一个新的机遇,一方面就是FPGA的规模,现在已经达到了颠覆性的规模,里面可以嵌入很多高性能的接口。这个右边的图,大家应该都看过,是在白皮书里面的,相当于FPGA在网络中的应用又有了新的动力和技术,因为(英文)可以把流量引导了FPGA,所以用FPGA可以进行各种各样网络功能加速的处理,以前实际上是不行的,你必须在通路里面,否则运用不到这个数据。右边这个图,我们的一种说法就是说没有什么网络功能是一颗FPGA实现不了的,如果有那么这个功能用CPO也实现不了,因为功能太复杂了。因为FPGA它可以把流量导出来,现在用(英文)加速网络功能应该是一个很好的机遇,所以研究也特别多,这些年用大量的FPGA实现网络功能。那么它实现网络总共有两个重要的有点,第一个是能够取得较高的可以预期的性能,这个可以预期是十分关键,如果我通过这个仿真达到了一定的频率的话,在工作的时候,因为它的模型不是(英文),不是存储程序的模型,它是高度的定型的,所以它是所见即所得。它可以释放更多的CPU资源用于租户的应用计算,提升运营商收益。
它的CPO一个核是非常的值钱,如果我的做的话大量的核被(英文)占用了,就是我这个数据中就卖不到钱了。这是第二个有点,我认为FPGA要加速未来网络,我认为有三个方面。最成熟的一个方面就是智能网卡,也是大家目前能够看得到的微软在它的数据中心里面,以及用大容量的(英文)做了网卡,已经部署了很多,像去年FPGA的里面已经讲了加速,今年4月份又有一个(英文)做的网卡,这个FPGA有三个好处,第一个好处是处理性能和链路速率匹配,越来越快,第二个是释放CPU的资源,第三个是比较关键的随着SR-IOV为的使用,因此这种交换智能在现在的网卡上实现,现在微软已经成为部署了。像Mellanox这个公司,可能很多同仁不一定熟悉,它主要是做高端的交换和网络接口设备的解决方案,很多集群是用它做的网卡实现,它在它商用的网卡上面,除了他自己的芯片,还加了一颗(英文),作为商用的产品出售,所以FPGA用在智能网卡里面和ASIC相配合,已经成为趋势,而且得到了应用。
第二个是已经出现的,新应用的方式,已经有出厂公司,比如说加拿大的Corsa出厂公司,好像是2013年成立的,它实际上是用高性能的(英文)直接做路由器100G的防火墙,就是不要ASIC了。
它的首席技术官说了这样的话,由于FPGA的规模颠覆性很高,我们突然有了一个可现场编程的编排,这就类似于在所有书籍,用羽毛笔的时代中发明了造纸术。大家知道ASIC,它除了有24个月的开发周期以外,如果你的芯片生产出来,如果没有几十万颗或者上百万颗的出货量,你平均的成品是很高的,有可能是直接使用。
第三个就是在学术界提出了基于FPGA的NFV实现思路,NFV由FPGA制造商,IP提供商和系统集成商建立NFV生态链,提升系统构建的灵活性。
在FPGA里面,实现编排实现这样一种思路,由FPGA的制造商、提供商完全一个新的产业链做到新的NFV的方式,这仅仅出现在论文上,工业界还没有任何的响应。下面是对主要问题的思考,这个首先是一个很有趣的现象,微软在云数据中心里面实现(英文)交换,同样在论文上就一个作者很罕见的,我和微软没有任何联系只是从纸面上看,多的32个作者都是做FPGA开发的,因为大家都说FPGA开发困难,目前我们实现的几种方式看,CPU是用(英文),NPU用得比较少,基本上专业的人员,我们接触不到。FPGA是用(英文)编程的,ASIC提出了(英文)更简单了。最复杂的是FPGA的编程,它实际上是很多人都不愿意用的,因为它是一个非(英文)的模型。
你脑袋有这个概念以后,你才能写出一个(英文)语句,编译调试时间很长,第二个是它的偏编译程序很长,但是IP界一个费的过程,可能要几个小时,所以它的开发可能比较困难,时间长,同时考虑性能和面积的约束,我们在非诺挪伊曼编程模型,编译调试时间长。
我们要区分两种不同的加速需求,一种是网络功能的加速,一种是应用的加速,包括我们华为,实际上更多的是应用的加速,我们不能把这两种加速混合在一起。网络的加速比如说DPI的加速,加密解密,这些功能属于基础设施里面。它的数量是有限的,是可数的,做来做就这么多,而应用的加速是不可数的,太多了,我们知道的人工智能,智能计算等等。
这种应用是无穷无尽的,它们是不一样的,而对(英文)质量要求也不同,因为网络功能加速是对网络基础设施加速,它对基础设施的竞争力,它的性能怎么样?功耗怎是是密切相关的,它是需要专业人员来编,这个数据中心的运营商,它需要组织队伍和专业的人员来做这个事情,应用的加速一般来说都是应用的人员,比如我是做气象的,做什么的来编写程序。所以说它可能编程的人员不一样而且肯定会有几十倍的提高,没有人纠结是不是做到了极致。而且它的速率并不是很平凡的,协议也不是每天都有新的协议,而应用的加速是比较平缓的,所以他们采用的方式都是不一样的。它的工作量并不是很多,这个运营商有能力去聘请有能力的人来做这件事情。
第二个观点是要提升Verilog代码的可重用性,开源是进行标准制定和协调,保证系统互联互通性和兼容性,提升技术成熟度的有效手段,开源促进代码重用。下面介绍我们相关的工作,如果时间到了主持人提醒我一下。
我们的工作,实际上我做了20年的FPGA,最近的十年我做的事情是把FPGA做成开元、开放,我们受到的启发就是斯坦福大学的NET-FPGA,大概十年前很火,有三分之一都提到了EeT-FPGA,还有很多做的在使用这个NET-FPGA。
我们学校的性质和很多学校不一样,我们做了这么多东西,我们能不能类似也做一个NET-FPGA的东西,让大家来用,2009年我们就有这样的想法,起一个名字叫(英文),8个接口就是很简单NET-FPGA,我们做了很多外归的逻辑,现在叫(英文),与用户无关的我们都做好了怎么减缓难度我们做了各种各样的研究,怎么分层、怎么这个抽象?是我们发展的历程,2009年我们做了FPGA24就是交换芯片加连接的产品,我们第一个用户是香港理工,它拿我们这个做各种各样的测量,2011年发表了测量的论文,用我们做的实验,觉得挺好,觉得高速的数据上可以编程实现,后来就是2011年我们觉得很有意思我们开了一次大会,大概60多个单位搞了(英文)宣传这个品牌,最好的是什么?我们在(英文),这是最好的宣传,在2008您是(英文),我们能不能到多论多做一个(英文),后来干脆把2010年的长文,它是做仿真的,我们直接实现了。同时能显示仿真的结果有什么区别,最后也是在那年在(英文)进行了(英文),后来2008年我们做成小的,后来有了网站在我们的教学里面也使用了,我自己开了一门课,国内是独一无二的,专门用硬件系统做路由器,对标斯坦福的那门课,后来不断发展,包括我们出了书有网站,每年都会开一次会,和互联网的年会都会开一次会,然后推广我们的用户,还有一些实验的案例和视频。我们和清华搭了一个(英文)和中国电信搭了一个试验网,这是我们做(英文)一直做到2015年,发现很多问题代码质量层出不齐,缺少CPU互动的模型。
2016年又开启了开源的项目FAST,努力按照开元的项目区做,FAST就是交换平台。它实际上就是在扩我们做了很多的数据通路的优化,在用户提供了很多的(英文),然后它的处理模型右上角有不同的,它们会走不同的模块进行处理。所以我们这个模型就是右下角实际上有一个固定的流水线,但在流水线可以动态部署的软件上面去,这我们处理的一个模型,这个就不详细介绍了。通过配置下面的表,很容易扩充新的功能,这是我们处理的模型,我们提供了API各种各样的开源的事例,2016年我们开始做FAST,我们首先在长沙开了一个FAST的工作会议,我们展示了我们的架构,完全开源的一个交换机的模型。请了很多工业界和学术界的人士参加,我们推出了一个完全开源的一个平台,成立了专业服务的公司,我们在当年的计算机大会上进行了展览,我们不断推动这个事情,我们的公众号、网站,我们微信抢红包的案例,怎么实现交换,在很多的单位进行的运用,我们也在做(英文)。我们今年进一步用(英文)实现的功能,比较有知识产权的东西进一步开源,希望能够吸引更多的人来参加。现在在工业界已经向716研究所,在工业界的项目已经开始用代码,我们也在不断推出新的设备。
典型的应用,LISPX路由器实现,很容易实现(英文)的这个路由器。黄色的是根据需求增加的、修改的模块。
然后我们可以做一个(英文)反攻击的网关,我们可以很容易通过编程实现扩展。在工业界我们用时间出触发以太网交换机,我们有很多模块进行规范,做了很多开源的代码。现在我们正在开展的工作是什么,一个是用(英文)加速的网络平台,那么我们bro完全是用软件做的,我们用bro做一个流管理。第二个是IEEE1588时间同步的数据中心传输优化,这是在2014年有一个论文,我们在重现它的工作,就是如果某个端系统,都是预先调度好的,中间的设备就可以(英文),就可以降低它的复杂性。第三个我们用FPGA怎么实现(英文)的那种加速,现在我们的一些团队,也在做这方面的研究。
还有一方面的研究,我们在基于国产的CPU和FPGA的网络系统开发,实际上我们一直是在美国处罚(音)的过程中,一直笼罩在美国的处罚政策之下,我们在做自主的方面,我们实际上在国内做得比较早。
有一天像我们这样,研究升大学计算机都不讲了,我觉得这个自主还是很重要的,当然我们的学生也基于自主平台开发一些网络的(英文),我们参加大赛也获得了国内的FPGA企业的奖。推动国产FPGA在未来网络的应用,谢谢大家。