编者按
关于“弯道超车”,行业内很多人士对此嗤之以鼻,他们认为:做事情要脚踏实地,持之以恒,才有可能超越。
但这两者并不矛盾:
今天这篇文章,我们探讨一下,在大算力芯片领域“弯道超车”的机会。
图灵奖获得者John Hennessy总结了计算机体系结构的四个时代和即将兴起的第五个时代:
上面计算机体系结构的时代划分,是站在单处理器引擎视角进行的。我们参考上述五个时代的划分,并且站在多处理器引擎计算架构从简单到复杂的发展视角,重新进行了如下的发展阶段划分:
如果我们为计算架构再加一个约束——通用,则计算架构可以划分为三个阶段:
“二八定律”无处不在:随着系统的扩大,会逐渐沉淀许多共性的计算任务。我们定性的分析一下,依据二八定律:
上世纪80-90年代,每18个月,CPU性能提升一倍;如今,CPU性能提升每年只有3%,要想性能翻倍,需要20年。虽然CPU的性能提升几乎停滞,但对性能和算力的更高需求,是永无止境的,例如:
从2012年深度学习兴起开始,随着AI等大算力场景的算力需求越来越大,异构计算已经成为计算架构的主流。
性能和灵活性的矛盾:系统越复杂,越需要灵活的处理器;性能挑战越大,越需要定制的加速处理器。问题的本质在于:单一的处理器是无法兼顾性能和灵活性的。
由于在异构计算系统中,CPU不承担主要的计算任务,因此加速处理器决定了异构系统的性能/灵活性特征:
随着异构计算成为主流,异构的系统越来越多。多异构共存的异构计算孤岛问题凸显:
要想高性能,需要硬件层次的更高集成度,更需要系统层次的多种异构融合(即超异构)。
超异构计算:系统复杂度显著上升,系统更难驾驭。如何在快速提升性能的同时,让系统更好驾驭,是超异构计算要解决的关键问题。
在云和边缘数据中心,都是清一色的服务器。这些服务器,可以服务各行各业、各种不同类型的场景的服务端工作任务的处理。CSP每年投入数以亿计资金,上架数以万计的各种型号、各种配置的服务器的时候,严格来说,它并不知道,具体的某台服务器最终会售卖给哪个用户,这个用户到底会在服务器上面跑什么应用。并且,未来,这个用户的服务器资源回收之后再卖个下一个用户,下一个用户又用来干什么,也是不知道的。因此,对CSP来说,最理想的状态是,存在一种服务器,足够通用,即不管是哪种用户哪种应用运行其上,都足够高效快捷并且低成本。只有这样,系统才够简单而稳定,运维才能简单并且高效。然后要做的,就是把这种服务器大规模复制(大规模复制意味着单服务器成本的更快速下降)。
云和边缘服务器场景,对系统的灵活性的要求远高于对性能的要求,需要提供的是综合性的通用解决方案。最直接的例子就是以CPU为核心的服务器:CPU通用灵活性是最好的,如果CPU的性能够用,大家绝对不喜欢用各种加速;如今是CPU性能不够,逼迫着大家不得不去使用各种硬件加速。
数据中心硬件加速最大的教训是:在提升性能的同时,最好不要损失系统的灵活性。其言下之意就是:目前各类加速芯片的优化方案损失了灵活性,从而使得芯片的落地很困难。这是目前全行业的痛点所在。
传统的情况下,一个芯片对应一个系统。我们关注业务常见的需求,并把它实现在芯片的功能和特征里。但在集群计算,特别是目前云网边端不断融合的超大集群计算形式下,则需要关注的是“以不变应万变”,即足够通用的、数以万计的计算设备组成的大规模计算集群,如何去覆盖数以百万计的众多计算场景的问题。
这样,对芯片内的资源弹性和芯片的可扩展性就提出了很高的要求,我们需要把数以万计的计算芯片的计算资源合并到一个计算资源池,然后还可以非常方便的快速切分和重组,供不同规格计算任务的使用。
摩尔定律预示了:芯片工艺的发展,会使得晶体管数量大约每两年提升一倍。虽然工艺的进步逐步进入瓶颈,但Chiplet越来越成为行业发展的重点,这使得芯片的晶体管数量可以再一次数量级的提升。
在先进工艺的设计成本方面,知名半导体研究机构Semiengingeering统计了不同工艺下芯片所需费用(费用包括了):
就意味着,大芯片需要足够通用,足够大范围落地,才能在商业逻辑上成立。做一个保守的估算:
通用的超异构处理器(GP-HPU, General Purpose Hyper-heterogeneous Processing Unit, 通用超异构处理器),即能够覆盖几乎所有场景的、以超异构计算为基础架构的、综合性的大算力单芯片。
SOC和HPU都是多异构组成的混合计算,但SOC本质上属于异构计算,而HPU属于超异构计算。SOC仅仅是异构的集成,而HPU则需要实现异构的融合。
在SOC系统里,每个加速单元可以看做是CPU+加速单元组成一个异构子系统;不同的异构子系统之间在硬件上是没有必然联系,需要通过软件构建异构子系统之间的交互和协同。在CPU性能逐渐瓶颈的当下,这通常也意味着性能的约束。
而在HPU里,需要实现硬件层次的不同加速单元之间的直接的、高效的数据交互,不需要CPU的参与。在硬件层次,超异构需要实现CPU、GPU以及各种其他加速单元之间的对等的深度交互、协同和融合。
依据性能/灵活性特征,可以将系统分为三个层次:
理论上,我们可以按照超异构计算的功能划分和系统交互,把三类功能实现在CPU、GPU和DPU三芯片里,但目前三者处于相互竞争的状态,三芯片协作的方式,本质上只能实现以CPU为中心的异构计算形态,而无法实现三者深度协同的超异构计算形态。
并且,三颗芯片,通常来自于不同的芯片公司,各个芯片都很难放弃以自己为核心的系统运行方式。要想这些芯片公司能够更多的考虑和其他芯片的协同,从而实现三芯片的通力合作,很难很难。
基于CPU、GPU和DPU三芯片的超异构计算,还有很长的路要走。
单芯片,不需要考虑和外部芯片的协同,只需要考虑内部不同单元间的深度交互。一切都在自己的掌控之下,因此单芯片超异构计算,是相对容易落地的实现方式。
此外,单芯片方式,也有其他的好处:
工艺持续进步、3D堆叠以及Chiplet多Die互联,使得芯片从2D->3D->4D。这些技术的进步,意味着在芯片这个尺度,可以容纳更多的晶体管,也意味着芯片的规模越来越大。
Intel宣布,在2030年,将实现单芯片层次集成1万亿晶体管,这意味着在单芯片层次,可以构建,相比目前,规模数量级提升的系统。
实现更多异构的集成,是芯片制造和封装的核心竞争力,不是芯片设计公司(Fabless)的核心竞争力。
我们以NVIDIA 2000 TOPS的自动驾驶汽车中央控制器CCU为例。Thor能够实现多域融合计算,它可以为自动驾驶和车载娱乐划分任务。通常,这些各种类型的功能由分布在车辆各处的数十个控制单元控制。制造商可以利用Thor实现所有功能的融合,来整合整个车辆,而不是依赖这些分布式的ECU/DCU。
传统SOC是单芯片单系统,而Thor实现了单芯片多个系统共存。在一个硬件上,把多个架构不同的系统整合成一个宏系统,则涉及到整个系统软硬件架构的重构。
在系统和架构层面,如何实现更多系统的融合,是芯片设计公司的核心竞争力。
串行计算符合人类思维,编程相对最简单;同构并行的编程,就要复杂很多;异构并行,则更是难上加难;那么超异构并行呢?那就是难上加难再加难。
要想驾驭超异构,核心的思路跟驾驭异构计算的思路一致,就是要想方设法降低软硬件系统的复杂度。一些典型的降低复杂度的方法:
CPU同构是第一代通用计算,成就了Intel的王者地位;GPU异构是第二代通用计算,随着人工智能的火爆,助推NVIDIA市值超过了10000亿美金,远超Intel、AMD和高通的总和。
但技术发展不会停止。随着AI大模型、自动驾驶、元宇宙等超高算力需求的领域快速发展,算力仍需持续快速提升,算力成本必须数量级下降,计算架构需要从同构、异构走向多种异构融合的超异构。
第一代和第二代通用计算CPU、GPU,我们已经落后,目前国内有众多公司重担在肩,在拼命追赶。而第三代通用计算(超异构计算)的发展机遇,给了我们“弯道超车”的历史时机。
当前,Intel和NVIDIA正在通用超异构计算领域做早期布局,历史机遇稍纵即逝。我们需要站在国家战略的高度,快速布局,并大力投入。
(正文完)