国内首款FPGA云服务器,性能是通用CPU服务器30倍以上

2022-12-18 1513阅读

温馨提示:这篇文章已超过606天没有更新,请注意相关的内容是否还可用!

FPGA(Field Programmable Gate Array)现场可编程门阵列作为ASIC领域的半定制电路,已经出现了30年。它具有可编程器件门电路数量有限的缺点,应用场景广泛。

就在2017年1月20日,腾讯云推出了国内首个高性能异构计算基础设施——FPGA云服务,用云服务将长期以来只有大公司才能付费的FPGA服务推广到更多的企业。企业可通过FPGA云服务器进行FPGA硬件编程,性能可比通用CPU服务器提高30倍以上。同时,与已经深入人心的高性能计算的代表GPU相比,FPGA具有硬件可编程、低功耗、低时延等特点,代表着未来高性能计算的发展趋势。 -性能计算。

在深度学习的热点领域,企业也可以将FPGA用于深度学习的检测阶段,与主要用于训练阶段的GPU形成互补。FPGA还可以用于金融分析、图像和视频处理、基因组学等,性能计算领域是这类需要高效率的工业应用的最佳选择。

基于此,InfoQ采访了由腾讯云基础产品中心和腾讯架构平台部组成的腾讯云FPGA联合团队,向读者介绍了FPGA的基本原理和设计初衷、应用场景及其为行业带来的价值。

腾讯云FPGA的发展历程及背后的团队实力

随着芯片制造工艺逼近理论极限,可以预见,通用处理器(CPU)的性能提升空间将越来越有限。随着移动互联网的快速增长和数据量的快速膨胀,腾讯自身的业务也伴随着对这些数据的计算需求的快速增长。腾讯在2013年开始考虑如何解决计算需求的增长,FPGA作为可编程加速硬件在那个时候进入了大家的视野。有了解决计算需求的想法后,还需要通过实践来验证FPGA的实际能力。

对于腾讯的QQ和微信业务,用户每天产生数亿张图片。常用的图片格式有JPEG和WebP。WebP图片格式比JPEG图片格式节省30%的存储空间。为了节省存储空间,减少传输流量,提升用户的图片下载体验,通常采用WebP格式进行存储、传输和分发,图片转码带来的计算消耗需要上万台CPU机器的支持. FPGA开发的第一个切入点自然是图像转码:将JPEG图像格式转换为WebP图像格式。

在图像转码实践中,FPGA联合团队实现了FPGA处理时延比CPU低20倍,FPGA处理性能是CPU机器的6倍。团队信心。

图像转码FPGA和CPU延迟比较

FPGA和CPU在图像转码吞吐量对比

图像转码项目完成后,深度学习进入了FPGA联合团队的视野。一方面,深度学习需要密集的计算,另一方面,深度学习在未来的应用中具有巨大的商业价值。深度学习基于深度神经网络理论,而用于图像分类的神经网络是其分支之一:卷积神经网络(CNN)。该团队使用 FPGA 加速 CNN 计算并增强检测非法图像的能力。最后,在深度学习的实践中,FPGA的处理性能是CPU机器的4倍。

腾讯云FPGA项目实践的成果证明,FPGA可以为数据中心提供强大的计算能力和足够的灵活性,应对数据中心对硬件加速的挑战。经过之前的FPGA实践,FPGA联合团队积累了在数据中心使用FPGA的经验。未来将在数据中心计算、网络、存储三个方向进一步探索,重构数据中心基础设施。

云端数据中心业务日新月异,需要高性能、高弹性的底层硬件架构。因此,FPGA联合团队通过云端打通FPGA计算服务,从硬件层面加速云计算在各种场景的应用,降低企业使用门槛和成本。

FPGA特性分析

2016年3月,英特尔宣布正式停止“Tick-Tock”处理器研发模式,未来的研发周期将从两年改为三年。至此,摩尔定律对英特尔来说几乎已经失效。一方面,处理器性能不能再按照摩尔定律增长,另一方面,数据增长需要计算性能超过“摩尔定律”的增长速度。

单靠CPU无法满足高性能计算应用的性能需求,导致需求与性能之间存在差距。在芯片新材料等基础技术没有突破之前,一个有效的解决方案是采用专用协处理器的异构计算方式来提高处理性能。现有的协处理器主要包括FPGA、GPU和ASIC。FPGA由于其独特的架构,具有其他处理器无法比拟的优势。

FPGA(Field Programmable Gate Array)现场可编程门阵列可以通过软件对芯片内部的资源进行重新配置,形成具有不同功能的硬件,就像用乐高积木搭建航空母舰或变形金刚一样。因此,FPGA既具有软件的可编程性和灵活性,又具有ASIC的高吞吐量和低延迟的特点。而且FPGA由于IO丰富,也非常适合作为协议和接口转换的芯片。

FPGA在数据中心最大的特点是可以在实现高吞吐量的同时实现低延迟。FPGA内部的资源可以重新配置,因此可以很容易地进行数据并行和流水线并行,并且很容易在数据并行和流水线并行之间取得平衡。而GPU几乎只能做数据并行。

与ASIC相比,FPGA的可编程性显示出很大的优势。现在数据中心的各种算法每时每刻都在更新变化,没有足够的稳定时间让ASIC完成长期的发展。比如一个神经网络模型出来之后,就开始做成ASIC。可能还没有投产,这个神经网络模型已经换成另一个神经网络模型了。不同的是FPGA可以在不同的业务需求之间进行平衡。例如,白天用于对搜索服务进行排序的机器;当晚上请求较少时,这些FPGA可以重新配置为离线数据分析功能,提供离线数据分析服务。

此外,由于FPGA具有高速SERDES等丰富的接口,可以灵活控制实现和运行数据的粒度,非常适用于协议处理和数据格式转换。例如,FPGA可以方便地访问以太网数据,对以太网数据包进行包过滤等处理。

与 CPU、GPU 和 ASIC 的设计差异

国内首款FPGA云服务器,性能是通用CPU服务器30倍以上

处理器芯片对比

CPU/GPU属于冯诺依曼结构,任务执行需要经过取指、译码、执行、访问内存、写回等过程。CPU为了实现足够高的通用性,其指令流的控制逻辑相当复杂。GPU采用SIMD单指令多数据流并行等方式加速计算。

FPGA/ASIC在使用时,硬件功能模块是固定的,不需要分支判断等复杂的控制逻辑,内存访问次数大大减少。因此,它在能效方面可以比CPU高出1到2个数量级。

ASIC是专用芯片,是针对特定要求定制的芯片。与通用芯片相比,专用集成电路体积小、功耗低、计算效率高。芯片出货量越大,成本越低。但缺点也很明显:开发周期很长,算法是固定的,一旦算法发生变化,就可能无法复用。

国内首款FPGA云服务器,性能是通用CPU服务器30倍以上

FPGA是“软硬件一体化”架构,软件就是硬件。FPGA的基本原理是在芯片中集成大量的数字门电路和存储器。用户可以通过烧录FPGA配置文件来定义这些门电路与存储器之间的连接,进而获得不同的硬件功能。

从开发难度上看,ASIC > FPGA > GPU > CPU。目前主流的FPGA开发语言是硬件描述HDL,需要开发人员具备一定的相关技能。随着OPENCL、HLS等类C高级语言在业界的推进,FPGA的开发难度和周期也将得到提升。

FPGA部署在哪里?如何与CPU通信?

腾讯云的FPGA主要部署在数据中心的服务器中。腾讯云将 FPGA 芯片与 DDR 内存、外围电路和散热片一起设计成 PCIE 板卡。这块FPGA板安装在服务器的主板上,用户通过网络远程访问服务器,开发调试FPGA,用它来加速特定的业务。

FPGA与CPU之间的通信是通过PCIE链路进行的。DDR内存控制器和PCIE控制器集成在CPU内部。PCIE控制器、DDR控制器和DMA控制器也实现在具有可编程逻辑资源的FPGA芯片中。通信一般分为三种:

(1) 命令通道

CPU向FPGA芯片写入指令并读取状态。CPU通过PCIE直接访问FPGA芯片上挂载的内存或内部总线。

(2) 数据通道

CPU在FPGA板上读写DDR数据时,CPU通过PCIE配置FPGA芯片中的DMA控制器,输入数据的源物理地址和目的物理地址。DMA控制器控制FPGA卡上的DDR控制器和PCIE控制器,在FPGA卡上的DDR存储器和连接CPU的DDR存储器之间传输数据。

(3) 通知渠道

FPGA通过PCIE向CPU发送中断请求。CPU收到中断请求后,保存当前工作现场,然后转入中断处理程序执行。如果需要,它会关闭中断并执行中断处理程序。CPU执行完中断处理程序后,会重新打开中断,然后重新加载到之前的工作现场继续执行。

FPGA 行业当前面临的问题

在业界,微软在数据中心采用FPGA架构,亚马逊也推出了FPGA计算实例。这是否意味着整个行业都在更广泛地使用FPGA?事实上,FPGA是一个硬件芯片,不能直接使用,缺乏操作系统等系统软件支持。一直以来,FPGA行业在数据计算加速的方向上可以分为以下几个参与者:

芯片原厂:Xilinx和Altera(被Intel收购)提供FPGA芯片,直接或分销给代理商。

国内首款FPGA云服务器,性能是通用CPU服务器30倍以上

IP提供者:提供各种功能的IP,如访问DDR内存的IP、支持PCIE设备的IP、图像编解码的IP等。一些常见的通用IP由芯片原厂提供。

集成商:集成商提供硬件和软件支持。由于直接用户缺乏硬件设计和制造能力,往往期望集成商提供成熟完备的硬件,完成IP的集成,提供驱动和使用方法,方便终端用户使用。

用户:最终用户。在数据中心领域,用户的普遍目的是使用FPGA来加速计算。

在FPGA行业,原芯片厂不提供硬件板卡直接使用,这项工作由集成商完成。由于硬件板的使用量小长期免费云服务器,以及设计和生产成本的分担,硬件板的价格往往高于芯片,甚至高出十倍。

由于IP提供商担心产权泄露,他们通常不会快速向用户提供可用的可执行文件(网表文件),而是需要签署一系列的协议和法律文件,有的IP提供商甚至不提供给用户。用户测试。机会。这使得终端用户难以获得可用的硬件板卡,更难以及时获得采用最新技术芯片的硬件板卡,用户难以快速验证不同的IP,从而选择合适的IP为了他们自己的事业。此外,FPGA的开发采用硬件描述语言,缺乏软件领域广泛使用的框架概念,导致开发周期长。一般来说,

综上所述,这些问题决定了云对FPGA行业的颠覆和革命。

腾讯云FPGA平台能解决什么问题?

腾讯云FPGA平台解决了整个FPGA行业的一些问题。FPGA用户相对较少,属于一个比较封闭的圈子。FPGA开发门槛高、缺乏优质开源IP、芯片价格昂贵等问题一直为大家所诟病。

对于开发者而言,腾讯云FPGA平台提供了FPGA的底层硬件支撑平台,类似于操作系统的一些功能,简化了开发者对底层通用器件的接入,如DDR、PCIE等,让开发者更专注于业务的发展职能。

FPGA行业的IP提供商和用户缺乏开放的交易平台和信用保障机制。IP交易流程长,价格不透明,成交难。获得IP后,需要搭建硬件平台来验证IP性能。这些都严重影响了产品推向市场的过程,通常需要几个月的时间。腾讯云提供FPGA IP商城,IP开发商和IP提供商可以通过该商城免费或收费为其他客户提供FPGA IP和相应的测试程序。这些IP是基于腾讯云FPGA的标准硬件开发定制的。在云平台上即可轻松完成IP验证和测试。一个IP的交易可以从几个月缩短到一天,提高交易效率。

对于一些希望使用低延迟、高质量计算服务的小公司,可以使用FPGA云计算加速服务,无需花费大量人力进行高性能计算开发,很容易集成高性能云计算services 融入自己的网络平台,达到提升用户体验的目的。例如:低延迟图像格式转换、基于深度学习的图像分类等服务,未来类似的服务会进一步丰富。

对于学校的FPGA教学,以往学校需要为每个学生购买一块开发板。借助腾讯云平台长期免费云服务器,学校可以节省购买开发板的成本。现在只需要为每个学生申请一个FPGA云平台账号即可。就这样,同学们可以登录,直接按照demo进行学习开发。同时,腾讯云平台将为用户提供简单易学的操作指导和实验课程计划。用户所学更贴近企业的实际应用场景,能够很好地对接未来的工作需求。

此外,大容量的FPGA芯片价格相对昂贵。一个很重要的原因是FPGA芯片缺乏大规模的爆款产品,而腾讯云FPGA平台可以聚集大量客户使用腾讯标准的FPGA硬件设备,这会增加FPGA芯片的供给量,也方便芯片制造商降低成本,逐步缓解FPGA芯片昂贵的问题。

从这些可以看出,FPGA云化意义重大,可以促进整个FPGA产业的发展,给FPGA产业链各方带来利益。

FPGA在互联网业务图像转码中的应用优势

随着移动互联网的发展,用户每天上传的图片量越来越大。公司目前使用QQ相册、微信等进行图片转码业务,业务中使用的图片格式多为JPEG格式、WebP格式等,图片转码带来的计算消耗需要支持数以万计的 CPU 机器。因此,FPGA在互联网业务中的第一个应用场景就是图片转码:将JPEG图片格式转换为WebP图片格式。该项目实现了FPGA处理延迟比CPU低20倍,FPGA处理性能是CPU机器的6倍。

为了进一步提高图片的压缩率,随着HEVC高性能编码标准的发展,HEVC的I帧图片的压缩率相比之前的WebP/JPEG等编码标准有了很大的提升。HEVC的I帧图片压缩率与WebP相比大约高20-30%,与JPEG相比更是有提升,平均在50%左右。因此,从节省下载带宽、降低后台存储成本、下载图片的用户体验等角度来看,HEVC标准具有很大的优势。

使用HEVC的问题是HEVC帧压缩计算复杂度非常高,使用CPU转码的成本非常高,很难在业务上全面推广。为了增强图片转码能力,腾讯继续使用FPGA来加速图片转码。

经过测试,WebP/JPEG格式的图片已经转换为HEVC格式的图片。测试图像的大小为 1920x1080。FPGA的处理延迟比CPU低7倍。FPGA的处理性能是CPU机的10倍。FPGA模型的单位成本是CPU机器的单位成本。输入 1/3。

国内首款FPGA云服务器,性能是通用CPU服务器30倍以上

图片分类

近年来,深度学习在语音识别、图像分类与识别、推荐算法等领域发挥着越来越重要的作用。在移动互联网时代,为了增强图像检测的处理能力,降低图像检测的成本,腾讯采用FPGA加速CNN计算。

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

FPGA可以让开发者/团队更“任性”

对于外部开发者和开发团队,首先,腾讯云FPGA提供了统一的硬件平台。开发者无需关注FPGA基础架构,免去重复开发硬件平台所面临的问题和挑战,快速部署,几分钟即可部署一个全新的FPGA平台。FPGA芯片丰富的逻辑资源可以为开发者“随心所欲”实现功能提供保障。统一的平台也便于开发团队快速弹性扩展硬件平台,从而提高业务容灾的可靠性。

国内首款FPGA云服务器,性能是通用CPU服务器30倍以上

其次,腾讯云FPGA提供完备的开发环境,不需要专门人员开发驱动环境。开发语言多样化,HLS、OPENCL、RTL满足不同类型开发者的需求,降低学习开发门槛,简单易上手。

此外,腾讯云FPGA提供丰富的IP功能,不仅有大量的免费IP和付费IP服务,而且交易过程透明、安全、可靠。在加快开发者开发进度的同时,也为开发团队提供了交易自己开发的IP的平台。

最后,腾讯云FPGA提供专业的安全防护。部署在云端,您将享受与云服务器一样的基础云安全保护和高防服务。免除传统FPGA数据存储和传输安全带来的困扰。

由此可见,传统FPGA开发所面临的硬件平台稳定性、开发语言门槛高、调试周期长、驱动软件联调等问题将得到改善,开发者和开发团队可以快速从中解放出来。复杂和重复的工作。走出来,有更多的时间和精力投入到创新工作中,这将为整个技术研发氛围增添更多的创新因素,创造更多的价值。

未来FPGA的产业价值

目前,人工智能正在蓬勃发展。得益于FPGA的高密度计算能力和低功耗,在深度学习在线预测(广告推荐、图像识别、语音识别等)方向率先大规模部署FPGA。用户还经常将 FPGA 与 GPU 进行比较。GPU的易编程和高吞吐量与FPGA的低功耗和易部署也各有优势。与GPU和ASIC相比,FPGA的低时延和可编程性也是其核心竞争力。

对于行业来说,云是一种共享服务的思想。用户不是以占有的方式使用硬件和软件,而是共享和重用,从而大大降低了使用成本,提高了资源使用效率。FPGA 云服务让行业参与者获得价值:

芯片原厂:无需经过层层代理,增加成本,可通过云端提供硬件板卡复用服务。由于硬件统一采购和维护,稳定性和可靠性也大大提高。

IP提供商:IP可以放在云平台的市场上。终端用户使用时,云平台完成部署交付,用户无需接触可执行文件(网表文件),不存在产权泄露风险。这将鼓励IP提供商的服务方式,可以提供按时间计费、买断计费,甚至免费试用等,用户也可以快速验证。

设计开发:云端提供框架方法,封装常用的系统级操作(DDR内存访问、DMA、PCIE设备控制等),支持硬件描述语言,也支持OPENCL和高级语言像C一样。提供通用的驱动和调用库,不需要用户编程。对于高级用户,还可以使用OPENCL或硬件描述语言来实现自己的功能。

FPGA最初的应用场景是在通信行业,那么其高通信带宽和实时处理能力能为数据中心基础设施带来哪些变化呢?目前FPGA可以用在低延迟网络架构、网络虚拟化、高性能存储、网络安全等IDC大显身手的地方。好消息是,我们看到微软、亚马逊等同行在其公有云网络中使用FPGA进行了很多积极的尝试,腾讯云目前也在多方向积极探索和实践。

可以预见,在FPGA的帮助下,我们的数据中心将会更加绿色高效。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]