【知乎】华为NoC-Chiplets:适用于异构 Chiplet 的应用定义片上网络:实施视角

打开网易新闻 查看更多图片

【芯片论文】华为NoC-Chiplets:适用于异构 Chiplet 的应用定义片上网络:实施视角

打开网易新闻 查看更多图片

eyesighting

软硬件协同:自动驾驶+人工智能+集成电路

Eidosper 等 134 人赞同了该文章

目录

收起

0.摘要

1.介绍

2.背景和动机

2.1 类似乐高的 SoC 项目概述

2.2 NoC设计的KPI

3.协同设计方法

3.1 协同设计的目标应用领域

3.2 架构表现力

3.4 无缓冲多环NoC

4. 架构和实现

4.1 NoC的常用组件

4.2 服务器-CPU的NoC

4.3 AI处理器的NoC

4.4 基于SWAP的无死锁

5 实验评估

5.1 服务器-CPU 实验设置

5.2 AI 处理器实验设置

5.3 服务器-CPU实验结果与分析

5.4 AI处理器实验结果与分析

6.相关工作

7.总结

题目:Application Defined On-chip Networks for Heterogeneous Chiplets: An Implementation Perspective

名称:适用于异构 Chiplet 的应用定义片上网络:实施视角

论文:https://ieeexplore.ieee.org/document/9773184

单位:华为

会议:HPCA 2022

0.摘要

借助先进封装技术集成多个芯片(例如CPU、AI、IO),基于chiplet的SoC设计流程可以实现快速系统构建。然而,在各个小芯片内和跨小芯片使用的片上网络的设计是一个极大的挑战。我们介绍了用于基于异构 Chiplet 的 SoC 的无缓冲多环 NoC 的设计流程和方法。我们的设计是便携式的,可用于多种场景,如服务器 CPU、AI 处理器和基带处理器。

应用、架构和实现的协同设计是系统低功耗和高性能的关键。我们通过反映应用程序团队对一组目标应用程序的分析以及开发团队提供的几个物理实现约束来确定许多架构设计选择。在本文中,我们介绍了 NoC 协同设计工作的务实实践。结果,该系统已被证明可以在人工智能处理器中实现 16TB/s 的带宽,并在近百核的服务器 CPU 中实现低延迟。

1.介绍

大型单片系统芯片通常会导致成品率低下,并导致验证工作和先进制造成本高昂。同时,一些不需要先进工艺节点(例如 PCIe 控制器)或扩展性不好(例如 IO 缓冲区)的模块可以转移到在成熟技术节点制造的单独小芯片上,从而实现更低的成本和优异的良率 。

这些趋势促使工程师以小芯片的方式设计整个系统。这种方法试图将传统的单片SoC分解成几个更小的chiplet每个chiplet都可以获得更好的良率,并且更容易在不同场景之间重用。学术界和工业界的多项研究表明,通过使用先进的封装技术,基于小芯片的 SoC 可以将多个异构芯片紧密集成到单个 SoC 中(例如 CPU、GPU、HBM、FPGA)。目前,这似乎是解决摩尔定律和登纳德缩放定律失败问题的一种有前途的方法。

与基于异构 Chiplet 的系统相关的研究和工程挑战有很多,我们的工作重点是片上网络问题。目前已经发布了多种基于小芯片的架构。借助先进的封装技术,整个系统的面积超过了光罩。因此,基于小芯片的系统的互连结构需要将微片扩展到更大的物理空间。此外,由多个异构chiplet构建的SoC将引入更多复杂性并导致chiplet之间产生新的循环依赖关系。例如,即使每个小芯片都经过正确验证,完全集成的系统仍然存在正确性问题。

成功的NoC设计必须从应用、架构和物理设计三个选项中做出权衡决策,这意味着不可能同时优化这三个方面。我们将这种权衡称为系统设计的三难困境。本文重点介绍我们在协同设计过程中所做的工作以及我们如何就 NoC 设计做出多项决策。上述技术挑战以及开发无错误的异构 Chiplet 系统的高昂成本促使我们尝试在各种应用场景(例如无线站、智能 NIC)中重用片上网络设计。服务器CPU和AI处理器是半导体行业中两个蓬勃发展的应用领域,因此我们以这两个为例来演示NoC协同设计方法。

这项工作做出了以下贡献:我们为基于异构小芯片的系统提出了一种高度可扩展的无缓冲多环 NoC 设计。我们展示了这种设计可以有效地部署在各种场景中,例如服务器 CPU 和人工智能处理器。介绍了无缓冲多环NoC系统的应用-架构-物理实现协同设计流程和设计方法。我们表明,对于基于异构小芯片的系统,每个时钟周期的距离是更适合 NoC 协同设计优化的指标。我们表明,NoC 设计可以在服务器-CPU 场景中实现近百个核心(在一个封装中)之间的缓存一致性以及低延迟的片外内存访问。对于 AI 处理器,相同的 NoC 设计可提供 16 TB/s 的带宽。 这些关键功能远远超出了其他最先进的实现。

本文其余部分的组织如下:第二节介绍了异构小芯片 NoC 项目的概述。第三节介绍了三难困境协同设计的过程和方法。第四节描述了NoC的架构以及服务器CPU和AI处理器的实现。第五节展示了系统的实验评估结果。第六节以一些回顾性评论总结了本文。

2.背景和动机

在过去的二十年里,SoC的复杂度增加了1000倍,芯片尺寸增加了5倍。摩尔定律的放缓导致先进的半导体制造工艺变得越来越脆弱和成本高昂。不幸的是,一个相反的趋势——不断增加的处理器设计、验证和管理成本——给SoC系统的规模带来了巨大的压力。因此,新的设计和封装技术正在开发和商业化,其中可以使用低延迟和高带宽互连基板连接不同的小芯片。因此,大型 SoC 可以分解为几个较小的组件小芯片,然后重新集成到完整的系统中。[11]表明,小芯片可以集成而不会显着降低性能(小于 5%)。由于较小的芯片尺寸可以实现更好的良率,因此基于小芯片的 SoC 可以降低总体系统成本。此外,封装技术还使得将一组chiplet组合起来构建异构chiplet SoC成为可能。

在异构小芯片SoC中,工程师可以使用最先进的制造工艺来构建关键组件(如CPU核心、ISP系统),并使用成熟的技术节点以更低的成本和更好的产量实现一些模块(如IO、收发器)。此外,通过这种方式,几个开发团队可以解耦他们的技术进化路线图。如图1所示,即使CPU、AI、无线、IO和SoC技术团队的开发速度不同,我们也可以使用最先进的技术持续交付产品。为了无缝集成这些组件,必须仔细设计SoC,尤其是互连网络。在接下来的环节中,我们将简要介绍我们的类乐高SoC项目,并分析NoC在不同场景下的优化目标。

打开网易新闻 查看更多图片

2.1 类似乐高的 SoC 项目概述

类似乐高的 SoC 项目试图支持多个不同的应用领域,如服务器 CPU、桌面 CPU、智能 NIC、AI 推理/训练处理器和无线站(如图 2 所示)。为了实现这一目标,我们将这些场景分类为几个原始小芯片。

打开网易新闻 查看更多图片

如表 1 所示,这些原始小芯片(如 AI-Die、通信芯片、计算芯片和 IO-Die)针对自己的计算模式高度专业化,并由不同的领域专家开发团队维护。类似乐高的 SoC 项目提供了一些基本组件,如 DDR 控制器、HBM 控制器和缓存一致性协议模块。此外,该项目最关键的部分是片上网络,它连接所有这些基本 SoC 组件和位于异构小芯片中的各种特定领域处理引擎。在本文的其余部分中,我们以Sever-CPU和AI-Processor为例来演示NoC设计。

2.2 NoC设计的KPI

如上所述,在项目开始时,我们定义了关键绩效指标(KPI):

1).网络延迟:对于Server-CPU,数据中心应用程序通常需要微秒级的尾部延迟和高请求率。此外,大多数应用程序(例如 Web 服务、大数据框架)处理在多个时间尺度上具有高方差的负载。在服务器 CPU 中实现这些目标需要低内存访问延迟。因此我们将低平均延迟作为Server-CPU场景的关键设计目标。

2).网络带宽:如图3所示,AI应用的运算强度远高于通用应用。对于AI处理器来说,高密度的算力需要高内存访问带宽。因此片上网络作为带宽生产者和消费者之间的桥梁,需要提供足够的带宽。因此,NoC的带宽被设置为AI处理器的关键性能指标。

打开网易新闻 查看更多图片

3). 网络面积效率:从物理实现的角度来看,片上网络的面积也是一个关键指标。为了将 flits 分散到多个小芯片上,NoC 必须涉及更多的中继器和缓冲区,以确保时序收敛。因此NoC的复杂度和面积迅速增加。此外,NoC和相关缓冲器将整个平面布局分割成更小的部分,这给其他模块的布局和布线带来了更多麻烦。因此片上网络的面积效率也被视为一个重要指标。

3.协同设计方法

作为SoC中最关键的部件之一,NoC的协同设计超越了传统的软硬件协同设计。为了实现上述关键性能指标,我们必须从应用性能、架构表现力和物理实现三个方面进行权衡决策。如图4所示,以下三项不可能同时具备:

打开网易新闻 查看更多图片

1)应用性能:传统的通用Von-Neumman架构无法满足新兴应用的计算需求。嵌入更多领域特定的加速器是应对这一挑战的广泛使用的方法,例如集成硬件 GEMM 引擎来加速 AI。

2)架构表现力:尽管特定领域的加速器弥补了性能差距,但仍然受到处理孤立编程接口的困扰,并且硬件架构的表现力变得有限。因此,维护冯·诺伊曼架构和共享内存模型的努力就是试图提高硬件架构的表现力。

3)物理实现:天下没有免费的午餐。更好的性能和表现力意味着更高的电路复杂性,这意味着更大的面积、更长的开发时间以及更多的劳动力成本来实现时序收敛。所有这些副作用最终都会影响产品的商业竞争力。

在本次会议的其余部分中,我们将详细分析这三个方面,并概述 NoC 协同设计方法。

3.1 协同设计的目标应用领域

3.1.1 服务器应用程序的要求

在协同设计理念下,营销、应用软件和系统软件开发团队提供了一组目标应用(如表2所示)来指导NoC设计。选择这些应用程序作为目标应用程序的原因基于两个标准。

打开网易新闻 查看更多图片

标准之一是从营销角度来看。 通用服务器CPU用于数据中心、云计算或高性能计算。相关应用要求处理器能够支持从网络服务、数据库到虚拟化的广泛程序。表2所示的程序是广泛使用的通用基准测试,是上述目标消费者的基本软件堆栈组件。另一个标准是从计算模式的角度来看。 服务器应用程序多种多样,但它们具有许多共同的特征。

首先,在指定时间段内预期客户端请求、处理和通信资源形式的负载量。其次,他们对大数据进行计算,并且数据遵循 Zipfian 分布。因此,它们的长尾会产生不规则的请求并需要大容量的内存。第三,基于服务器的数据中心工作负载表现出两种主要形式的跨任务和跨数据分区的并行性,即系统组织中对横向扩展处理器的并行性要求。表2中提到的程序涵盖了整数运算、浮点运算。它们还涵盖各种数据访问模式和问题大小。 简而言之,它们都是具有代表性的例子。

从NoC设计方面(如表2所示)来看,数据中心和云计算的典型场景,如SPECint、SPECpower、Unixbench和Glibc,强调单核性能,很少需要核间通信。此外,这些基准测试通常依赖于基于指针的数据结构,并且需要大量的片外存储器访问。因此,支持低延迟片外内存访问对于通用服务器-CPU NoC 设计极为重要。

3.1.2 AI相关领域的要求

在协同设计过程中,营销和应用软件团队选择了几种典型的神经网络作为NoC设计的指南(如表3所示)。从营销的角度来看,这些神经网络涵盖了各种细分市场,如计算机视觉 (ResNet)、自然语言处理 (BERT) 和推荐系统 (Wide & Deep)。我们的人工智能处理器需要支持从用于摇摆人脸检测的微型神经网络推理(Yolo-v3)到复杂模型的训练(BERT、ResNet)。从计算模式的角度来看,这些例子在人工智能领域具有代表性。

人工智能处理器用于各种应用,例如自然语言处理、自动驾驶、机器人、智能手机、智能物联网设备等。如表 3 所示,人工智能处理器支持从用于摇摆人脸检测的微型神经网络推理到复杂模型(例如 BERT、ResNet)推理和训练。人工智能应用的典型算子是二维卷积、矢量化计算等。人工智能中使用的基本数据结构是高维张量和向量,基于指针的不规则数据结构很少使用。如上所述,AI应用具有更高的运算强度、更多的数据重用,并且呈现出明显的内存带宽需求。

打开网易新闻 查看更多图片

从NoC设计的角度来看,典型的神经网络模型(如ResNet、BERT、Wide & Deep和GPT)规模高达1750亿,需要高达3.14×1014 GFlop。AI 处理器的 NoC 充当高密度浮点计算引擎(带宽消费者)和高带宽片外存储器(带宽生产者)之间的桥梁。为了利用应用程序的高数据重用属性并填补消费者和生产者之间的带宽差距,NoC设计必须关注带宽。

3.2 架构表现力

越来越多的高级编程语言正在出现。它们的表现力都继承自它们共同的祖先——冯诺依曼架构。 冯诺依曼架构具有许多对编程语言和现有算法产生巨大影响的特征。这些特性包括位于 CPU 中的单一集中控制以及可包含指令和数据的单独存储区域。尽管许多广泛使用的语言(例如 C、C++ 和 Java)通过以线程的形式添加对并行处理的支持而不再是严格的冯·诺依曼语言。然而,共享内存抽象仍然对表现力有显着影响。为了保持软件和硬件的表现力,我们的架构开发团队选择坚持共享内存抽象。

AMBA5 CHI协议帮助工程师构建多核缓存一致性系统,并随着组件数量和流量的增加而保持性能。它提供高频、无阻塞数据传输,并采用非常适合分组片上网络的分层架构构建。基于 AMBA5-CHI,NoC 需要进行定制,以支持位于独立小芯片上的数十个大型 CPU 核心或 AI 核心。

3.2.1 基于AMBA5-CHI的服务器-CPU架构

图 5(A) 显示了服务器 CPU 的内存子系统层次结构。 每个CPU核心都有一个私有的64 KB L1指令缓存、64 KB L1数据缓存和512 KB L2缓存。此外,L3缓存系统选择了混合设计:L3缓存分为L3标签缓存(存储标签以减少监听延迟)和L3数据缓存(存储数据以实现高容量)。四个 CPU 核心组成一个集群,这四个核心共享一个 L3 标签缓存。L3 数据缓存被实例化为分离模块。

打开网易新闻 查看更多图片

从L3缓存的角度来看,NoC向分布式L3标签/数据缓存提供AMBA5-CHI协议服务。如图 5(A) 所示,只有 L3 缓存命中/未命中事件才能调用 NoC 事务。此外,多级缓存层次结构可以阻止大部分来自CPU内核的内存请求。因此,我们可以假设任意两个 L3 缓存命中/未命中在大多数情况下都是无关的。换句话说,对于 Server-CPU 场景,每两个 NoC 事务都是独立且无状态的。

3.2.2 基于 AMBA5-CHI 的 AI 处理器架构

图 5(B) 显示了 AI 处理器的架构。 AI-Processor的处理引擎是AI-core,它包含三种计算单元(Cube、Vector、Scalar)立方体单元可以在一个周期内计算 16 x 16 矩阵乘法向量单元可以处理各种向量化运算符,其他标量运算符由标量单元执行。每个AI核还包含32KB指令缓存、用于立方体单元存储矩阵的64KB L0-A/B/C缓存以及用作所有三种计算单元的共享缓冲区的1MB L1缓存。对于多个 AI 核心,分布式 L2 缓存借助 AMBA5-CHI 协议为程序员提供共享内存抽象。此外,采用高带宽 (500GB/s x 6) HBM 模块来提供高效的内存容量。

如上所述,AI 核心提供了极高密度的浮点计算力(立方体单位为 16x16x16,矢量单位为 16x16)。根据AI应用的运算强度,分布式二级缓存的带宽需求大于每秒10TB。因此NoC需要提供足够的带宽来补偿HBM、L2和AI核之间的带宽差距。AI核的工作负载多种多样,因此NoC的流量可能会发生巨大变化。因此NoC的平衡非常重要。 因此架构团队选择以交错的方式关联L2缓存,使得内存访问请求流量可以均匀分布在整个芯片上。从NoC的角度来看,AI核心的每个L2缓存请求都可以调用NoC事务。大多数内存请求都是连续的,交错的 L2 缓存可确保每两个 NoC 事务对于 AI 处理器场景都是独立且无状态的。

我们的物理实现团队还在NoC协同设计过程中提供了重要的建议。从电路物理实现的角度来看,片上网络由金属线结构和所有必要的缓冲器和逻辑电路组成,金属线结构是在异构小芯片上传输片的最重要组件,所有必要的缓冲器和逻辑电路都是为了使片上网络发挥功能而连接的。然而,在半导体制造过程中,金属织物、逻辑电路和存储器在不同层上采用不同的技术实现。此外,电线具有寄生电阻和电容,其随着电线长度的增加而增加。

为了满足特定的目标频率(3GHz),需要将一根长电线分成几段,并且必须在各段之间插入中继器。表 4 显示了两种 NoC 线金属结构实现的关键参数。如表所示,基于Mx My层的高密度金属织物具有更小的宽度和节距尺寸,并且在一个时钟周期内传输的飞片距离更短。虽然基于My层的高速金属织物具有较大的宽度和芯尺寸,但纤维在一个周期内可以行进更长的距离。如图 6 所示,高密度导线几乎是连续的金属,不能放置在任何其他电路上。然而,高速线仅占据间歇区域,并且SRAM块可以放置在这些插槽中。

打开网易新闻 查看更多图片
打开网易新闻 查看更多图片

从 NoC 设计的角度来看,片上网络需要将 flits 分布在位于距离较远的小芯片中的代理之间。金属线结构和其他必要的电路(逻辑和缓冲器)在不同的层中实现。NoC 中的每一跳都需要一个交叉站,这将消耗更多的硅面积并引入更多的电路复杂性。这使得时间关闭更具挑战性。尽管高密度导线的金属织物可以节省面积,但有限的跳跃距离会导致跨站消耗更多的面积。并且金属织物不能放置在其他电路之上。

因此,片上网络将整个布局规划分割成独立的区域,这使得布局和布线变得更加困难。相比之下,高速线的面积效率更高,并且跨步槽可用于 SRAM。因此对于NoC来说它是一个更好的选择。总之,每个周期的距离是一个合适的指标,简化的电路结构更有利于物理优化。

3.4 无缓冲多环NoC

如上所述,一些开发团队从他们的角度提供了亮点。 列出了 NoC 的要求:应用:NoC必须提供高带宽(大于15TB/s),同时保持跨chiplet请求的低延迟。架构:NoC的架构应该是灵活的。 每两个 NoC 事务都是独立且无状态的。物理实现:NoC设计更倾向于简化电路结构,并试图提高每个周期的距离。

3.4.1 异构 Chiplet 考虑因素

正如2.1节中提到的,我们的产品基于异构chiplet的组合涵盖了多个不同的应用领域。Chiplet 是一个相对紧密耦合的系统。然而,位于非计算芯片上的收发器、以太网和特定于域的加速器在计算芯片之间具有频繁的通信。为了满足不同chiplet的独立性和交互性,简化流量控制并避免死锁,采用了基于环的片上网络,并在不同chiplet上的不同环之间精心设计了交叉点。

根据开发团队的要求和异构chiplet的考虑,我们选择无缓冲多环NoC。接下来对该设计选择与传统缓冲方案相比的优缺点进行定性讨论:

3.4.2 优点

无缓冲区是这种方法的主要优点。 它帮助我们降低电路复杂性和能耗。由于无缓冲 NoC 消除了缓冲区,因此不存在虚拟通道,并且无需管理缓冲区分配/解除分配。简化的电路结构可以以有限的物理实现工作实现更高的时钟频率和更少的面积消耗。与缓冲路由方案所使用的基于通信的流量控制机制相比,无缓冲NoC使用纯本地且简单的流量控制,而不需要路由器之间的通信。

与单环方案相比,无缓冲多环结构具有良好的可扩展性,并且可以通过简单的跨环扩展连接异构chiplet。此外,当代理数量增加时,无缓冲多环NoC可以降低平均延迟。这对于服务器CPU或无线站点等场景极其重要。

3.4.3 缺点

如 [16] 所示,无缓冲 NoC 的主要缺点之一是它会因偏转路由而增加平均延迟。此外,无缓冲方法将减少可用的网络带宽,因为所有网络内的微流都会消耗线结构资源。为了解决这些问题,我们实施了一种弹出标签机制,以确保在无缓冲多环中飞片不会缺陷超过一圈。4.1 节提供了该机制的详细信息,实验表明我们设计的性能优于最先进的实现。

无缓冲NoC要求标头信息随每个flit一起传输,因为数据包的每个flit可以遵循不同的路径。这个缺点会带来额外的开销。如上所述,对于服务器-CPU和AI-处理器,NoC事务的粒度与一个L2/L3缓存线一样大。因此简化的无缓冲交叉站所节省的面积远远大于附加头信息的消耗。

由于无缓冲 NoC 可以偏转各个 flits,因此数据包的 flits 可能会无序地到达目的地代理,并且在明显不同的时间点到达。此效果会增加目标端缓冲要求。然而,如上所述,我们的架构确保每两个 NoC 事务是独立且无状态的。因此,将每个交易作为一个单独的 flit 附加必要的标头信息是一个合理的选择。AMBA5-CHI 是一种非阻塞且无序的协议,需要在每个节点中都有缓冲区。乱序机制对无缓冲NoC 是友好的并且NoC 可以重用必要的缓冲。

活锁和服务匮乏是无缓冲片上网络的潜在挑战。在4.1节中,我们提供了解决该问题的方案。无缓冲环 NoC 的基于偏转的路由是无死锁的。对于多环来说,死锁只发生在跨环场景。本文展示了嵌入跨环桥的SWAP机制可以使多环无死锁(如4.4节所示)。在协同设计过程中,我们认为这些缺点在我们的场景中影响有限,或者可以通过机制扩展来解决。有关架构和实现的更多细节将在下一节中介绍。

4. 架构和实现

本节展示 NoC 的架构和实现细节。首先,本节介绍片上网络的基本组件。然后我们介绍如何将这些部件集成为异构芯片服务器-CPU 和人工智能处理器的NoC。最后,我们提供了一种SWAP机制来保证NoC对于异构chiplet不会出现死锁。

4.1 NoC的常用组件

交叉站和连接结构是构成环的基本元素。跨站交叉连接结构如图7(A)所示,每个站最多可以通过节点接口连接两个设备。每个节点接口都有一个 Inject Queue,可以向环的两个方向注入 flits,同样,还有一个 Eject Queue,可以从两个方向接收 flits。由于Inject Queue中的每个flit都可以双向访问,因此跨站还需要进行环选,这是通过简单的方法根据flit的源地址和目的地址实现最短路由路径。

打开网易新闻 查看更多图片

4.1.1 航班优先级控制

通过控制逻辑,交叉站负责通过该站的动态微片的路由、从两个节点注入新微片以及将微片弹出到两个节点。如图7(A)所示,现有的动态flit具有最高优先级,并且通过循环(RR)的方式选择来自节点接口的新注入flit。

4.1.2 无活锁、无饥饿

保证不存在饥饿和活锁对于我们基于无缓冲环的系统极其重要。如果某个flit由于与on-the-fly flits竞争失败而在某个周期内无法获得ring slot,则会在当前slot上附加一个I-tag(Injecttag),这意味着该slot被保留给 “击败”飞翔。带有I-tag的槽位即使空闲也不会被其他flit占用,当槽位注入成功返回交叉站后,I-tag被移除。

与注入失败类似,片材偏转发生在片材到达目的地但弹出队列中没有可用空间,片材必须经过交叉站时。在这种情况下,创建一个E-tag(Eject-tag),当Eject Queue中有空闲缓冲区时,它被保留用于偏转flit。当偏转片弹出到保留缓冲区时,E-tag随即被清除。

4.1.3 环桥和多环

多环系统有两种情况。第一个是由小芯片内的多个环组成的垂直和水平交织的网络(图7(D))。第二个是chiplet之间环的连接(图7(E))。需要额外的组件来支持跨环运输。在第一种情况下,环形桥(RBRG-L1)充当驻留在每个交叉点的“设备”。RBRG-L1 用于需要交换环路路径的 flits 的数据缓冲、路由信息生成以及潜在的异步处理。在第二种情况下,我们使用二级环桥(RBRG-L2),它是chiplet间的通信组件,来实现不同Die之间的连接,RBRG-L2具有类似的缓冲和路由信息生成功能,但更复杂 比RBRG-L1。除了提供背压流量控制之外,RBRG-L2 还负责解决死锁,稍后将介绍。至于chiplet间互连的物理层,我们使用内部开发的低延迟并行IO块和特定协议的跨chiplet结构,在chiplet之间传输数据包。

该系统的环可分为“半环”和“全环”,具有单个顺时针环的环称为半环(图7(B)),具有双向环的环(顺时针和顺时针) 逆时针)称为全环(图 7(C))。全环可以在chiplet边长相同的情况下提供更多的节点连接,从而以硬件面积为代价提供更高的容量和吞吐量。

4.2 服务器-CPU的NoC

Server-CPU的NoC设计如图8(A)所示。有了环的基本组件和布线机制,下一步就是将其他组件附加到环上,形成独立的chiplet。

打开网易新闻 查看更多图片

如上所述,我们的服务器 CPU 旨在优化访问延迟。以此原理,CPU集群、DDR控制器、L3缓存和末级缓存(LLC)等需要高频率和低延迟的设备都被附加在CPU计算芯片(CCD)中。更具体地,CCD中的NoC是一个完整的环

对于延迟容忍设备,例如PCIe、以太网接口、硬盘接口以及各种与服务相关的加速器,它们被集成到具有半环的I/O Die中。除了上述功能和组件之外,I/O Die 还通过 PA(协议适配器)提供扩展能力,这是服务器 CPU 中至关重要的功能,这是一个具有多个SerDes链路的互连模块,用于跨芯片的片间数据访问。

这些基本组件与环一起在逻辑上构成独立的Die,并且可以通过RBRG-L2将多个Die连接起来形成更大的芯片。通过 I/O Die 上的多个 SerDes 链路,我们可以将芯片扩展到 4P(4 个芯片)系统,总核心数超过 300 个,并保持缓存一致性。

4.3 AI处理器的NoC

由于海量人工智能模型参数巨大,计算能力和聚合带宽是训练系统首先考虑的因素。这些要求正在突破当今培训系统的极限。一个简单的解决方案是在芯片上集成尽可能多的设备(即 AI 内核),但它需要高效的片上网络(NoC)。网状或类网状NoC具有所需的可扩展性,但传统的类网状NoC将设备限制在网状交叉点,这可能会削弱其优势。为了克服可扩展性障碍,我们可以通过另一种方式构建 NoC。

我们的 AI 训练处理器中的 NoC 是一个基于多环的网格,其中 RBRG-L1 负责跨环传输,如第 4.1 节所述。通过专用的跨环设备,每个环都有大量的环站,不受交叉口数量的限制。通过这样做,连接到 NoC 的设备总数最大化,环总数减少。

与服务器CPU中的L3缓存不同,AI处理器中的分布式L2仅提供数据存储,组关联缓存的功能由LLC实现。因此,AI Core 发起的所有数据请求首先由 LLC 接收和处理(图 8(B) 中的路径 1)。当 LLC 命中目录时,可以在 L2 和 AI Core 之间传输数据(图 8(B)中的路径 2 和路径 3),而当目录未命中时,L2 通过 LLC 向 HBM 请求数据,数据在 从 HBM 传输到 L2(图 8(B) 中的路径 4)。AI核心与L2之间的通信以及L2与HBM之间的通信是最重要的片上流量。而且这两个交通流是正交的。

在通信模式中,一个AI核只会对数据块有访问请求,但不会向其他AI核发起请求,同样,一个L2永远不会访问另一个L2,这意味着通信在某种程度上受到限制和局部化 他们的访问模式。基于这一观察,我们将所有 AI 核心放在垂直环上,将与内存相关的节点放在水平环上,如图 8(B)所示。这样,路由路径上的任何请求只需经过一次环变即可到达目的节点。这意味着我们可以根据它们的源和目的地信息使用X-Y或Y-X路由算法。

打开网易新闻 查看更多图片

大量器件的均衡布局和简单的路由算法是实现处理器所需的高计算能力和高带宽的关键。与服务器CPU类似,AI计算芯片可以通过RBRG-L2节点连接到I/O芯片,以进一步纵向扩展和I/O接口扩展。

4.4 基于SWAP的无死锁

正如4.1节中提到的,I-tag和E-tag保证目的环上的flit能够成功弹出,避免饥饿和活锁,而在多个环之间建立flit互锁依赖的情况下,需要死锁解决机制。

基于多环的系统在芯片内的多个环之间引入了一种新型死锁,如图 9 所示。图9说明了一对具有每个flit的环想要通过环桥向另一个环传输,当两个环上都没有空闲时隙时,传输被停滞。逃逸虚拟通道是一种广泛使用的恢复技术,用于在没有路由或注入限制的情况下打破死锁,这可能会导致正常非死锁情况下的吞吐量下降。但为逃生虚拟通道额外预留槽位必然会增加网络延迟,因此在延迟敏感的Server-CPU场景中,我们使用延迟友好的“SWAP”机制来打破僵局。

打开网易新闻 查看更多图片

死锁检测和死锁解决:在我们的多环系统中,如果 RBRG-L2 连接的交叉站连续未能在阈值周期内注入 flits,则认为形成死锁,这表明环槽、弹出队列和可用的 Tx 缓冲区在 RBRG-L2全部被跨环flit占用,因此Inject Queue的头部无法完成注入。

一旦检测到死锁,RBRG-L2将被触发进入死锁解决模式(DRM)。在DRM期间,RBRG-L2中的保留Tx缓冲区被激活用于死锁flit,弹出队列中的flit(Flit-B5)被推送到保留的Tx缓冲区,从而为跨环flit释放空间。在遍历的flit (Flit-B6)弹出到空的Eject Queue的周期中,Inject Queue (Flit-A1)中的头部取代Flit-B6的位置在环上向前移动。

在跨站同时注入和弹出的支持下,Inject Queue的头部flit与遍历的flit进行交换,这样,flit就可以流动并最终到达目的节点。 有效的 flits 流意味着僵局被打破。当占用的Tx缓冲区低于阈值后,视为死锁恢复,RBRG-L2和对应的跨站退出DRM。

5 实验评估

5.1 服务器-CPU 实验设置

评估平台:如第二部分所述,我们的设计由两个 Compute-Die 和两个 IO-Die 组成。为了高效运行各种复杂的工作负载,我们开发了整个系统的RTL代码,并使用硬件电路仿真器来加速仿真。使用GCC-7.2.1、OpenJDK-11作为编译器。 C 库的版本是 Glibc-2.1.7。

服务器-CPU 基准测试:服务器-CPU NoC 和 AI-处理器 NoC 的选定基准测试如下:

NoC 带宽:LMBench 是一个微基准测试套件,旨在关注基本操作系统和硬件系统指标。 LMBench 的一部分用于测量 NoC 的带宽。

NoC 延迟:我们构建了一个测试用例来评估 NoC 延迟:禁用所有 L1/L2 缓存并测量一个 CPU 核心的 DDR 访问延迟,同时所有其他 CPU 核心以不同比率发出读、写、读/写请求。

另一个实验设置如下:禁用所有L1/L2缓存,Core-0将3MB数据(位于L3缓存中)更改为修改/独占/共享状态,然后Core-1访问相同的数据并测量延迟。实际应用:使用 SPECint-2006/2017 和 SPECpowerssj-2008 作为实际应用基准。

系统及比较:对于实际应用,如 LMBench、SPECint 和 SPECpower,我们选择最先进的服务器 CPU (Intel-8280/Intel-8180/AMD-7742) 作为基准。对于NoC延迟的实验,我们选择Intel-6148作为基准,因为它的延迟特性优于Intel-8280和AMD-7742。我们的实验提供了单核和一个封装(包含多个小芯片)的结果。为了对各种NoC进行公平比较,我们还将我们的系统缩小到基准产品并提供相关基准测试结果。

5.2 AI 处理器实验设置

评估平台: AI-Processor:如第二部分所述,AI-Processor 由 1 个 AI-Die 和 1 个 IO-Die 组成。我们为人工智能处理器开发了一个周期精确的软件模拟器。 Tensorflow-2.3.0用于部署神经网络。

人工智能处理器基准

NoC带宽:我们使用AI处理器的指令跟踪记录作为NoC的输入并插入多个探针。然后我们测量 NoC 的带宽和平衡。

实际应用:我们选择了MLPerf Benchmark的部分训练案例:ResNet-50 v1.5、Mask R-CNN、BERT。对于ResNet-50,使用ImageNet作为数据集,训练质量目标设置为75.90%。对于Mask R-CNN,使用COCO进行训练,并设置0.377 Box min AP作为目标。对于 BERT,我们使用 Wikipedia-2020-01-01 作为数据集,并将训练质量目标设置为 0.712 Mask-LM 精度。

系统及比较:在人工智能处理器场景中,我们的工作和最先进的基线(NVIDIA-A100)差异很大。因此我们只提供真实神经网络的端到端实验结果进行比较。

5.3 服务器-CPU实验结果与分析

服务器-CPU NoC 带宽:图 10 显示了不同基准系统上的 LMBench 带宽。列出了所有与带宽相关的基准测试,例如 rd(内存读取和求和)、frd(通过操作系统的读取接口读取文件并求和)、cp(内存复制)等。公平地说,实验结果归一化了DDR4通道数和DDR4频率。如图10所示,当单核可以占用整个封装的DDR4带宽时,我们的工作平均比Intel-8280好3.23倍,比AMD-7742好1.77倍。当封装中的所有CPU核心都竞争DDR4带宽时,我们的工作带宽利用率平均比Intel-8280好1.19倍,比AMD-7742好1.7倍。

打开网易新闻 查看更多图片

服务器-CPU NoC 延迟:NoC访问时延对比如表5所示。如上所述,我们在chiplet内或chiplet间场景中测试了各种缓存状态数据的访问延迟。大多数情况下,我们的工作访问延迟较低。此外,图11显示了NoC延迟竞争实验结果。如上所述,一个核心的 DDR4 访问延迟是在其他核心争夺 NoC 资源时测量的。横轴表示后台读/写请求流量的时间比例,纵轴表示测试核心的访问延迟。与 Intel-6148 相比,这项工作的转折点出现在读取、写入或混合背景流量噪声的情况下。

打开网易新闻 查看更多图片
打开网易新闻 查看更多图片

服务器-CPU实际应用:图12显示了SPECInt-2017的实验结果(所有结果均已归一化)。图(A)中,我们比较了单CPU核心的性能作为参考。图 12(B) 显示了一种封装的性能比较。公平地说,我们还将系统缩小到与 Intel-8180(如图 12(C) 所示)和 AMD-7742(如图 12(D) 所示)相同的核心数量。同样,图 13 显示了结果 SPECInt-2006 的。

打开网易新闻 查看更多图片

SPECpower用于评估单服务器和多节点服务器的功耗和性能特征。得分对比如表6所示。该作品在单核测试中的得分比Intel-8280高1.08倍,比AMD-7742高1.03倍。那么一包的分数也是1.19/1.11倍高。 显然,我们的工作在上述每个基准测试中都能取得更好的成绩。

打开网易新闻 查看更多图片

服务器-CPU NoC 分析:Intel-8280没有选择chiplet方法,而是使用无缓冲环来构建多核系统(28核)。AMD-7742 使用异构小芯片,位于 IO-Die 上的开关用于连接四个同构 CPU 芯片(64 核)。与这两个基准相比,这项工作比 AMD-7742 更加异构,这可能会导致更严重的小芯片间死锁问题,并且集成了更多的核心(接近一百个)。然而,借助精心设计的无缓冲多环NoC,这项工作具有更少的DDR访问延迟,并在各种基准测试中实现了更好的可扩展性。

5.4 AI处理器实验结果与分析

AI 处理器 NoC 带宽:由于人工智能任务的多样性,DNN 模型的各层在操作和形状上高度异构。因此,AI核心的不同读/写比率极大地影响了NoC的性能。根据不同神经网络层的不同内存访问行为,我们构建了多个具有不同读/写比率的流量来测试NoC的带宽。在AI处理器中,两种流量模式竞争NoC带宽,即AI-core和L2之间的读/写,以及L2和HBM之间通过系统DMA的数据传输。如表7所示,对于典型的读/写比率,我们的NoC可以提供超过10TB/s的带宽。

打开网易新闻 查看更多图片

对于 AI 处理器,NoC 需要在异构小芯片上的所有 AI 核心之间分配带宽。因此带宽平衡非常重要。因此我们在NoC中集成了多个探针,结果如图14所示。显然,在整个模拟过程中,这些监视器之间的带宽分布非常均衡。大多数时候,所有探头都能获得最大带宽的80%以上。

AI处理器实际应用:表8选择MLPerf Benchmark的部分训练案例作为演示。我们选择TensorFlow-2.3.0作为两者的软件框架平台。公平地说,所有实验都是基于 FP16 混合精度。如表 8 所示,在相同的训练质量目标下,我们的工作性能 ResNet-50 提高了 3.2 倍,BERT 提高了 2.99 倍,Mask R-CNN 提高了 4.13 倍。

打开网易新闻 查看更多图片

AI处理器NoC分析:这个精心设计的NoC可以在AI处理器中重复使用,这是一个截然不同的场景,并实现了16TB/s的带宽。此外,这种无缓冲多环NoC还为所有AI核心提供平衡的带宽供应。在多项基准测试中,这款AIProcessor可以获得比NVIDIA-A100更好的性能和能效。

6.相关工作

先进的2.5D和3D集成技术使小芯片组装系统成为单片芯片设计的替代方式。出于成本和可扩展性的考虑,领先企业在这一领域较早采取行动,而行业偏好是基于chiplet的系统优势的直接体现。

AMD 使用多达四个 Zeppelin 小芯片来构建第一代 EPYC 处理器(那不勒斯),并在后续产品系列(罗马和米兰)中使用中央 IO 芯片发展到多达八个小芯片,以通过无限架构分配系统级互连。

Intel自2013年收购Altera以来,提出了异构chiplet集成计划,推出了将异构chiplet与EMIB、Foveros集成技术集成的Intel Agilex FPGA、Xe HPC等产品。

与上述使用有机基板、无源内插器或硅桥构建的处理器不同,INTACT 推出了第一个在硅有源内插器上测量的处理器,它集成了电源管理、分布式互连,并支持创新的可扩展缓存一致性内存层次结构,适用于 96 - 具有六个小芯片的核心处理器。

表 9 显示了几种最先进的商用处理器的 NoC 相关功能。由于IC工艺正在缓慢而持续地缩小,从而在单个芯片中实现更多内核,因此如何互连内核成为利用众核性能的关键因素。

打开网易新闻 查看更多图片

全新第三代英特尔至强可扩展处理器(代号:Ice Lake-SP、ICX)基于上一代服务器处理器在芯片内发展了无缓冲网格,该系列中最大的芯片 ICX XCC 拥有 40 个内核,因为 大芯片尺寸约为 640 mm2。英特尔的单片芯片战略是一条死胡同。 ICX 模具已达到光罩极限。因此,英特尔目前正在转向多块设计,并采用 2.5D EMIB(嵌入式多芯片互连桥)与其 Sapphire Rapids 集成。

Sapphire Rapids [5] 组合了多达 4 个块,以实现更多的核心数量。尽管最终细节尚未公开,但初步信息表明,高端模型的每个区块都有 16 个核心,并且英特尔继续为区块内的 CPU 核心和其他模块采用网状互连。AMD是采用chiplet设计的先驱之一,最新的第三代Epyc处理器(代号:Milan)通过MCM封装集成了1个IO Die和多达8个CCD(计算芯片)。

AMD Milan 在八核 CCX(核心复合体)内使用双向环形总线和基于 Infinity Fabric 的交换网格来连接 IOD 和 CCD。除了 Epyc 系列服务器芯片外,AMD 还发布了针对超级计算机的 Instinct MI200 系列 GPU。该芯片由八个 ACE(异步计算引擎)组成,并包含两个并排放置的相同芯片,它们通过专用 Infinity Fabric 总线连接。对于四芯片集群,八个小芯片通过另外两个芯片连接双向环。

Fujitsu Fugaku是一款基于ARM的服务器处理器,它使用基于环形总线的NoC连接芯片中的CMG(Core-Memory Group),并使用“TofuD”构建多芯片系统

其他基于 ARM 的处理器,例如 Ampere Altra 系列和阿里巴巴倚天 710,使用 Arm CoreLink 相干网状网络来构建其 SoC。

为了跟上不断增加的核心数量并在基于多核小芯片的系统中提供高效的互连,还进行了多项互连创新,以提高可扩展性并降低硬件成本。[3,6,8,10,16,27]提出带有偏转路由器的无缓冲,以减少网络缓冲区的面积和功耗。 他们通过分层环扩展无缓冲片上网络。[2]提出的无路由器NoC通过选择一组环路来连接核心来消除昂贵的路由器,并通过深度强化学习设计改进方法,以进一步优化NoC吞吐量、延迟和功耗。[28]介绍了一种简单的模块化方法,用于确保多芯片系统中的无死锁布线,重点关注在有源硅中介层上组合芯片的系统。[22]提供了一种机制,使阻塞的数据包能够向前移动,除非保证下一跳的缓冲区是空闲的。

7.总结

本文提出了一种无缓冲多环NoC,可用于连接异构chiplet。此外,我们回顾了片上网络的协同设计过程。在协同设计过程中,多个开发团队分析了一组目标应用程序,并在多个物理实现约束下做出了多个架构设计决策。然后,本文表明NoC设计非常灵活,可以在服务器CPU和AI处理器中重用。实验表明,NoC可以支持近百个服务器-CPU核的缓存一致性服务,并保持较低的访问延迟。对于 AI 处理器,该 NoC 可以提供 16TB/s 带宽,并实现比最先进技术更好的性能和能效。

  • 发布于 2023-09-07 21:23・IP 属地上海