全球领先的超大规模云数据中心公司——亚马逊、谷歌、Meta、微软、甲骨文和Akamai——正在推出专门针对云的异构多核架构,整个芯片的高性能 CPU 开发正在感受到这种影响。
这些芯片不太可能进行商业销售。它们针对特定数据类型和工作负载进行了优化,具有巨大的设计预算,可以通过提高性能和降低功耗来节省成本,从而实现合理化。目标是以更低的冷却成本将更多的计算能力集成到更小的区域,而实现这一目标的最佳方法是通过定制架构,以及紧密集成的微架构和精心设计的数据流。
这一趋势始于近十年前,当时 AMD 采用异构架构和加速处理单元,取代了同质多核 CPU 的旧模式,但起步缓慢。从那时起,它就开始腾飞,追随为移动消费设备创建的各种设计的脚步,这些设备需要满足非常紧凑的占地面积以及严格的功率和散热要求。
Quadric营销副总裁 Steve Roddy 表示:“英特尔等行业巨头的单片芯片几乎在每个产品代码中都配备了 AI NPU。” “当然,人工智能先驱 NVIDIA 长期以来在其非常成功的数据中心产品中混合使用 CPU、着色器 (CUDA) 核心和 Tensor 核心。未来几年向小芯片的转变将彻底巩固这一转变,因为指定小芯片组合的系统买家可以选择专门针对相关设计插槽定制的计算和互连类型。”
如何设计高性能CPU?
每次谈到高性能设计,经常会面临几个名词:IO多路复用、零拷贝、线程池、冗余等等,关于这部分的文章非常的多,其实本质上是一个系统性的问题,可以从计算机体系结构的底层原来去思考,系统优化离不开计算性能(CPU)和存储性能(IO)两个维度,总结如下方法:
如何设计高性能计算(CPU)?
减少计算成本:代码优化计算的时间复杂度O(N^2)->O(N),合理使用同步/异步、限流减少请求次数等;
让更多的核参与计算:多线程代替单线程、集群代替单机等等;
如何提升系统IO?
加快IO速度:顺序读写代替随机读写、硬件上SSD提升等;
减少IO次数:索引/分布式计算代替全表扫描、零拷贝减少IO复制次数、DB批量读写、分库分表增加连接数等;
减少IO存储:数据过期策略、合理使用内存、缓存、DB等中间件,做好消息压缩等;
多核不仅是多个CPU的内核
为了充分发挥CPU功效和减少用户支出,现在越来越多CPU集成GPU功能,比如Intel就在Sandy Bridge把GPU核心整合进了CPU当中,其GPU核心的图形核心性能大幅度地提升。
多核化是无奈之举:以前,半导体工艺的发展可以带来“一举三得”的效果,包括提高晶体管速度、降低功耗和缩小芯片面积。但是,当制造工艺发展到90nm或65nm时,泄漏电流的问题凸显,沿用以往的内部架构来提高频率的方法难以奏效。为了在不提高工作频率的条件下实现性能的提升,只能增加CPU内核的数量。
在有许多客户要求进行并行处理的服务器中,多核架构容易获得比较好的效果。但是,问题发生在根据用户的要求运行应用软件的客户机里。由于可能同时运行的软件数量有限,即使可以将各个软件分割以后并行执行,但软件中必须串行执行的部分仍然会妨碍处理性能的提升。许多相关人士认为,在目前这种架构的PC中,4~8个内核可能是多核处理器能够获得较好性能提升效果的极限。
集成多个不同类型的内核:另一方面,提供新体验的高级用户接口、动态及静态图像分析等新的应用软件的不断出现,对处理器的处理性能提出了更高的要求。如果处理器仅在目前以CPU内核为主的架构上继续发展,这些新应用可能将无法实现。
2007年9月,英特尔公司董事会名誉主席Gordon Moore在英特尔秋季技术峰会上表示:“众所周知,摩尔定律在物理上是有极限的。大约10年或15年以后,摩尔定律将会遇到根本性障碍,而退出历史舞台。”反过来说,Moore认为,半导体工艺的发展很可能还会像以前那样再延续10年左右。在把工艺发展当作技术推动力的同时,为了越过横亘在多核架构前面的壁垒,处理器应该采用什么样的内部架构呢?
业界想到的方案是采用异构处理器架构,即将不同类型的内核集成在一起。在这种架构中,CPU内核所不擅长的浮点运算及信号处理工作,将由集成在同一块芯片上的其它可编程内核执行。相关人士认为,集成多个不同类型内核的异构多核架构将成为今后处理器的主流架构。
从同构到异构通用处理器将实现SoC化:Nvidia公司的总裁兼CEO指出:“目前,图形芯片具有的浮点运算性能已经大大超越了处理器。如果能够灵活运用,随着图形芯片的发展,将会涌现出各种各样新的应用。”在占据PC及服务器主流地位的x86处理器中,围绕GPU(图形处理单元)展开的相关研发工作突然活跃起来。
GPU的集成和通用化取得进展:围绕GPU的研发方向主要有两个。首先,是将GPU内核集成到处理器芯片上。AMD公司在2006年7月收购了加拿大的GPU生产商ATI科技公司,并提出了将ATI公司的GPU内核集成到处理器上的Fusion处理器方案。另外,英特尔公司在2007年4月明确表示,正在开发矢量处理器Larrabee(开发代号),其中集成了许多专用于浮点运算的CPU内核。
另一个研发方向是,利用GPU擅长对浮点运算进行并行处理的特点,将其用作矢量处理器。这就是面向通用计算领域的GPGPU(General Purpose Computing on GPU),NVIDIA公司从2006年下半年已陆续推出相关的硬件产品及软件开发工具。
多芯片不可避免
芯片行业清楚地意识到,对于许多计算密集型应用来说,单芯片解决方案变得不切实际。过去十年的一个大问题是向多芯片解决方案的转变何时会变得更加主流。
Synopsys 研发总监 Sutirtha Kabir 表示:“整个行业正处于一个拐点,你无法再避免这种情况。”“我们在后台谈论摩尔定律和‘SysMoore’,但设计人员必须在 CPU 和 GPU 中添加更多功能,但由于光罩尺寸限制、良率限制以及所有这些限制,他们根本无法做到这一点芯片。
多芯片芯片在这里是不可避免的,这带来了一些有趣的考虑“第一,拿一张纸并将其折叠。这基本上就是多芯片的一个例子。你拿一个芯片,把它折叠起来,如果你能巧妙地设计它,你可以认为你实际上可以大大缩短时序,而不是有很长的时序路径。如果你从顶部芯片到底部芯片,你所经历的可能只是芯片中的少量布线,但它们大多是凸块到凸块或键合到凸块。”
多芯片设计挑战包括弄清楚有多少路径需要同步、时序是否应该放在两个芯片之间或单独关闭、L1 应该放在顶部芯片还是底部芯片上,以及是否可以添加 L4。
“从 3D 角度来看,平面现在变得非常有趣,”Kabir 解释道。“你要把一栋单层的房子改造成三层或四层。但还有其他设计挑战。您不能再忽视热量了。散热曾经是 PCB 的问题,而系统设计人员现在认为这些芯片非常热。
Jensen Huang 最近在 SNUG 上表示,你将室温的水从一端送入,然后从另一端流出按摩浴缸的温度。他是在开玩笑,但事实是,从温度的角度来看,这些都是热芯片,如果你在布局规划时不考虑到这一点,你就会烧毁你的处理器。这意味着您必须更早地开始这样做。就 3D 布局规划而言,当涉及到工作负载时,您如何知道您已经分析了多芯片的不同工作负载,并确保考虑了 IR、热量和时序等关键影响,即使您没有考虑到这些影响甚至有一个网表?我们称之为零网表阶段。
这些考虑因素都变得非常有趣,而且因为你无法再避免使用多芯片,所以从代工厂的角度来看,从 EDA 的角度来看,这些都是生态系统的前沿和中心,而设计师则处于中间。”
与数据中心芯片的热问题相关的是低功耗设计方面。
“这些数据中心使用大量电力,”Ansys 产品营销总监 Marc Swinnen说。“我当时在旧金山的 ISSCC,我们在 NVIDIA 旁边的一个展位里,那里正在展示它的一个 AI 训练盒——一个大胆的大盒子,里面有八个芯片,还有大量的风扇和散热器。我们询问它使用了多少功率,他们说,“哦,最高 10,000 瓦,但平均 6,000 瓦。”功耗真的变得疯狂了。”
Arm 的 Jeff 同意,应对数据中心芯片新挑战的最佳方法是采用完整的系统方法,涵盖指令集架构、软件生态系统和特定优化、CPU 微架构、结构、系统内存管理和中断控制,以及封装内和片外 I/O。“完整的系统方法使我们能够与合作伙伴合作,根据现代工作负载和工艺节点定制 SoC 设计,同时利用基于小芯片的设计方法。”
这种定制芯片设计方法使数据中心运营商能够优化其电力成本和计算效率。“我们的 Neoverse N 系列的高效率可实现每个插槽 128c 至 192c 及以上的非常高的核心数量,”Jeff 说。“这些相同的 N 系列产品可以缩小到占用空间更小的 DPU 和 6g L2 设计以及边缘服务器。我们的 V 系列产品线面向云,具有更高的每线程性能和更高的矢量性能(适用于 AI 推理和视频转码等工作负载),同时仍然提供高效率。一系列加速器附加选项使我们的合作伙伴能够将自定义处理和云原生计算正确组合到一个针对其工作负载量身定制的 SoC 中。”
结论
考虑到高性能计算的演进本质,特别是考虑到如何优化数据中心存在不同的方面,所有这一切最终的结果几乎是无法预测的。西门子的 Hand 表示:“随着网络事物的爆发,人们开始在数据中心内进行南北向和东西向路由,这改变了所有网络交换架构,因为这是最大的瓶颈。” 。“这导致人们重新思考数据中心的样子。类似的事情也发生在内存方面,当你开始集成光学和一些更智能的内存时,看到它会如何改变它将会非常有趣。”
Hand指出,几年前的英特尔开发者大会上,该公司解释了如何使用硅光子学中的表面发射光学器件将内存与数据中心机架中的存储分开。“他们有一个统一的内存结构,可以在服务器之间共享,并可以从不同的服务器分配内存,”他说。
“所以数据中心的拓扑开始看起来非常有趣。即使在机架中,你也会看到NVIDIA 的 AI 系统结构看起来不像传统服务器机架。最大的转变是人们可以看到它,如果有市场,你就可以建立它。我们总是考虑架构的核心是否快。我们的出发点是“核心速度快吗?” '我有足够的核心吗?'但它的意义远不止于此。一旦你开始打破冯诺依曼架构并开始使用不同的内存流并开始研究内存计算,它就会变得非常酷。