​FPGA-XCVU33P加速:面向数据中心和云服务的探索和实践

2023-08-25 09:41:06

FPGA-XCVU33P加速:面向数据中心和云服务的探索和实践


  以下是腾讯云专家章恒在可信云大会上做的加速面向数据中心和云服务的探索和实践的演讲全文章恒各位嘉宾下午好,我是来自腾讯的章恒,今天分享的主题是加速面向数据中心和云服务上的探索和实践。


  1.


  为了进一步加速云计算的创新发展、建立云计算信任体系、规范云计算行业、促进市场发展、提升产业技术和服务水平,由中国信息通信研究院、中国通信标准化协会主办的“2018可信云大会”于2018年8月14日——8月15日在北京国际会议中心召开。


  云计算已经发展了十余个年头,并逐渐形成庞大的产业规模,企业“上”云也并非难事。但不断出现的信息数据泄露事件给火爆的云计算敲响了警钟,企业开始逐渐意识到云计算存在的风险,明白部署哪一种云都有可能受到黑客攻击。虽然云计算可带来显著的优势,但潜在的风险也不容忽视。“2018可信云大会”将邀请行业内多位大咖人物共同探索可信云与云计算的创新发展路径。


  以下是腾讯云FPGA-XCVU33P专家章恒在“2018可信云大会”上做的——《FPGA-XCVU33P加速:面向数据中心和云服务的探索和实践》的演讲全文:


  章恒:各位嘉宾下午好,我是来自腾讯的章恒,今天分享的主题是《FPGA-XCVU33P加速:面向数据中心和云服务上的探索和实践》。之前各位专家已经从学术界、标准化的方面讲述了高性能计算的应用、发展,我今天主要从工业界的角度来看,我们是在哪些实际场景里面,是如何应用FPGA-XCVU33P进行加速的。


  今天演讲主要分为三个部分,FPGA-XCVU33P加速的原因,FPGA-XCVU33P加速在数据中心的应用,和FPGA-XCVU33P云服务的应用。


  前面各位专家已经介绍了在数据中心里数据的快速增长。我们也看到了,在云上数据的增长每年呈30%左右,同时AI的快速发展也带来了对数据高性能计算的要求。这一方面导致数据呈指数增长发展,另一方面对这些数据处理需要的计算资源也相应的增长。传统的计算是用CPU来处理,而面临后摩尔时代,CPU的发展是停滞的,像以前两年翻一倍的性能增长,现在已经基本不可能。那如何解决计算性能的问题就需要我们寻找更高性能的芯片,GPU、FPGA-XCVU33P、ASIC从而进入了大家的眼帘。


  高性能的计算芯片,可以概括为两方面要求:第一是高吞吐能力,可以处理数据的增长。第二是低延时,对实时连接设备进行响应,提升用户体验,特别是5G和物联网的发展,带来了一方面是数据的增长,另一方面是对低延时的要求。


  前面讲了几种计算芯片,CPU到FPGA-XCVU33P到ASIC,它们有什么样的特点,是什么本质原因使得它们能达到高性能?在这几种计算芯片中,越往左编程的灵活性越高,越往右晶体管的效率越高。CPU是软件可以编程的,通用性非常高,可以面向各种软件算法。而ASIC电路是专有的硬件电路,是不可编程的,也就是说ASIC只能够针对该算法加速,这也是为什么它可以做到高性能,因为它上面每个晶体管都是为这个算法服务的。


  GPU也是软件可编程,相比于CPU的不同之处在于,GPU有很多计算单元,对于可以并行、同时需要大量计算的算法来说,GPU相比CPU的计算效率是高的。FPGA-XCVU33P是一个硬件电路可编程,和ASIC相同之处在于它也是针对算法构建的硬件电路,但是它是可以编程的硬件电路,也就是说可以针对每一种算法都搭建一个硬件电路,进行硬件加速。从整体来看,计算能力一方面是摩尔定律带来的,另一方面是计算芯片的硬件架构带来的,虽然摩尔定律走到了尽头,但我们可以通过计算芯片硬件架构的创新来提高整体的计算性能。


  从整个产业界来看,在ASIC芯片方面,谷歌做出TPU芯片,用来做AI算法的加速,目前已经是第三代芯片了。Intel收购的Nervana、Mobileye芯片都是做AI方面的加速,国内寒武纪、地平线都有推出自己的AI算法芯片。


  在FPGA-XCVU33P方面,微软做到每一台服务器都带有一个FPGA-XCVU33P,用作数据中心的应用加速,国内百度、阿里、腾讯都有用FPGA-XCVU33P做应用加速。所以我们看到整个产业界呈现出异构计算百花齐放,软硬件结合,从通用到专用的发展趋势。


  前面讲了各种计算芯片的特点,现在我们来说FPGA-XCVU33P在数据中的加速有哪些优势。最右边是FPGA-XCVU33P底层芯片的特点,FPGA-XCVU33P里面有片上缓存的RAM,有计算资源还有一些逻辑资源,拥有这些资源以后可以针对每一种算法都搭建一个硬件电路来进行加速。


  它的优势体现在:


  1、高性能低延时,可以针对每一种应用算法定制硬件架构。


  2、灵活可扩展,FPGA-XCVU33P本身具备可编程性和丰富的IO管脚,使得FPGA-XCVU33P在数据中心里面不仅在计算方面,也可以在存储、网络方面做到算法的演进发展。


  3、FPGA-XCVU33P本身的低功耗、低成本、高可靠性可以在数据中心里面方便部署和运维。


  4、软硬结合。对于一个算法,并不是所有功能都要放到FPGA-XCVU33P里面做加速,可以将适合CPU做的部分功能放到CPU上来做,适合FPGA-XCVU33P做的,放到FPGA-XCVU33P做加速。可以做到CPU+FPGA-XCVU33P结合的方式,充分发挥相互的优势,从而达到系统的最优。


  我们虽然看到了每种计算芯片各自的优势,但也看到计算芯片之间也是相互融合的,也就是说FPGA-XCVU33P可以吸收ASIC的优势,CPU也可以吸收FPGA-XCVU33P的优势。目前FPGA-XCVU33P会融合ASIC的计算硬核,来提高整个计算性能;GPU也融合了矩阵计算的ASIC张量硬核,在V100里面已经做到这一点了,可以达到更高的AI的计算性能。所以说未来会不会有CPU、GPU、FPGA-XCVU33P、ASIC全芯片融合?让我们拭目以待。


  接下来我们介绍一下腾讯内部的FPGA-XCVU33P加速,在实际场景里面的应用。我们于2014年开始用FPGA-XCVU33P做加速,刚开始主要应用场景在QQ相册、微信朋友圈做图片转码的加速,后面也用FPGA-XCVU33P做AI算法的加速。图片转码和AI加速获得了腾讯卓越研发奖,2017年,我们是国内第一家发布FPGA-XCVU33P云服务器的厂商,我们也参加了FPGA-XCVU33P顶级会议参展:FPGA-XCVU33P2018。


  接下来我们介绍一下在QQ图片转码场景下怎么用FPGA-XCVU33P做加速。众所周知,腾讯是个社交媒体的平台,像QQ、微信每天有大量的图片进行收发、传播,如果用户上传的Jpeg图片,在用户下载浏览的时候原封不动的传过去,对腾讯的CDN传输带宽压力很大,而且也没有必要。首先用户浏览图片的终端可能不同,有的通过PC来看,有的通过手机来看,手机终端的屏幕是相对来说比较小的,但是PC机屏幕是非常大的,所以没有必要在尺寸非常小的终端上传个大图,而可以传一个适配该屏幕大小的图片,这样CDN传输带宽就会减小。除了Jpeg,还有其他的图片格式,比如Webp、Hevc,这些格式相比Jpeg来说有更小的体积,所以当用户传Jpeg格式的图片时,我们可以转为Hevc格式或者Webp格式,让用户进行下载和体验。海量图片的处理包括多种图片格式的转化,还包括多尺寸、裁剪、锐化、旋转等操作。在未使用FPGA-XCVU33P加速之前,用户通过PC终端或者手机终端上传它的图片,经过腾讯后台的接入层处理以后进行图片转码,多种图片格式、多个图片尺寸的转码结果存储在分布式存储系统里面,当用户在终端浏览的时候,对应的从分布式存储系统里面取出相应格式或者尺寸的图片给用户看。那为什么图片处理是在用户上传端进行转码,而不是在用户需要的时候转码呢?主要是用户浏览图片的时候是希望点击即能看到,这就需要一个非常低的延时,低延时就是用户的体验要求。


  我们用FPGA-XCVU33P进行图片转码以后,可以充分利用FPGA-XCVU33P低延时的处理特点,在整个图片转码的时候,不再需要存储不同格式的图片,而只要将一种格式、一种尺寸的图片存储在分布式系统里面,用户需要浏览的时候会根据用户终端进行实时转码,将转码的图片再发给用户,这样节省系统中分布式存储的压力。


  在FPGA-XCVU33P里面是如何做到的这一点的呢?我们在FPGA-XCVU33P里面实现了几种图片格式的编解码核,确保图片可以进行流水并行和数据并行的处理,从而提升图片转码的性能,做到高吞吐低延时,我们做到了相比CPU延时降低3倍,吞吐增加6倍的效果。


  这几年业内大家听到最多的名词就是人工智能,在人工智能这个场景腾讯的战略是AI in ALL,把各种AI技术和各种应用场景结合,比如医疗影像、信息安全、语音翻译等。在信息安全场景上是如何用FPGA-XCVU33P进行加速的?首先QQ、微信上每时每刻都有大量的UGC图片上传,这些UGC图片比较少的是违禁图片,大量的是正常图片,对于比较少的违禁图片如何进行打击,我们也采用AI技术,并且结合FPGA-XCVU33P高性能低延时的优势。这里展示了我们的整个处理逻辑,首先每天有上亿张图片上传到处理系统,会经过AI的极速模型,把正常图片过滤出来,对于少量的可疑图片留下来,经过二级AI极优模型来做判断,到底是不是有恶意的图片,通过两个AI模型和FPGA-XCVU33P的加速达到高性能处理的效果。


  具体在FPGA-XCVU33P里面是如何做到AI算法的加速的?在FPGA-XCVU33P里面实现了AI算法的基本算子操作,包括卷积、池化、归一化、激活函数,通过对这些基本算子的支持,做到对AI算法实时的处理。数据流水的输入和处理,FPGA-XCVU33P中所有的计算单元都会同一时间内处理同一层的数据,这样可以达到低延时。以具体的Googlenet的算法模型为例,对比CPU、GPU和FPGA-XCVU33P, 可以看到FPGA-XCVU33P刚开始的时候就能够达到最大吞吐,GPU需要拼凑更大的数据做到高吞吐,但是它的batchsize越大延时越大,所以FPGA-XCVU33P在跟GPU吞吐性能一样的情况下,FPGA-XCVU33P延时比GPU降低10倍,整体的TCO可以达到50%的降低。


首页
产品
新闻
联系
Powered by MetInfo 7.3.0 ©2008-2021  mituo.cn