缓存在 AI 处理器设计中的作用

时间:2024-03-22

  假设我们正在设计一款包含一个或多个处理器内核的片上系统 (SoC) 设备。我们将在设备内部包含相对少量的内存,而大部分内存将驻留在 SoC 外部的分立设备中。
  快的存储器类型是 SRAM,但每个 SRAM 单元需要六个晶体管,因此 SRAM 在 SoC 内部很少使用,因为它消耗大量空间和功耗。相比之下,DRAM 每个单元只需要一个晶体管和电容器,这意味着它消耗的空间和功耗要少得多。因此,DRAM 用于在 SoC 之外创建大容量存储设备。尽管 DRAM 提供高容量,但它的速度明显慢于 SRAM。
  随着用于开发集成电路的工艺技术的发展,结构越来越小,大多数设备变得越来越快。遗憾的是,作为 DRAM 的晶体管电容器位单元却并非如此。事实上,由于其模拟特性,位单元的速度几十年来基本保持不变。
  话虽如此,从外部接口来看,DRAM 的速度在每一代新产品中都翻了一番。由于每次内部访问都相对较慢,因此实现这一点的方法是在设备内部执行一系列交错的访问。如果我们假设我们正在读取一系列连续的数据字,那么接收个字将需要相对较长的时间,但我们会更快地看到任何后续的字。
  如果我们希望传输大块连续数据,这种方法很有效,因为我们在传输开始时进行性命中,之后后续访问就会高速进行。然而,如果我们希望对较小的数据块执行多次访问,就会出现问题。在这种情况下,我们不是性点击,而是一遍又一遍地接受该点击。
  速度更快
  解决方案是使用高速 SRAM 在处理设备内部创建本地缓存存储器。当处理器首次从 DRAM 请求数据时,该数据的副本将存储在处理器的高速缓存中。如果处理器随后希望重新访问相同的数据,它会使用其本地副本,这样访问速度会快得多。
  在 SoC 内部使用多级缓存是很常见的。这些级别称为 1 级 (L1)、2 级 (L2) 和 3 级 (L3)。级高速缓存的容量,但访问速度,随后的每都具有较高的容量和较低的访问速度。如图1所示,假设系统时钟为 1 GHz 且采用 DDR4 DRAM,则处理器访问 L1 缓存只需 1.8 ns,访问 L2 缓存只需 6.4 ns,访问 L3 缓存只需 26 ns。从外部 DRAM 访问一系列数据字中的个数据需要花费 70 纳秒(数据来源Joe Chang 的服务器分析)。

  图 1概述了 1 GHz 时钟和 DDR4 DRAM 的高速缓存和 DRAM 访问速度。动脉
  缓存在人工智能中的作用
  人工智能的实施和部署场景多种多样。就我们的 SoC 而言,一种可能性是创建一个或多个 AI 加速器 IP,每个都包含自己的内部缓存。假设我们希望保持缓存一致性,我们可以将其视为与 SoC 处理器集群保持所有数据副本相同。然后,我们必须使用一致性互连形式的硬件缓存一致性解决方案,例如 AMBA 规范中定义的 CHI,并受到 Arteris IP 的 Ncore 片上网络 (NoC) IP 的支持(图2a) 。

  图 2上图显示了 AI 上下文中的缓存示例。动脉
  维护缓存一致性会带来一定的开销。在许多情况下,人工智能加速器不需要保持与处理器集群相同程度的缓存一致性。例如,可能只有在加速器处理完大块数据后,才需要重新同步,这可以在软件控制下实现。AI 加速器可以采用更小、更快的互连解决方案,例如 Arm 的 AXI 或 Arteris 的 FlexNoC(图 2b)。
  在许多情况下,加速器 IP 的开发人员在其实现中不包括缓存。有时,直到性能评估开始才认识到对缓存的需求。一种解决方案是在 AI 加速器和互连之间添加特殊的缓存 IP,以提供 IP 级性能提升(图 2c)。另一种可能性是使用缓存 IP 作为缓存来提供 SoC 级性能提升(图 2d)。缓存设计并不容易,但设计人员可以使用可配置的现成解决方案。
  许多 SoC 设计人员倾向于仅在处理器和处理器集群的背景下考虑缓存。然而,缓存的优势同样适用于许多其他复杂的IP,包括AI加速器。因此,以 AI 为中心的 SoC 的开发人员越来越多地评估和部署各种支持缓存的 AI 场景。

上一篇:交流电容和容抗的深度讲解
下一篇:使用单个电池驱动 5V 负载,使用 1.2A 96% 效率的 DC 到 DC 升压转换器

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料