查看原文
其他

腾讯的芯事

YHQ 腾讯云 2022-06-11


事后想来,芯片验证工程师Lynda进腾讯有点“草率”了。 


“我们的仿真工具呢?”

“没有,还在谈。”


“验证环境怎么说?”

“还没有。” 


“那……验证流程呢?”

“也没有。“ 


那是2019年1月。加入腾讯,Lynda正准备撸起袖子,大干一场,却劈面遭遇“一问三没有”。


“我们是从零开始做芯片。”

面试时,主导芯片设计工作的Henry给她打过心理预防针。
 
Lynda正好想参与芯片研发的全过程,倒不怕从头开始。但她实在没料到,连仿真工具、验证环境、验证流程这些必备品都能 “三无”。
 
众所周知,芯片研发高门槛、高投入、高风险,而验证工程师就是守门员。软件开发尚可后期不断改bug,芯片如果设计问题没被前期验证发现,一旦流片,只能沦为一块“砖头”。
 
因此,很多芯片公司对设计工程师与验证工程师的人员配比是1:3。而在蓬莱实验室,Lynda只有一个并肩作战的验证同事,和一行代码都没有的验证条件。
 
这时候,Lynda才开始明白Henry口中的“从零开始”意味着什么,以及她面临着怎样一场艰难的战役。

1

一个差点解体的团队


在腾讯云副总裁、云架构平台部总经理谢明看来,芯片这场战役,腾讯“蓄谋已久、势在必行”
 
这个团队肩负着QQ等国民级应用的后台架构,站在腾讯海量业务数据冲刷的前线,深刻地明白底层技术创新对上层应用的放大价值。
 
2013年,QQ相册已经发展成腾讯最大的一个存储类业务。
 
让用户访问相册的速度更快、体验更顺滑,成了一个很急迫的需求。转化成相应的技术问题,就是图片能否更快地转码?能否在不损画质的情况下压缩?能否以更低的成本存储?
 
他们反复地追问。
 
伴随着软件架构上永无止尽的自我超越,团队敏锐地察觉到,只有在硬件上也作出创新,才能实现更深层次的突破。


一个做软件出身的团队,怎么去做硬件?

一圈研究之后,他们决定先拿FPGA(可编程阵列逻辑)试水。FPGA相比起芯片容错率高,但在吞吐率、延迟、功耗和灵活性等维度上都很平衡。尤其是在处理海量数据时,FPGA相比GPU具有超低延时的显著优势。

事实验证了这种判断。2015年,团队集中力量研发的图片编码FPGA,取得了比CPU编码和软件编码更高的压缩率和更低的延时,也帮助QQ相册很大程度上降低了存储成本。他们看到了在FPGA方向探索和深入的可能性。
 
2016年前后,由AlphaGo引爆的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开发,需要更加上层的服务;另一方面,GPU成本的迅速下降,也给FPGA造成了巨大的冲击。
 
云端商业化的受挫,把团队的热情从巅峰一下子打到了谷底,同时也把一个问题赤裸裸地抛到整个团队的眼前:FPGA对业务的价值究竟有多大?FPGA还能继续做吗?
 
受此打击,团队在2018年也近乎分崩离析,人员开始集中式地离开。

2

柳暗花明,“蓬莱”问世


时间进入2019年。那是人工智能规模化应用的元年,内外部业务都提出了对AI芯片的强烈诉求。
 
在FPGA云服务器受挫后,腾讯需要重新思考硬件之路要怎么走下去。
 
AI芯片,要不要做?
 
这个问题被提出来的时候,管理层有过反对的声音,担心技术人员只是头脑发热,只是为了追逐热点,只是看似自信的盲目自负,但也没有明令禁止小团队的探索。
 
以小规模、低成本、特定应用场景的方式先行试水,成了大家的共识。
 
云架构平台部将第一款芯片敲定AI推理方向,取名“蓬莱”,希望这款芯片能像中国古代神话里的海外仙山一样,稳固地立于汹涌波涛之上。
 
这支硬件突围小分队,也被正式命名为“蓬莱实验室”。


经历过FPGA,蓬莱实验室对硬件编程语言已经相当熟练,也在标准接口、总线等方面积累了一些平台化的设计。然而,两者的研发要求,不可同日而语。
 
如果说做FPGA是搭现成的积木,那么做芯片就是直接从原木着手来制造积木。FPGA出了问题可以重新编程,而芯片只有一次流片机会,一旦出错,付诸东流。
 
此外, FPGA的资源是现成固定的,芯片的资源却是由自己定义的。

一个字,就是要“抠”:用最小的资源做最大的事。
 
芯片架构工程师Rick用“装修”改“重建”来形容整个蓬莱项目。

一开始,团队以为能把之前FPGA的技术较为简单地转成芯片。做着做着发现,以为终归只是以为——FPGA架构在芯片中能直接复用的并不多,团队只能把原来的架构整个拆掉,重写的代码量高达85%。
 
像DDR存储器这样的重中之重,芯片厂商通常会有专门的验证人员负责,而刚起步的蓬莱实验室没这个条件,只能靠抢时间把功课补回来。
 
2020年1月,蓬莱芯片流片完成,被合作方快递到深圳。新冠疫情刚刚在全国范围内暴发,公司已经开启集体远程办公。

  ● 流片完成的蓬莱芯片被快递回深圳
 
Henry戴着手套取到快递,用酒精仔细消毒后,带到空空荡荡的办公楼,大开着窗户和风扇,和几个同事一起开始点亮操作。
 
所谓点亮,就是给芯片上电,首先看有没有短路冒烟,接着就是测试一些基本功能。

是芯片还是“砖头”,成败在此一举。

  ● 调试蓬莱芯片的时钟
 
结果,芯片的时钟频率一直没出来。要知道,时钟频率是芯片的“节拍器”,没有时钟频率,芯片的不同模块等于没对好表,就无法协同工作。
 
是不是这块芯片的问题?实验人员换了一块芯片,依然没有信号输出。
 
再换一块,还是没有。
 
现场鸦雀无声。实验人员已经不敢动手了。
 
有人忍不住开玩笑,是不是该回家改简历了?但大家心里更多的是疑惑:
 
虽然人少、资源少、白手起家,但蓬莱实验室从设计人员到验证人员,都有信心说,每一步都做好了。到底是哪里不对呢?
 
在无比凝重的气氛中,放板、上电、读取信号……
 
第四块芯片,亮了。剩下的所有芯片,也都没问题。
 
真相就是这么简单。28纳米工艺的芯片,不良率只有3%,偏偏随机测试的前三片就全赶上了,让他们把“生一胎”的紧张情绪体验到十足。
 
经历这名副其实的一波三折,腾讯第一款芯片,宣告问世。

3

更上一层,“紫霄”凌云


蓬莱芯片的实战表现也不负众望,助力腾讯推出中国第一台获准进入医院临床应用的智能显微镜,实现自动识别医学图像、统计细胞数目并直接显示在视野上,性能表现完全符合设计要求。

  ● 蓬莱芯片在智能显微镜上调试
 
高效地造出直面应用、性能卓越的芯片,这条路,腾讯走得通。
 
终端芯片蓬莱的问世,只是完成了从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倍。

4

独立自研,“沧海”一笑


2022年3月5日,Derick和他带领的视频编解码小分队收到流片回来的芯片“沧海”,又正逢深圳因疫情而全面远程办公。
 
他们申请特批进入空空荡荡的办公楼。这情景,和两年前点亮蓬莱时何其相似。

 
不曾想到,点亮蓬莱时的一波三折,同样重现。克服了一些调试中的意外,在一片欢呼中,腾讯的第三款芯片、同时也是完全自主研发的第一款芯片沧海成功点亮。
 
从蓬莱到紫霄再到沧海,从28纳米工艺到12纳米工艺,从8个人发展到100多人,从仿真工具一无所有到“天箭验证平台”正式落成,从努力跟上合作伙伴的节奏到独立做完全SOC。

蓬莱实验室,完成了一场“芯”路进化。
 
此外,在应用方向上不同于蓬莱和紫霄主打AI,沧海是一款视频转码芯片。
 
如果说QQ相册图片的转码问题是蓬莱实验室做硬件的最早契机,那沧海问世,正是完成了一次对初心的呼应。
 
多媒体业务从图片时代进化到音视频直播时代,4K/8K超高清的数字内容如潮水一般持续冲击着云计算基础设施。每增加一个比特的数据,都会带来相应的转码算力和CDN带宽成本。这是一道直观而严峻的数学题。
 
沧海小分队的目标非常清晰,那就是要做一款业界最强的视频转码芯片,把压缩率发挥到极致。
 
好在,腾讯丰富的多媒体应用场景,以及腾讯云覆盖的众多直播互动头部客户,为沧海的研发提供了得天独厚的分析和验证条件。


团队先是推出了沧海的核心自研模块——硬件视频编码器“瑶池”,并决定在沧海完成研发之前给瑶池一次大考。
 
这个大考就是2020年的MSU世界编解码大赛,由莫斯科国立大学(MSU)主办,十多年来一直是全球视频压缩领域最具影响力的顶级赛事之一,吸引了包括英特尔、英伟达、谷歌、华为、阿里和腾讯在内的国内外知名科技企业参与。
 
结果是,瑶池实现1080P@60Hz的视频实时编码,力压群雄获得了SSIM (结构相似性)、PSNR(峰值信噪比)和VMAF(视频多方法评估融合)等各项客观指标评测第一名,以及人眼主观评价第一的好成绩,相比起第二名领先了一个身位。
 
经此硬仗,沧海在技术上得到了充分检阅。
 
化沧海为一粟。沧海最终实现以更小的数据量、更小的带宽提供相同质量的视频,压缩率相比行业最佳表现还提高了30%以上。

5

“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%。
 
  ● “银杉”搭载在自研100G云服务器上
 
“两棵树”在网络硬件卸载上取得的巨大收益,令团队兴奋不已。
 
当FPGA路线逐渐逼近性能和功耗的瓶颈,网络平台部决定再一次把主动权掌握在自己手里。

6

“玄灵”乍现,芯事未完


腾讯的第四款芯片,也是首款智能网卡芯片应运而生。
 
它也有一个 “仙气十足”的名字——“玄灵”, 按照计划,这款7纳米工艺的芯片将在2022年底流片。
 
Hayden受命快速组建起了玄灵芯片研发团队,不断挑战多个“mission impossible”。
 
从性能指标来看,玄灵支持设备数量将提升到10K以上,相对商业芯片提升6倍。同时,它的性能相对商业芯片也可提升4倍,通过将原来运行在主机CPU上的虚拟化、网络/存储IO等功能卸载到芯片,可实现主机CPU的0占用。
 
这颗短小精悍的芯片,充分诠释了面向未来极致性能的“玄”,与面向各类业务需求灵活加速的“灵”
 
目前,玄灵项目正在紧锣密鼓地进行智能网卡流片前的验证和测试,打造腾讯云下一代高性能网络基础设施;
 
蓬莱实验室的AI推理芯片紫霄和视频转码芯片沧海则将量产,与腾讯业务深度融合应用;
 
还有一些新的芯片项目也在酝酿成长,继续探索有需要的技术方向,丰富这一本“山海经”。
 
腾讯海量业务面临的全新挑战,以及云计算高速发展的必然要求,“倒逼”腾讯走上了这条造芯之路。这些从业务需求出发的芯片,必定会深入现实应用来证明自身的价值。
 
“我们不是无中生有、拍脑袋要去做芯片。我们一开始就知道,腾讯的需求足够大,足够我们去做这件事。”卢山说道。
 
从2010年起,腾讯就开始以云服务的方式对外开放自身的数字技术与连接能力,奔赴这场产业数字化转型升级的时代大潮。躬身入局,腾讯看到深度的数实融合正在引领全真互联的技术趋势。

腾讯的芯事,最终将在数实融合的星辰大海中得到回响。


🔚

全球 Top2!腾讯云计算机视觉再突破

参加了一个国家级项目!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存