智慧云中的FPGA

发布时间:2017-06-28  

china0513-624x468

来源:内容来自StarryHeavensAbove ,作者 唐杉,谢谢。

在Microsoft Build 2017大会上,微软Azure云计算平台CTO Mark Russinovich做了一个名为 “Inside Microsoft’s FPGA-Based Configurable Cloud”的演讲,介绍了Azure平台中使用FPGA的情况(大家可以点击文末的阅读原文收看视频);另外,在Amazon的“Amazon EC2 F1 Instances”网站,有一个Webinar视频,介绍AWS的FPGA服务。本文将结合这两个讲座展开讨论,以下分别简称MS和AWS。

china0513-624x468

从需求层面来看,云端智能对数据处理有了更高的要求,体现在巨大的规模,低时延和高吞吐率几个方面。而从这几个角度来说,FPGA都有自己独特的优势。

china0513-624x468

AWS在云端部署FPGA所针对的应用主要包括:Real Time Video Processing,Financial Analysis, Genomic Research, Big Data Search and Analytics, and Seurity。这里虽然没有专门提到AI和Deep Learning,但这些应用实际上也都和AI技术有关。而他们预期实现的目标如下:

china0513-624x468

FPGA背景知识

FPGA全称是“可编辑门阵列”(Field Programmable Gate Array),其基本原理是在芯片内集成大量的数字电路基本门电路,存储器以及互连线资源,而用户可以通过对FPGA进行“编程”(烧写配置文件)来定义这些门电路的功能以及模块之间的连线。这种“编程”不是一次性的,你可以把FPGA设计成一个编解码器,只要更改配置文件,就可以变成一个CPU,这也是所谓的re-Configurable的概念。当然,FPGA在给我们提供了随意实现硬件电路的灵活性的同时,也要求设计者具有硬件设计的知识和能力。这一点和CPU,GPU的软件编程方法有很大的差别,或者说是有更高的应用门槛。

目前主要的FPGA芯片厂商是Xilinx和Intel(Altera),AWS主要使用Xilinx的FPGA,MS则使用Intel的FPGA。在具体看FPGA的内部结构之前,我们还是通过对比来看看它的特点。

china0513-624x468

china0513-624x468

其实最近这种对比很多,我之前的文章也提到过。MS把CPU,GPU,FPGA和ASIC放在Flexibility VS Efficiency的角度进行对比,这个也是我们经常使用的方法。再次强调,灵活性(通用性)一定意味着效率的损失,反之亦然。

另外,在MS的图中可以看出,他们认为FPGA主要还是用在Evaluation(或者我们经常说的Inference)。而有趣的是,他们认为ASIC方案在Training和Evaluation中都还是“under investigation”,好像把Google的TPU给忘了。

china0513-624x468

AWS给出了另外一个视角的比较,CPU为了实现最大的灵活和通用,芯片中的很大一部分芯片面积用来提供控制功能(也包括复杂的存储架构,比如Cache);而在GPU当中,用作运算的芯片面积比例大大提高,能够支持大规模的并行处理;而到了FPGA,已经没有预先定义的指令集概念,也没有确定的数据位宽。这些你都可以根据应用来自己设计。你可以设计一个只支持几条指令的处理器;也可以只设计数据通道和简单的控制逻辑,根本不用指令。

下图来自MS的讲座,对比了CPU和FPGA进行数据处理的特点。

china0513-624x468

CPU可以看作是一种时间计算模型,指令顺序进入,每条指令处理一定的数据。FPGA可以看作是空间计算模型,大量数据可以并行的进行处理。Deep Learning的处理,比如CNN的卷积运算,就是非常适合空间计算模型的例子。这一点我在之前的文章“ ”中已有介绍。下面我们具体看看FPGA的内部结构。

FPGA内部结构

FPGA中几个比较重要的基本模块包括(按照Xilinx的说法):

CLB(Configurable Logic Block):FPGA最基本的组成单元,可以实现基本的组合逻辑和时序电路。其中,LUT(Lookup Tables)是实现组合逻辑的部分,可以实现n个输入的任意组合逻辑运算(不同型号的FPGA有所不同,下图的例子中为6个输入)。而在CLB的输出位置,还有一个寄存器,提供时序电路的功能。

DSP Slice:是比CLB粒度更粗的运算单元,直接实现乘法,累加等功能。它比较类似与我们在DSP处理器中使用的MAC单元,如下图所示:

china0513-624x468

此外,一般FPGA中还提供片上Memory模块(Block RAM,UltraRAM),各种高速接口,IP和很多辅助电路。根据应用需求不同,有的型号的FPGA本身也是一个SoC,还集成了处理器核(比如ARM),甚至视频编解码等功能。

下表中列出的Xilinx Virtex UltraScale+ FPGA系列的具体参数。后面要介绍的AWS F1 instance用的就是VU9P。

china0513-624x468

在这里,我们观察CLB Flip-Flops,CLB LUT和DSP Slices的数量,以及memory的数量,基本就可以了解该FPGA的规模,也就是在这个FPGA上可以实现多大规模的数字电路。

在云端部署FPGA

首先,作为加速功能,FPGA需要配合Host CPU来工作。比如在下图中,一个应用中有一个滤波器功能,需要大量的运算,比较合适放到FPGA来处理;而其它部分功能,主要和控制相关,则放在CPU来运行。

china0513-624x468

由于FPGA应用往往都需要支持很大的数据吞吐量,这对于Memory带宽和I/O互连带宽要求很高。如果数据传输的带宽受限,则FPGA提供的巨大的并行计算能力根本发挥不了作用。在云端部署FPGA的另一个重要挑战是如何把FPGA的运算能力融合到云端的大规模弹性计算架构当中。

下面我们就分别看看MS和AWS的FPGA部署情况。值得注意的是,目前MS的Azure中的FPGA主要还是内部使用,并没有作为一项公有的服务;而AWS则已经提供了EC2 F1 实例(instance)的FPGA服务了。

MS Azure Catapult V2架构

我们先看看MS的Catapult V2架构,如下图:

china0513-624x468

在一块Catapult V2的板卡上,有一颗Altera Stratix FPGA和本地的DRAM,这块卡上有三个和外部连接的接口,一个PCIe,两个QSFP。这种架构中,FPGA和WCS Server Blade的连接非常灵活,同时也支持很大的吞吐率。FPGA可以支持对网络应用(从NIC到Switch的channel),存储应用(CPU到Switch的channel)以及运算应用(CPU和FPGA)的加速。而这种架构也具有高度的伸缩性,如下图所示。

china0513-624x468

连接在一起的FPGA可以构成一个独立的运算层。多个FPGA可以组合在一起实现不同的加速功能,比如Deep neural network,Web search ranking,SQL,SDN offload等等。

MS还提出一个HW Microservices的概念:“A hardware-only self-contained service that can be distributed and accessed from across the datacenter compute fabric”。使用这个Microservices有如下优势:

china0513-624x468

总的来说,就是有更多的灵活性,可以更有效的分享和利用FPGA资源。而针对DNN应用,MS也提出了一个专门的架构。首先,在FPGA上提供DNN Engine,包括了Neural FU(数据通道)和Instruction Decoder&control(控制面功能)。而多个FPGA可以部署为一个大规模的HW microservices,实现分布式处理。

china0513-624x468

而相应的,MS正在研发一套“编译”工具,可以把在常见的Deep Learning Framework中训练好的model自动部署到一个或多个FPGA(也包括GPU,CPU)中。

china0513-624x468

不过,这些看起来不错的设计和功能我们现在还用不了,只能等MS准备好公开发布的时候才能使用。所以,Mark Russinovich最后说,“We look forward to eventually making this available to you, a major step toward democratizing AI with the power of FPGA”。希望这个时间不会太远吧。

AWS F1 Instance

相对而言,AWS的FPGA云服务离我们更近。它的规格如下图所示:

china0513-624x468

其中f1.16xlarge由8个FPGA组成,配合64个vCPUs,接近1T的Memory,规模相当大。其中每个FPGA连接4个DDR。FPGA之间则有两种互连方式,第一种是FPGA Link,这是一种双向环状连接,用于支持Streaming方式串联多个FPGA的应用;另一种是FPGA Direct,这是点到点的PCIe链路,可以从一个FPGA连接到任意一个其它FPGA。另外,为了简化FPGA I/O的设计,AWS还提出FPGA Shell的概念。如下图所示:

china0513-624x468

这里Shell的概念我看的不是很清楚,感觉就是把FPGA的I/O封装起来了。

FPGA的内部逻辑通过AXI4接口和Shell连接,Shell提供对外的PCIe和一个DDR接口;而前面提到的FPGA Link(FPGA间互连)和其它三个DDR接口好像还是在Core Logic中的。如果我看的不对,还请指正。

AWS F1的开发流程和使用的工具如下图所示:

china0513-624x468

china0513-624x468

这个流程和我们常见的FPGA开发流程类似。不过还是需要使用FPGA Developer AMI(AWS提供的工具image)和Hardware Developer Kit(HDK),最终需要生成Amazon FPGA Image(AFI)。FPGA设计和实现工具使用的就是Xilinx自家的工具Vivado。

目前,AWS似乎并没提供专门针对Deep Learning Inferece的工具和硬件架构(比如前面MS提到的DNN Engine和相应的软件工具)。因此,对于做相关工作的同学来说,还是必须自己设计在相应的软硬件系统。

阿里云和腾讯云

最后,我们看看国内的玩家。目前阿里云和腾讯云也都推出了FPGA服务,不过都在申请试用阶段。其中,阿里云的F1实例已经有比较清楚的Spec和工具链的介绍:

FPGA 计算型实例规格族(f1)

规格族特点:
  • 采用 INTEL ARRIA 10 GX 1150 计算卡

  • CPU 和 Memory 配比为 1:7.5

  • 处理器:2.5 GHz 主频的 Intel Xeon E5-2682 v4 (Broadwell)

  • 高性能本地 SSD 盘存储

  • 实例网络性能与计算规格对应(规格越高网络性能强)

  • 适用场景:

    • 适用于深度学习推理

    • 基因组学研究、金融分析

    • 实时视频处理及安全等计算工作负载

china0513-624x468

其工具链使用Altera FPGA自家的工具,方法和AWS类似。而腾讯云公开的信息比较少,这里就不再讨论了。

今天是《半导体行业观察》为您分享的第1319期内容,欢迎关注。

摩尔邀请您加入精英微信群

关注微信公众号 半导体行业观察,后台回复关键词获取更多内容

回复 雄心 ,看《苹果的芯片帝国雄心》

回复 张汝京 ,看《中国半导体教父张汝京的“三落三起”》

回复 国产 ,看《国产手机崛起背后的最大受益者》

回复 ASR ,看《ASR收购Marvell MBU背后:一段有关RDA的爱恨情仇》

回复 IC ,看《一文看懂 IC 产业结构及竞争关系》

回复 展会 ,看《2017最新半导体展会会议日历》

回复 投稿 ,看《如何成为“半导体行业观察”的一员 》

回复 搜索 ,还能轻松找到其他你感兴趣的文章!

china0513-624x468

【关于转载】:转载仅限全文转载并完整保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“半导体行业观察icbank”微信公众号。谢谢合作!

china0513-624x468

【关于征稿】:欢迎半导体精英投稿(包括翻译、整理),一经录用将署名刊登,红包重谢!签约成为专栏专家更有千元稿费!来稿邮件请在标题标明“投稿”,并在稿件中注明姓名、电话、单位和职务。欢迎添加我的个人微信号 MooreRen001或发邮件到 jyzhang@moore.ren

china0513-624x468

责任编辑:mooreelite
文章来源于:半导体行业观察    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    展趋势 2.FPGA在人工智能中的应用 FPGA在人工智能中中的优势、应用场景及应用案例 3.基于FPGA 的深度学习实现的优化 基于FPGA的深......
    集》,目前已经覆盖7000余家企业客户,并成功向市场投放多台HR垂直行业领域AI Agent端侧一体机产品,以量产为目标试点端侧大模型产品落地应用。 近日,在2024世界人工智能大会(WAIC......
    囊括用于自动驾驶和安全辅助的推理系统和用于交通地图映射的边缘计算,这两类促进了用于边缘计算的GPU、ASIC和用于云计算的CPU和FPGA的发展。 表4:人工智能驱动的应用案例......
    大数据、高性能应用案例分享 | prodesign加速卡使用了Samtec NovaRay® 极高密度阵列;【摘要/前言】 ChatGPT 最近受到的欢迎和关注凸显了人工智能......
    是一种将芯片和光学器件封装在一起的新型封装技术,具有更高的集成度和更好的信号传输性能,将有望为人工智能芯片的发展提供更好的支持。本场峰会将就CPO技术在人工智能领域的应用展开深入讨论,分享CPO技术在人工智能领域的最新进展和应用案例......
    据分析解决方案、推动IT架构转型、提供创新云计算服务的最佳实践。峰会还呈现了20余场应用专题深度解析和从学到做的AI实战课程,以及20余家合作伙伴的应用案例展示,共同展现了英特尔携手产业生态合作伙伴,持续拓展智能应用......
    的顺利研发也使人工智能如虎添翼,可以预见未来必将是人工智能的天下。FPGA在人工智能系统的前端部分也是得到了广泛的应用,例如自动驾驶,需要对行驶路线、红绿灯、路障和行驶速度等各种交通信号进行采集,需要......
    可扩展性,可处理从边缘到云端的用例,并可以在未来支持新的推理模型。我们利用这款架构实现了性能飞跃,为各种使用案例带来了美好的生成式人工智能前景,涵盖从成本敏感的边缘设备到高效的云计算,以及两者之间的所有应用......
    NeuPro-M NPU进行无缝开发和运行高度优化的应用,充分利用和传统人工智能的功能。本文引用地址: 副总裁兼视觉业务部门总经理Ran Snir 评论道:“基于transformer的网......
    其可以无限次编程的特点,FPGA具有开发时间短、延迟低、能耗低的优点,被广泛应用在视频图像处理、通信、数字系统模数转换、嵌入式系统等行业。 由于FPGA的可编程性,其在人工智能行业也有一定的应用,虽然单块FPGA的计......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>