本文目录:
- 1、FPGA, CPU, GPU, ASIC区别,FPGA为何这么牛(二)
- 2、FPGA是干什么用的?
- 3、置身事内:腾讯的造芯之路
- 4、fpga 是什么??做什么的???什么平台???一定采纳
FPGA, CPU, GPU, ASIC区别,FPGA为何这么牛(二)
姓名:任佩怡 学号:19020100348 学院:电子工程学院
转自:;request_id=162849450116780357280058biz_id=0utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-29-106649227.first_rank_v2_pc_rank_v29utm_term=FPGAspm=1018.2226.3001.4187
【嵌牛导读】对于专业人士来说,FPGA并不陌生,它一直都被广泛使用。但是,大部分人还不是太了解它,对它有很多疑问——FPGA到底是什么?为什么要使用它?相比CPU、GPU、ASIC(专用芯片),FPGA有什么特点?……
【嵌牛鼻子】FPGA, CPU, GPU, ASIC
【嵌牛提问】FPGA, CPU, GPU, ASIC的区别及FPGA的过人之处
【嵌牛正文】
二、微软部署 FPGA 的实践
2016 年 9 月,《连线》(Wired)杂志发表了一篇《微软把未来押注在 FPGA 上》的报道 [3],讲述了 Catapult 项目的前世今生。
紧接着,Catapult 项目的老大 Doug Burger 在 Ignite 2016 大会上与微软 CEO Satya Nadella 一起做了 FPGA 加速机器翻译的演示。
演示的总计算能力是 103 万 T ops,也就是 1.03 Exa-op,相当于 10 万块顶级 GPU 计算卡。一块 FPGA(加上板上内存和网络接口等)的功耗大约是 30 W,仅增加了整个服务器功耗的十分之一。
Ignite 2016 上的演示:每秒 1 Exa-op (10^18) 的机器翻译运算能力
微软部署 FPGA 并不是一帆风顺的。 对于把 FPGA 部署在哪里这个问题,大致经历了三个阶段:
专用的 FPGA 集群,里面插满了 FPGA
每台机器一块 FPGA,采用专用网络连接
每台机器一块 FPGA,放在网卡和交换机之间,共享服务器网络
第一个阶段是专用集群,里面插满了 FPGA 加速卡,就像是一个 FPGA 组成的超级计算机。
在半导体行业,只要批量足够大,芯片的价格都将趋向于沙子的价格。
当然现在数据中心领域用两家公司 FPGA 的都有。 只要规模足够大,对 FPGA 价格过高的担心将是不必要的。
像超级计算机一样的部署方式,意味着有专门的一个机柜全是上图这种装了 24 块 FPGA 的服务器(下图左)。
这种方式有几个问题:
不同机器的 FPGA 之间无法通信,FPGA 所能处理问题的规模受限于单台服务器上 FPGA 的数量;
数据中心里的其他机器要把任务集中发到这个机柜,构成了 in-cast,网络延迟很难做到稳定。
FPGA 专用机柜构成了单点故障,只要它一坏,谁都别想加速了;
装 FPGA 的服务器是定制的,冷却、运维都增加了麻烦。
一种不那么激进的方式是,在每个机柜一面部署一台装满 FPGA 的服务器(上图中)。这避免了上述问题 (2)(3),但 (1)(4) 仍然没有解决。
第二个阶段,为了 保证数据中心中服务器的同构性 (这也是不用 ASIC 的一个重要原因),在每台服务器上插一块 FPGA(上图右),FPGA 之间通过专用网络连接。这也是微软在 ISCA'14 上所发表论文采用的部署方式。
红框是放 FPGA 的位置。
FPGA 采用 Stratix V D5,有 172K 个 ALM,2014 个 M20K 片上内存,1590 个 DSP。板上有一个 8GB DDR3-1333 内存,一个 PCIe Gen3 x8 接口,两个 10 Gbps 网络接口。一个机柜之间的 FPGA 采用专用网络连接,一组 10G 网口 8 个一组连成环,另一组 10G 网口 6 个一组连成环,不使用交换机。
这样一个 1632 台服务器、1632 块 FPGA 的集群,把 Bing 的搜索结果排序整体性能提高到了 2 倍(换言之,节省了一半的服务器)。
如下图所示,每 8 块 FPGA 穿成一条链,中间用前面提到的 10 Gbps 专用网线来通信。这 8 块 FPGA 各司其职,有的负责从文档中提取特征(黄色),有的负责计算特征表达式(绿色),有的负责计算文档的得分(红色)。
FPGA 在 Bing 的部署取得了成功,Catapult 项目继续在公司内扩张。
微软内部拥有最多服务器的,就是云计算 Azure 部门了。
Azure 部门急需解决的问题是网络和存储虚拟化带来的开销。Azure 把虚拟机卖给客户,需要给虚拟机的网络提供防火墙、负载均衡、隧道、NAT 等网络功能。由于云存储的物理存储跟计算节点是分离的,需要把数据从存储节点通过网络搬运过来,还要进行压缩和加密。
在 1 Gbps 网络和机械硬盘的时代,网络和存储虚拟化的 CPU 开销不值一提。随着网络和存储速度越来越快,网络上了 40 Gbps,一块 SSD 的吞吐量也能到 1 GB/s,CPU 渐渐变得力不从心了。
例如 Hyper-V 虚拟交换机只能处理 25 Gbps 左右的流量,不能达到 40 Gbps 线速,当数据包较小时性能更差;AES-256 加密和 SHA-1 签名,每个 CPU 核只能处理 100 MB/s,只是一块 SSD 吞吐量的十分之一。
为了加速网络功能和存储虚拟化,微软把 FPGA 部署在网卡和交换机之间 。
如下图所示,每个 FPGA 有一个 4 GB DDR3-1333 DRAM,通过两个 PCIe Gen3 x8 接口连接到一个 CPU socket(物理上是 PCIe Gen3 x16 接口,因为 FPGA 没有 x16 的硬核,逻辑上当成两个 x8 的用)。物理网卡(NIC)就是普通的 40 Gbps 网卡,仅用于宿主机与网络之间的通信。
FPGA(SmartNIC)对每个虚拟机虚拟出一块网卡,虚拟机通过 SR-IOV 直接访问这块虚拟网卡。原本在虚拟交换机里面的数据平面功能被移到了 FPGA 里面,虚拟机收发网络数据包均不需要 CPU 参与,也不需要经过物理网卡(NIC)。这样不仅节约了可用于出售的 CPU 资源,还 提高了虚拟机的网络性能(25 Gbps),把同数据中心虚拟机之间的网络延迟降低了 10 倍。
这就是微软部署 FPGA 的第三代架构,也是目前「每台服务器一块 FPGA」大规模部署所采用的架构。
FPGA 复用主机网络的初心是加速网络和存储,更深远的影响则是把 FPGA 之间的网络连接扩展到了整个数据中心的规模 ,做成真正 cloud-scale 的「超级计算机」。
第二代架构里面,FPGA 之间的网络连接局限于同一个机架以内,FPGA 之间专网互联的方式很难扩大规模,通过 CPU 来转发则开销太高。
第三代架构中,FPGA 之间通过 LTL (Lightweight Transport Layer) 通信。同一机架内延迟在 3 微秒以内;8 微秒以内可达 1000 块 FPGA;20 微秒可达同一数据中心的所有 FPGA。第二代架构尽管 8 台机器以内的延迟更低,但只能通过网络访问 48 块 FPGA。为了支持大范围的 FPGA 间通信,第三代架构中的 LTL 还支持 PFC 流控协议和 DCQCN 拥塞控制协议。
通过高带宽、低延迟的网络互联的 FPGA 构成了介于网络交换层和传统服务器软件之间的数据中心加速平面。
除了每台提供云服务的服务器都需要的网络和存储虚拟化加速,FPGA 上的剩余资源还可以用来加速 Bing 搜索、深度神经网络(DNN)等计算任务。
对很多类型的应用,随着分布式 FPGA 加速器的规模扩大,其性能提升是超线性的。
例如 CNN inference,当只用一块 FPGA 的时候,由于片上内存不足以放下整个模型,需要不断访问 DRAM 中的模型权重,性能瓶颈在 DRAM;如果 FPGA 的数量足够多,每块 FPGA 负责模型中的一层或者一层中的若干个特征,使得模型权重完全载入片上内存,就消除了 DRAM 的性能瓶颈,完全发挥出 FPGA 计算单元的性能。
当然,拆得过细也会导致通信开销的增加。 把任务拆分到分布式 FPGA 集群的关键在于平衡计算和通信。
在 MICRO'16 会议上,微软提出了 Hardware as a Service (HaaS) 的概念,即把硬件作为一种可调度的云服务,使得 FPGA 服务的集中调度、管理和大规模部署成为可能。
从第一代装满 FPGA 的专用服务器集群,到第二代通过专网连接的 FPGA 加速卡集群,到目前复用数据中心网络的大规模 FPGA 云,三个思想指导我们的路线:
硬件和软件不是相互取代的关系,而是合作的关系;
必须具备灵活性,即用软件定义的能力;
必须具备可扩放性(scalability)。
FPGA是干什么用的?
FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA设计不是简单的芯片研究,主要是利用 FPGA 的模式进行其他行业产品的设计。 与 ASIC 不同,FPGA在通信行业的应用比较广泛。
通过对全球FPGA产品市场以及相关供应商的分析,结合当前我国的实际情况以及国内领先的FPGA产品可以发现相关技术在未来的发展方向,对我国科技水平的全面提高具有非常重要的推动作用。
扩展资料:
工作原理
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
置身事内:腾讯的造芯之路
事后想来,芯片验证工程师Lynda觉得进腾讯有点“草率”了。
作为一个在半导体行业工作过多年的资深工程师,Lynda第一次看到腾讯发布芯片岗位需求时,略感到一丝惊讶。2019年1月她带着好奇加入这家互联网大厂,准备撸起袖子,大干一场。
面试时,主导芯片设计工作的Henry给她打过一剂预防针:“我们是从零开始做芯片。”Lynda试图代入鹅厂一贯的低调来理解这句话,但随即便在第一天上班时被跟同事的对话震到了:
-“我们的仿真工具呢?” -“没有,还在谈。”
-“验证环境怎么说?” -“还……没有。”
-“那……验证流程呢?-“这个……也没有。“
对于一个芯片验证工程师来说,仿真工具、验证环境、验证流程就是必备的生产力工具。Lynda想全程参与芯片研发业务,倒不怕从头开始,只不过没想到连这些必备品都能 “三无”。
当一家互联网公司投身半导体时,工具的欠缺还不是最紧要的。“造芯”不仅是业务的简单延伸,它往往意味着更复杂的产业链、更耗时的人才沉淀、以及更迥异的生态文化和技术理念。
比如芯片研发不像软件开发尚可后期不断改bug,设计问题没被前期验证发现,一旦流片就只能沦为一块“砖头”。而Lynda所担任的验证工程师,就是防止前期努力打水漂的守门员。
这个岗位的重要性不言而喻,设计工程师与验证工程师的比例在很多芯片公司会达到1:3。但Lynda入职后环顾四周,发现不仅自己只有一个并肩作战的同事,连验证的代码也一行都没有。
这时候,Lynda才开始明白Henry口中的“从零开始”意味着什么,以及她面临着怎样一场艰难的战役。
01
雄关如铁,出师未捷
在腾讯云副总裁、云架构平台部总经理谢明看来,“从零开始”的背后还有更多的曲折故事。
谢明所在的云架构平台部,站在腾讯各类前端应用的身后,是腾讯海量业务数据冲刷的前线,有效支撑了QQ、邮箱、微信、微云、流媒体视频等一个又一个的国民级应用。
2013年,QQ相册已经发展成腾讯最大的一个存储类业务。让用户访问相册的速度更快、体验更顺滑,成了一个很急迫的需求。转化成相应的技术问题,就是图片能否更快地转码?能否在不损画质的情况下压缩?能否以更低的成本存储?
他们反复地追问。
团队深刻地明白底层技术创新对上层应用的放大价值。软件架构上固然要永远不停歇地进行自我超越,但他们敏锐地察觉到,只有在硬件上也作出创新,才能实现更深层次的突破。
问题是:一个做软件出身的团队,怎么去做硬件?
一圈研究之后,他们决定先拿FPGA(可编程阵列逻辑)试水。跟我们平时电脑和手机里的通用芯片相比,FPGA是一种专用集成电路(ASIC),能够实现灵活的“半定制”开发。
FPGA相比起芯片容错率高,但在吞吐率、延迟、功耗和灵活性等维度上都很平衡。尤其是在处理海量数据时,FPGA相比GPU具有超低延时的显著优势,很适合用在特定的业务场景。
事实验证了这种判断。2015年,团队集中力量研发的图片编码FPGA,取得了比CPU编码和软件编码更高的压缩率和更低的延时,也帮助QQ相册很大程度上降低了存储成本。他们看到了在FPGA方向 探索 和深入的可能性。
2016年前后,由Alpha Go引爆的AI热潮更把FPGA拉入了主流视野。团队通过FPGA对深度学习模型的CNN算法进行加速后,处理性能达到通用CPU的4倍,而单位成本仅为1/3。
FPGA效果虽好,但技术门槛比较高,“如果把FPGA云化,是不是一个能够扩大应用的解决路径?”
带着这样的期待,2017年1月20日,腾讯云推出了国内首款FPGA云服务器,希望以云计算的方式,将FPGA能力推广到更多企业。
从效果上来说,在FPGA云服务器上进行FPGA硬件编程的企业,确实能将性能提升至通用CPU服务器的30倍以上,而只需支付相当于通用CPU约40%的费用。以一家著名的基因检测公司为例,传统用CPU需要检测一周的基因序列,FPGA可以压缩到数小时完成。
然而云化后的FPGA,没能如预期般迅速席卷整个行业。
一方面,FPGA毕竟是一种“半定制”的电路,许多企业还是无法独立胜任FPGA开发,需要更加上层的服务;另一方面,通用芯片成本的迅速下降,也让FPGA的性价比优势逐渐丧失。
云端商业化的受挫泼来一盆冷水,把团队的热情从巅峰一下子打到了谷底,同时也把两个问题赤裸裸地抛到整个团队的眼前:FPGA对业务的价值究竟有多大?FPGA还能继续做吗?
受此打击,团队在2018年也近乎分崩离析,人员开始集中式地离开。腾讯在“造芯”上的第一次 探索 ,画上了一个遗憾的逗号。
02
柳暗花明,“蓬莱”问世
在FPGA云服务器受挫后,腾讯需要重新思考硬件之路要怎么走下去。
在团队几乎解散的2018年,中国芯片行业迎来暖春:中美贸易摩擦给全民普及了芯片的重要性,科创板的设立为半导体企业上市开启大门,而国家资金的进场更是让大江南北一片热火朝天。
但是,对于互联网公司来说,做芯片跟做云计算、数据库、存储系统等一样,需要有具体的业务场景支撑,不能“为了做而做”。在经历过一场不算成功的 探索 后,腾讯要等待下一个真实需求带来的机会。
时间进入2019年。那是人工智能规模化应用的元年,内外部业务都提出了对AI芯片的强烈诉求。AI芯片,要不要做?
这个问题被提出来的时候,腾讯的管理层有过反对的声音,担心技术人员只是头脑发热,只是为了追逐热点。但同时,管理层也给了足够的灰度,没有明令禁止小团队级别的 探索 。
以小规模、低成本、特定应用场景的方式先行试水,成了大家的共识。
云架构平台部将第一款芯片敲定AI推理方向,取名“蓬莱”,希望这款芯片能像中国古代神话里的海外仙山一样,稳固地立于汹涌波涛之上。
这支硬件突围小分队,也被正式命名为“蓬莱实验室”。
有了FPGA 探索 时积攒的经验,蓬莱实验室对硬件编程语言已经相当熟练,也在标准接口、总线等方面积累了一些平台化的设计。然而,两者的研发要求,不可同日而语。
如果说做FPGA是搭现成的积木,那么做芯片就是直接从伐木开始来着手来制造积木。FPGA出了问题可以重新编程,而芯片只有一次流片机会,一旦出错,所有的努力便付诸东流。
此外, FPGA的资源是现成固定的,芯片的资源却是由自己定义的。一个字,就是要“抠”:用最小的资源做最大的事。
芯片架构工程师Rick用“装修”改“重建”来形容整个蓬莱项目。一开始,团队以为能把之前FPGA的技术较为简单地转成芯片。做着做着发现,以为终归只是以为——FPGA架构在芯片中能直接复用的并不多,团队只能把原来的架构整个拆掉,重写的代码量高达85%。
像DDR存储器这样的重中之重,芯片厂商通常会有专门的验证人员负责,而刚起步的蓬莱实验室没这个条件,只能靠抢时间把功课补回来。Lynda后来回忆道:“我恨不得一天有48个小时”。
2020年1月,蓬莱芯片流片完成,被合作方快递到深圳。新冠疫情刚刚在全国范围内暴发,公司已经开启集体远程办公。
项目负责人Henry戴着手套取到快递,用酒精仔细消毒后,带到空空荡荡的办公楼,大开着窗户和风扇,在一片消毒水味中,他和几个同事一起开始了至关重要的点亮操作。
所谓点亮,就是给芯片上电,首先看有没有短路冒烟,接着就是测试一些基本功能。是芯片还是“砖头”,成败在此一举。
结果,芯片的时钟频率一直没出来。要知道,时钟频率是芯片的“节拍器”,没有时钟频率,芯片的不同模块等于没对好表,就无法协同工作。
是不是这块芯片的问题?实验人员换了一块芯片,依然没有信号输出。
再换一块,还是没有。现场鸦雀无声。
实验人员已经不敢动手了。有人忍不住开玩笑,是不是该回家改简历了。
但除了沮丧,大家心里更多的是疑惑。因为项目虽然人少、资源少,近乎是白手起家,但蓬莱团队从设计人员到验证人员都有信心说:每一步都做好了。到底是哪里不对呢?
在无比凝重的气氛中,他们继续放板、上电、读取信号……
第四块芯片,亮了。剩下的所有芯片,也都没问题。
真相其实很简单。28纳米工艺的芯片不良率只有3%,但偏偏随机测试的前三片都是坏片,小概率事件就恰好让他们全赶上了。这让他们把“生一胎”的紧张情绪,体验到十足。
在虚惊一场后的拍手相庆中,腾讯第一款芯片,宣告问世。
03
更上一层,“紫霄”凌云
量产后的蓬莱芯片,实战表现也不负众望,助力腾讯推出中国第一台获准进入医院临床应用的智能显微镜,实现自动识别医学图像、统计细胞数目并直接显示在视野上,性能表现完全符合设计要求。
这一扫当年FPGA云服务器项目的阴霾,说明在制造造出直面应用、性能卓越的芯片,这条路,腾讯走得通。
终端芯片蓬莱的问世,只是完成了从0到1的任务。团队已经迫不及待向要从1到N,向着大规模云端芯片进军。蓬莱实验室负责人Alex将大芯片申请立项戏称为“A轮融资”。
初试锋芒之后,团队需要向公司说明,为什么需要用更大的投入去做大规模芯片?在短期和长期能否保持领先性?如何与内外部业务结合创造价值?
腾讯这次面临的决策,要容易做得多。
首先是蓬莱实验室的成熟。通过一边行军一边成长,蓬莱实验室完成了一次次蜕变,建立起完整、严谨、规范的芯片研发体系和流程。这已经是一支具备硬核气场的“正规军”。
更重要的是,团队证明了腾讯做芯片的优势和站位。
谢明解释说,从行业来看,做芯片除了要考虑技术和工艺,最大的难点在于对芯片的“定义”。传统芯片厂商的优势在于前者,但芯片做出来之后再去匹配需求,在很多场景下真实性能是损失的。Google、腾讯这类 科技 企业的优势在于自身就是需求方,对需求的理解和洞察最深刻、最透彻。
方向没有问题,技术和工艺也没问题,腾讯高级执行副总裁、TEG(技术工程事业部)总裁卢山给予了全面支持,并通过总办争取到了更多的headcount和资金。
有了公司战略的支持,团队志气满满奔赴更大的战场。蓬莱实验室副总监Austin决定兵分两路,在AI推理和视频编解码上并行推进。
AI小分队继续做蓬莱的2.0版“紫霄”。这是《封神演义》里鸿钧老祖所居宫殿的名字。在稳固的仙山上牢筑“紫霄”,代表了新的野心:
这次,他们将目标直接定为业界第一。
紫霄所有的架构都围绕着有效算力去做。团队优化片上缓存设计,并摒弃竞品常用的GDDR6内存,采用先进的2.5D封装技术,把HBM2e内存与AI芯片合封在一起,从而把内存带宽提升了近40%。
技术迭代一日千里。紫霄立项后,业内最高性能表现又被竞品刷新。虽然紫霄的设计性能相比这个最高表现还足够“安全”,但团队还打算继续加码。
经过研究,他们在芯片内部增加了计算机视觉CV加速器以及视频编解码加速器,可创新性地大幅减小AI芯片和x86 CPU之间的交互和等待。
即便因此而增加了两个复杂的自研模块,团队仍然在计划的6个月时间里完成了从架构确定到验证以及流片的全部流程。
2021年9月10日,紫霄顺利点亮。
在图片和视频处理、自然语言处理、搜索推荐等应用场景下,这款芯片打破了制约算力发挥的瓶颈点,最终在实际业务场景性能表现达到了业界标品的2倍。
04
独立自研,“沧海”一笑
AI小分队给自己芯片取名“紫霄”,而视频编解码则取名“沧海”,颇有海天相接之意。
不同于蓬莱和紫霄主打AI,沧海是一款视频转码芯片。如果说当年QQ相册图片的转码问题是蓬莱团队做硬件的最早契机,那视频编解码小分队在这个方向上的继续 探索 ,正是完成了一次对初心的呼应。
不同的是,“沧海”的应用场景已经远超当年的范畴。
当多媒体业务从图片时代进化到音视频直播时代,天量的4K/8K超高清的数字内容如潮水一般持续冲击着云计算基础设施。每增加一个比特的数据,都会带来相应的转码算力和CDN带宽成本。
这是一道直观而严峻的数学题,而沧海小分队的解题目标也非常清晰,那就是要做一款业界最强的视频转码芯片,把压缩率发挥到极致。
好在,腾讯丰富的多媒体应用场景,以及腾讯云覆盖的众多直播互动头部客户,为沧海的研发提供了得天独厚的分析和验证条件。
团队先是推出了沧海的核心自研模块——硬件视频编码器“瑶池”,并决定在沧海完成研发之前给瑶池一次大考。
这个大考就是2020年的MSU世界编解码大赛,该大赛由莫斯科国立大学(MSU)主办,十多年来一直是全球视频压缩领域最具影响力的顶级赛事,吸引了包括英特尔、英伟达、谷歌、华为、阿里和腾讯在内的国内外知名 科技 企业参与。
结果是,瑶池实现1080P@60Hz的视频实时编码,力压群雄获得了SSIM (结构相似性)、PSNR(峰值信噪比)和VMAF(视频多方法评估融合)等各项客观指标评测第一名,以及人眼主观评价第一的好成绩,相比第二名领先了一个身位。
经此硬仗,沧海在技术上得到了充分检阅。
2022年3月5日,Derick和他带领的视频编解码小分队收到流片回来的芯片“沧海”,又正逢深圳因疫情而全面远程办公。
他们申请特批进入空空荡荡的办公楼。这情景,和两年前点亮蓬莱时何其相似。
不曾想到,点亮蓬莱时的一波三折,同样重现。克服了一些调试中的意外,在一片欢呼中,腾讯的第三款芯片、同时也是完全自主研发的第一款芯片沧海成功点亮。
化沧海为一粟。沧海最终实现以更小的数据量、更小的带宽提供相同质量的视频,压缩率相比行业最佳表现还提高了30%以上。
从蓬莱到紫霄再到沧海,从28纳米工艺到12纳米工艺,从8个人发展到100多人,从仿真工具一无所有到“天箭验证平台”正式落成,从努力跟上合作伙伴的节奏到独立做完全SOC。
两只小分队胜利会师。蓬莱团队,完成了一场“芯”路进化。
05
“100G”时代,双木参天
躬身跳进造芯大潮的,不是只有云架构平台部。
在多媒体、AI处理积极求变的同时,底层的云服务器也面临着相似的问题:当软件优化带来的性能提升无法让产品拥有区别于竞品的明显竞争力时,如何让性能突破现有天花板?
2019年,腾讯迎来云计算业务上的里程碑——云服务器规模突破了100万。腾讯云副总裁、腾讯网络平台部总经理邹贤能敏锐地观察到,随着服务器接入带宽不断提升,服务器用于网络处理的CPU资源也越来越多。
能否以更低成本的方式来实现服务器网络处理,同时还提供更高的网络性能?腾讯的网络平台部也将目光投向了软硬协同与硬件加速。
面对这样“既要、又要”的挑战,邹贤能决定给服务器做个减法:“把网络数据处理的负担从CPU卸载出来”。
“智能网卡”的想法就这样诞生了。
所谓智能网卡,一方面像普通网卡一样肩负起服务器的对外网络访问,实现不同服务器和数据中心之间的网络互联。另一方面,它额外带有CPU/FPGA/内存等智能单元,能分担一部分服务器的虚拟化计算任务,实现服务器整体网络和存储性能的加速。
换句话说,网络平台部要做的事,是要在网卡里新装一个服务器。
一开始,团队希望找到一款现成的商用板卡降低工作量。
网卡硬件负责人Hayden牵头开展方案论证和调研,但商用芯片的加速引擎不支持私有协议成为当时直面的第一大挑战,也是最大的障碍。一些著名的网卡设备商听了腾讯的要求就摇头:
“现在网卡的功能很简单,你们这个要求太复杂了,很难实现的。”
还有些直白地质疑:“网卡数量这么多,可靠性要求高,你们自己搞得定吗?”
难道智能网卡项目刚起步就要流产?
邹贤能给团队指明了方向:“既然智能网卡是云数据中心追求极致性能与成本的关键部件,如果市面上没有满足腾讯需求的产品,那我们就自己造一个。”
方向明确之后,路线也很快清晰起来:先从基于FPGA自研智能网卡起步,再开展智能网卡芯片研发。
2020年9月,腾讯第一代基于FPGA的自研智能网卡正式上线,命名为“水杉”,寄寓着团队希望产品可以像这种珍稀乔木一样适应性强、快速生长。
疫情期间各种突发需求砸来,初生的水杉没有被挑战压弯。
Hayden回忆道,一个大客户本身采用了UDP音视频协议,在属性上是“不可靠”、允许丢包的,极大地依赖网络吞吐和稳定性,却要求高并发、高质量的音视频传输效果。
水杉智能网卡迎难而上,通过大幅提升服务器的网络性能,帮助该客户完成了24小时零丢包的极限压力测试,稳定上线运行,交出了一份漂亮的答卷。
水杉投入应用后,第二代智能网卡“银杉”的研发工作也紧锣密鼓地启动,并于2021年10月正式上线。这一代智能网卡的网络端口翻了一番,达到了2*100G。
在又一颗参天大树的支撑下,腾讯云对外推出了业界首款自研第六代100G云服务器。它的计算性能提升最大220%、存储性能最大提升100%。单节点接入网络带宽相比上一代最大提升4倍,延时下降50%。
“两棵树”在网络硬件卸载上取得的巨大收益,令团队兴奋不已。
当FPGA路线逐渐逼近性能和功耗的瓶颈,网络平台部决定再一次把主动权掌握在自己手里。腾讯的第四款芯片,也是首款智能网卡芯片应运而生,它也有一个 “仙气十足”的名字——“玄灵”。
06
“玄灵”乍现,芯事未完
按照计划,这款7纳米工艺的芯片将在2022年底流片。
Hayden受命快速组建起了玄灵芯片研发团队,不断挑战多个“mission impossible”。
从性能指标来看,玄灵支持设备数量将提升到10K以上,相对商业芯片提升6倍。同时,它的性能相对商业芯片也可提升4倍,通过将原来运行在主机CPU上的虚拟化、网络/存储IO等功能卸载到芯片,可实现主机CPU的0占用。
这颗短小精悍的芯片,充分诠释了面向未来极致性能的“玄”,与面向各类业务需求灵活加速的“灵”。
目前,玄灵项目正在紧锣密鼓地进行智能网卡流片前的验证和测试,打造腾讯云下一代高性能网络基础设施;
蓬莱实验室的AI推理芯片紫霄和视频转码芯片沧海则将量产,与腾讯业务深度融合应用;
还有一些新的芯片项目也在酝酿成长,继续 探索 有需要的技术方向,丰富这一本“山海经”。
腾讯海量业务面临的全新挑战,以及云计算高速发展的必然要求,“倒逼”腾讯走上了这条造芯之路。这些从业务需求出发的芯片,必定会深入现实应用来证明自身的价值。
“我们不是无中生有、拍脑袋要去做芯片。我们一开始就知道,腾讯的需求足够大,足够我们去做这件事。”卢山说道。
从2010年起,腾讯就开始以云服务的方式对外开放自身的数字技术与连接能力,奔赴这场产业数字化转型升级的时代大潮。躬身入局,腾讯看到深度的数实融合正在引领全真互联的技术趋势。
而在腾讯之外,中国的 科技 公司们正在向创新的深水区挺进,突破瓶颈的努力显得愈发重要。无论是数实融合还是上游创新,硬 科技 的海面上一片百舸争流,它们都在 历史 的浪潮奋楫中流。
在这场大潮中置身事内,腾讯的芯事必然在星辰大海中得到回响。
fpga 是什么??做什么的???什么平台???一定采纳
FPGA由可配置逻辑块(CLB)与可编程互连相结合的网格构成。制造完成后,FPGA还可以重新编程,以满足特定的功能或应用需求。这一特性使FPGA有别于专用集成电路(ASIC)。后者是明确地为给定的目标而制定的,以后无法更改。虽然一次性可编程(OTP)FPGA是一种选择,但基于静态随机存取存储器(SRAM)的型号是最常见的,并且允许随着设计的变化而重新编程。
输入/输出焊盘、可重新编程的互连和可编程逻辑模块组成了一个现场可编程门阵列。触发器或存储器模块可用作现场可编程门阵列逻辑模块中的存储器组件。逻辑块可以执行简单到复杂的计算操作。
现场可编程门阵列和可编程只读存储器芯片有许多相似之处。FPGA可以容纳数千个门阵列,这与可编程只读存储器芯片不同,可编程只读存储器芯片仅限于几百个门阵列。现场可编程门阵列是可重新编程的,而不是ASIC,ASIC是为专业作业而开发的。
计算机用户可以使用现场可编程门阵列自定义微处理器的功能,以满足特定的个性化需求。工程师使用FPGA来创建专用集成电路。晶圆功能的缺乏使得现场可编程门阵列的生命周期更具可预测性。其他优势包括潜在的重制、比其他解决方案更快的上市时间以及简单的设计周期。
FPGA用于许多行业和市场,包括无线通信、数据中心、汽车、医疗和航空航天。
FPGA中的芯片是完全可编程的,这是一个相当大的好处。通过这种方式,它可以变成一个相当大的逻辑电路,一个遵循设计的设置,但用户也可以根据需要进行更新以进行调整。换句话说,如果创建了一个电路卡或电路板,并且FPGA是电路的一个组件,则FPGA在创建过程中被编程,但随后可以重新编程以反映任何修改。
虽然第一批FPGA是在1980年代初推出的,但直到20世纪90年代末才开始流行起来。除了Altera、赛灵思和德州仪器等少数几家企业之外,他们并不为人所知。
ASIC(专用集成电路)用于创建对于常规CPU或GPU来说过于复杂的系统,作为ASIC(专用集成电路)的替代方案。
由于它们使用户能够以更低的成本和更低的功耗生产产品,因此FPGA仍然是当今技术中的一个突出主题。在网络和网络安全等其他应用中,它们也很有帮助。将其与传统微控制器进行比较,传统微控制器无法容纳更大的设计,这是一项相当大的进步。
例如,8051微控制器采用了哈佛设计和CISC指令集。FPGA没有这些内置指令集,这给了设计人员更多的自由度。尽管FPGA经常与高端计算相关联,但消费电子行业的使用也在增加。
现场可编程门阵列芯片已经在顶级显卡中包含许多功能。然而,它们比传统的视频卡更便宜,更耗电。它们还支持许多同步流,并且具有明显更快的吞吐量。因此,基于FPGA的图形卡在游戏机中越来越频繁地使用。
Verilog和VHDL只是FPGA使用的众多不同编程语言中的两种。1984年,硬件描述语言Verilog被创建。它可用于构建系统所需的任何类型的电路,并且是FPGA的设计标准。
另一种基于状态机对FPGA进行编程的常用语言是VHDL。它与Verilog不同,因为它包含更多功能,如数据类型和信号名称,这使得创建复杂电路和提高效率变得更加简单。定义了FPGA编程的语法和语法。
FPGA如何工作?
每个FPGA制造商都有其独特的架构规范。关键组件、原则和功能包括:
1.可配置的逻辑块
现场可编程门阵列的基本构建模块是CLB。它是一个逻辑单元,可以设置或编程以执行特定任务。连接块将连接到这些构建基块。这些组件包括携带和控制逻辑、晶体管对和查找表(LUT)。它们执行设计所需的逻辑操作。
可以使用基于逻辑的多路复用器或LUT来创建CLB。基于LUT的逻辑中的模块由D触发器,查找表和2:1多路复用器组成。多路复用器选择正确的输出。
2.可编程互连
位于不同逻辑块中的逻辑单元之间的所有独特连接都存在于现场可编程门阵列的这一区域中。包含多个基本半导体开关的开关盒通常用于实现互连。这些电气可编程链路为这些可编程逻辑模块提供了路径。
不同长度的线段可以沿着布线路径找到,并由电气可编程开关连接。FPGA密度由用于布线路径的器件数量决定。FPGA的单元或输入焊盘的输出可以连接到电路中的任何其他单元或焊盘,利用对每个现场可编程门阵列至关重要的可编程互连点。
3.可编程路由
可编程路由至关重要,因为它通常占结构表面的百分之五十以上以及应用程序的关键路由延迟。可编程布线由预制线段和预配置的开关组成。通过配置正确的开关组合,功能块的任何输出都可以链接到任何输入。现场可编程门阵列路由架构有两种基本类型。
设计本质上是分层的,高级组件实例化较低级别的模块并链接其中的信号,从而为可编程门阵列提供了动力。可编程门阵列可以使用连接芯片离散部分的短线来构建这些连接,因为在设计层次结构中靠近在一起的模块之间更频繁地进行通信。FPGA的密度和性能受到路由设计的影响。
4.可编程I/O模块
接口引脚用于将逻辑模块与外部组件连接起来。现场可编程门阵列和外部电路之间的接口是IOB(输入输出模块),这是一种可编程输入和输出器件,用于满足各种电气特性下输入/输出信号的驱动和匹配需求。I/O块将路由体系结构和CLB连接到外部元素。
在封装引脚和器件的底层电路之间,输入/输出模块提供可编程的单向或双向连接。实现应用需要从头开始构建电路,因为以前的现场可编程门阵列缺乏运行任何软件的处理器。因此,FPGA可能被编程为像OR门一样简单,或者像多核处理器一样复杂。
5.片上存储器
集成在FPGA逻辑块中的FFS是FPGA系统中片上存储元件的一种形式。尽管如此,随着现场可编程门阵列逻辑容量的提高,它被用于更广泛的系统中,这些系统几乎总是需要存储器来缓冲和重用芯片上的数据。由于构建由寄存器和LUT组成的大型RAM的密度比SRAM块低100倍左右,因此还需要具有更密集的片上存储。
此外,在现场可编程门阵列上实现的应用程序的RAM要求差异大不相同。
6.数字信号处理(DSP)模块
在运输链之前,商业现场可编程门阵列系统中使用的专用算术电路是加法器。
由于需要在利用LUT和携带链的软逻辑中加入乘法器,因此产生了严重的面积和延迟损失。由于用于现场可编程门阵列的高乘法器密度信号处理和通信应用具有相当大的市场份额,设计人员开发了新颖的实现来解决软逻辑乘法器实现效率低下的问题,这称为数字信号处理或DSP。
无乘法分布式算术技术是使用基于LUT的现场可编程门阵列创建高效有限脉冲响应(FIR)滤波器设计的一种方法。乘法器是FPGA系统中作为专用电路进行强化的主要候选者,因为它们在关键应用领域的现场可编程门阵列设计中普遍存在,并且在软逻辑中实现时尺寸、延迟和功耗都降低了。
7.系统级互连
DDR内存和以太网的兴起只是FPGA容量和带宽稳步增长的几个原因。管理这些高频端口和不断增长的结构之间的数据流量是一项挑战。这种系统级链路过去是通过设置特定的FPGA逻辑和路由元件来形成软总线来建立的,这些总线在必要的端点之间完成流水线,多路复用和布线。
更宽总线是匹配这些外部接口带宽的唯一方法,因为它们以比现场可编程门阵列结构更高的频率运行。由于大量和物理上很长的总线的组合,定时闭合具有挑战性,并且通常需要对总线进行相当大的流水线处理,从而增加了资源消耗。
现场可编程门阵列的应用
FPGA在各行各业都有广泛的应用,特别是在工业物联网(IoT)领域。它的一些关键应用领域:
1.能源行业案例研究
太阳能和风能等可再生能源越来越受欢迎。它们在智能电网中是可靠的,其中法规仍在建立中。输配电(TD)变电站尤其需要高效的电力网络来实现智能电网的最佳运行。自动化需要持续监控、调节和保护电网的技术,以实现更有效的峰值需求负载管理。FPGA可以提高智能电网的性能和可扩展性,同时保持低功耗。
2.使用FPGA设计集成电路
必须首先创建此类电路的体系结构。然后,使用FPGA构建和测试原型,由于这种方法,错误是可以纠正的。一旦原型按预期执行,就会开发一个ASIC项目。这能够节省时间,因为创建集成电路可能是一项劳动密集型和复杂的操作。
此外,它还可以节省资金,因为可以使用单个FPGA来创建同一项目的大量修订版。值得注意的是,当前的张量处理单元(TPU)或加密货币矿工最初是作为FPGA开发的,直到那时它们才被生产出来。
3.汽车体验的改善
使用汽车芯片和IP实现车载信息娱乐、舒适性和便利性的解决方案。借助MicrosemiFPGA,车载原始设备制造商(OEM)和供应商可以开发创新的安全应用,如巡航控制、盲点警告和防撞。
FPGA供应商提供网络安全功能,包括信息保证、防篡改和硬件安全,以及纠错内存和低静态功耗等可靠性功能。由于其最小的泄漏和在低功耗环境中工作的能力,基于FPGA的存储可以提供低静态功耗。
4.支持实时系统
在实时系统中,当响应时间至关重要时,会使用FPGA。传统CPU的响应时间是不可预测的,因此无法准确估计一旦触发器触发,您将何时收到回复。采用实时操作系统将反应时间保持在预定范围内。
在需要快速响应时间的情况下,这是不够的。系统必须在FPGA中实现所需的方法,利用组合或顺序电路来解决这个问题并保证恒定的响应时间。一旦准备就绪,就可以使用FPGA更改这样的实时系统并将其投入生产。
5.航空航天和国防使用案例
为了满足恶劣环境的性能、可靠性和寿命要求,同时提供比传统ASIC实现更大的灵活性,工业制造公司提供了抗辐射可重构的FPGA,这些FPGA通常是空间级的。抗辐射可重构FPGA适用于处理密集型空间系统。
6.在通信和软件定义网络(SDN)中的应用
软件定义网络(SDN)和其他算法(如快速傅里叶变换(FFT))必须放入FPGA中,以便在复杂的实时环境中使用。无线电的标准组件包括用于接收和传输信号的天线,以及用于通过过滤、更改信号频率等来处理信号的网络硬件。
这种硬件无法从根本上改变它所要实现的功能。如今,此功能的很大一部分被转移到电子设备中,这通常是FPGA。模拟器件通常仅限于天线、ADC和DAC转换器。
7.数据中心和云中的FPGA
物联网(IoT)和大数据正在产生获取和处理的数据的指数级增长。这与通过 并行的多个操作的深度学习技术进行计算分析相结合,导致对低延迟,灵活和安全的计算能力的高需求。由于空间成本不断增加,无法通过添加更多服务器来解决。
由于FPGA能够加速处理,设计灵活性以及硬件对软件的安全性,数据中心世界的大门正在在很大程度上向他们敞开。
8.计算机视觉系统
在现代世界中,计算机视觉系统存在于许多小工具中。视频监控摄像机,机器人和其他设备就是这方面的例子。许多这些小工具通常需要基于FPGA的系统,以便它们能够根据人的位置,周围环境和面部识别功能,以有意义的方式与人进行行动和交互。要使用此功能,必须处理许多照片,其中大多数操作都是实时完成的,以检测物体,识别人脸等。
【FPGA服务器是什么】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: