欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

FPGA 云服务:30 倍效率,4 成费用,创业公司拥抱 AI 的计算选择

程序员文章站 2022-04-21 20:43:56
由腾讯云基础产品中心、腾讯架构平台部组成的腾讯云FPGA联合团队在这里向读者分享,传统FPGA存在什么样的问题、FPGA与其他计算硬件平台的区别是什么?腾讯云FPGA的价值和应用案例有哪些?...

由腾讯云基础产品中心、腾讯架构平台部组成的腾讯云FPGA联合团队在这里向读者分享,传统FPGA存在什么样的问题、FPGA与其他计算硬件平台的区别是什么?腾讯云FPGA的价值和应用案例有哪些?

FPGA诞生至今已有30余年,此前主要应用于大型互联网和科技公司,但是并没有被普及应用。1月20日,腾讯云推出国内首款高性能异构计算基础设施——FPGA云服务器,将以云服务方式将大型公司才能长期支付使用的FPGA普及到更多企业,企业只需支付相当于通用CPU约40%的费用,性能可提升至通用CPU服务器的30倍以上。

行业背景

随着AI这股热潮的发展,业界对人工智能发展的热情逐渐高涨,人工智能也成为了未来发展的趋势。中小型企业也期望搭上人工智能这辆列车。FPGA能够从底层开始变革人工智能的设计逻辑,推动全行业在人工智能领域的创新步伐。

不过,过去中小企业部署FPGA面临诸多问题:FPGA硬件成本高、灵活性差、一次性采购投入大,需要高昂的费用和巨大精力进行FPGA的定制和采购,FPGA硬件交易价格不透明,为保障服务稳定需高额的运维IT成本,并需配备相应的硬件工程师和软件工程师。

同时企业接下来还会面临FPGA芯片更新换代带来的资源闲置流转问题。虽然FPGA知识产权(FPGAIP,FPGAIntellectualProperty)提供了业务所需的硬件加速功能,但研发周期长,研发投入和风险高,令诸多企业望而却步。

 

FPGA是什么

人工智能包括三个要素:算法,计算和数据。人工智能算法目前最主流的是深度学习。计算所对应的硬件平台有:CPU、GPU、FPGA、ASIC。由于移动互联网的到来,用户每天产生大量的数据被入口应用收集:搜索(百度)、通讯(QQ、微信)。我们的QQ、微信业务,用户每天产生的图片数量都是数亿级别,如果我们把这些用户产生的数据看成矿藏的话,计算所对应的硬件平台看成挖掘机,挖掘机的挖掘效率就是各个计算硬件平台对比的标准。

通用处理器(CPU)可提供高度的灵活性和易用性,可以低廉的价格生产,并且适用于多种用途和重复使用。但性能相对缺乏效率。

专用集成电路(ASIC)可提供高性能,但代价是不够灵活且生产难度更大。这些电路专用于某特定的应用程序,并且生产起来价格昂贵且耗时。

从灵活性而言,介于CPU和ASIC两者之间的处理器,使用比较多的异构处理器目前有两个,一个是GPU,一个是FPGA。

FPGA属于一类更通用的可编程逻辑设备(PLD),FPGA既能提供集成电路的性能优势,又具备CPU可重新配置的灵活性。简单来说,FPGA是一种可重新配置的「通用集成电路」。

GPU的灵活性是介于FPGA与CPU之间。GPU的核心数量一般是CPU的成百上千倍,计算能力要比CPU多出几个数量级,也更适合进行并行计算。但是如果计算里面有大量的分支,或者算法的数据前后存在依赖关系,使得算法无法并行运行,则GPU的性能优势会被大大减弱。

相比GPU,FPGA的可操控粒度更小,具备更高的灵活度和算法适应性。FPGA能够简单地通过使用触发器(FF)来实现顺序逻辑,并通过使用查找表(LUT)来实现组合逻辑。当算法需要并行计算能力时,可以将大部分的逻辑资源都用来做计算,达到更高的计算效率;当算法需要更多的控制流程时,可以将大部分的逻辑资源都用来做控制。(实际的FPGA内部也存在大量的硬核来完成固定的功能)。正是基于FPGA资源的高可控度,可以带来算法实现时的灵活度。

FPGA全称「可编辑门阵列」(FieldProgrammableGateArray),其基本原理是在FPGA芯片内集成大量的数字电路基本门电路以及存储器,而用户可以通过烧写FPGA配置文件来来定义这些门电路以及存储器之间的连线。这种烧入不是一次性的,即用户今天可以把FPGA配置成一个图像编解码器,明天可以编辑配置文件把同一个FPGA配置成一个音频编解码器,这个特性可以极大地提高数据中心弹性服务能力。所以说在FPGA可以快速实现为深度学习算法开发的芯片架构,而且成本比设计的专用芯片(ASIC)要便宜,当然性能也没有专用芯片(ASIC)强。ASIC是一锤子买卖,设计出来要是发现哪里不对基本就没机会改了,但是FPGA可以通过重新配置来不停地试错知道获得最佳方案,所以用FPGA开发的风险也远远小于ASIC。

FPGA 云服务:30 倍效率,4 成费用,创业公司拥抱 AI 的计算选择

 

腾讯云FPGA的行业价值

腾讯云带来的革命性进展是:将FPGA部署时间从数月缩短到数分钟,企业可按需付费使用FPGA,极大降低FPGA的使用成本,实现高性能FPGA硬件加速处理。企业可以通过FPGA云服务器进行FPGA硬件编程,可将性能提升至通用CPU服务器的30倍以上。同时腾讯云率先在国内提供第三方FPGA知识产权市场,通过腾讯云服务市场,FPGA开发者和使用者可以更高效地交易。

长期以来,FPGA行业内的提供者和使用者一直缺乏交易平台和信用保证,导致交易环节冗长,很难达成交易。腾讯云服务市场搭建一个简单可靠的FPGA知识产权交易市常

对于FPGA使用者而言,可以在腾讯云服务市场购买已开发并验证好的FPGA知识产权功能,可节约长达数月的FPGA研发周期,同时采用按需使用付费的模式,能最大化地节省硬件投入成本。

而FPGA开发者可以通过使用腾讯云FPGA的开发框架,显著提升研发效率,更专注于核心功能开发,将图像处理功能、深度学习功能等已有的成熟FPGA知识产权通过简单封装适配,集成并投放到腾讯云服务市场,开放给FPGA使用者使用,分摊FPGA知识产权的研发成本。

 

FPGA应用案例

FPGA应用案例一

·项目背景:

随着移动互联网的发展,基于用户社交平台的腾讯每天用户上传的图片越来越庞大,公司目前用于图片转码的业务主要有QQ相册、微信及其他业务。图片格式中有JPEG格式、WEBP格式等,WEBP图片格式比JPEG图片格式存储空间小30%。如果落地存储采用WEBP格式替代JPEG格式,可以减少三分之一存储空间;而传输分发用WEBP格式,还可以降低传输流量,从而提升用户的图片下载体验。而采用WEBP的问题在于WEBP压缩计算复杂度是JPEG压缩的10倍以上,采用CPU进行WEBP转码成本很高,导致很难在业务中全面推广。为了增强图片转码能力,我们使用FPGA对图片转码进行加速。

·项目结果:

完成JPEG格式图片转成WEBP格式图片,测试图片大小为853x640,FPGA处理延时相比CPU降低20倍,FPGA处理性能是CPU机器的6倍,FPGA机型单位成本是CPU机型的1/3。

表1.FPGA和CPU的计算性能对比

FPGA 云服务:30 倍效率,4 成费用,创业公司拥抱 AI 的计算选择

 

•FPGA应用案例二

·项目背景:

传统上,Google、百度等搜索引擎公司以LogisticRegression(LR)作为预估模型。早在2012年开始,百度开始尝试将DNN算法作用于搜索广告,并在2013年5月就开始服务于百度搜索广告系统。近年来异军突起的今日头条在技术上也使用了DNN算法,提高新闻的点击率。但是DNN算法对系统的计算量明显增大,如果还是用CPU进行计算,无法满足系统的延时和吞吐率要求。

DNN算法模型为17*200*20*1的4层模型,要求4000个样本的DNN计算时延要小于5ms。如果用CPU计算,B6(CPUE5-2620X2)机器的计算时延为120.55ms*,无法满足要求(计算时间见表2)。因此,我们用FPGA对DNN计算进行加速,使4000个样本的DNN计算时延小于5ms。

·项目结果:

我们在使用50%的FPGA资源的情况下,将4000个样本的DNN计算时延减小为1.2ms,吞吐率达到6000集合/s(4000个样本为1个集合),不仅达到了系统对低延时的要求,而且极大地提高了系统的吞吐能力,处理延时降低100倍,处理吞吐率提高5倍,成本是CPU机型的1/5。说明FPGA在DNN计算加速上有较明显的优势。

表2.FPGA和CPU的计算性能对比

FPGA 云服务:30 倍效率,4 成费用,创业公司拥抱 AI 的计算选择

 

FPGA应用案例三

·项目背景:

深度学习(DL)近年来在语音识别、图片分类和识别、推荐算法等领域发挥了越来越大的作用。深度学习基于深度神经网络理论,用在图片分类的神经网络是其中的一个分支:卷积神经网络(CNN)。随着移动互联网的发展,基于用户社交平台的腾讯每天用户上传的图片越来越庞大,并且增长速度很快。为了增强图片检测的处理能力,降低图片检测成本,我们使用FPGA对CNN计算进行加速。

·项目结果:

FPGA完成CNN算法的Alexnet模型,FPGA处理性能是CPU机器的4倍,FPGA机型单位成本是CPU机型的1/3。

 

小结

当前AI火爆,得益于FPGA的高密度计算能力以及低功耗的特性,FPGA率先在深度学习在线预测方向(广告推荐、图片识别、语音识别等)得到了较大规模的部署。

用户也常常将FPGA与GPU进行对比,GPU的易编程性、高吞吐与FPGA的低功耗、易部署等特性也各有千秋。相较于GPU以及ASIC,FPGA的低延时以及可编程性也是其核心竞争能力。

使用腾讯云FPGA云服务,你只需单击几下即可在几分钟内轻松获取并部署你的FPGA计算实例。你可以在FPGA实例上编程,为你的应用程序创建自定义硬件加速。我们为你提供可重编程的环境,可以在FPGA实例上多次编程,而无需重新设计硬件,让你能更加专注于业务发展。