其实我并不打算谈论内存计算架构,虽然内存计算架构中有一些很有意思的东西,但在这里我们将讨论机器学习(ML)设计中的内存支持的主流架构。这些仍然基于传统的存储器组件/ IP,例如高速缓存、寄存器文件、SRAM和各种类型的片外存储器,包括高带宽存储器(HBM)。但是,这些存储器的组织、连接和定位方式在ML应用程序之间可能会有很大差异。
在最简单的情况下,想象一下通用ML芯片中的加速器,它将为创意系统设计师可能想到的任何边缘应用提供动力。加速器本身可能是现成的IP,可能是基于FPGA或DSP的。此时功率和延迟通常都不是最重要的因素。加速器嵌入在一个更大的SoC中,可能由一个MCU或MCU集群以及其他功能控制,通常可能是外围接口,当然还有通信IP。为减少片外存储器访问,该设计提供了片上高速缓存。对该缓存的访问可以来自MCU或MCU集群和加速器,因此必须对其进行连续性管理。
现在让我们来看看ADAS的应用程序,其中Mobileye是很知名的。这仍然是一个边缘应用程序,但从延迟,带宽和功耗角度来看,性能要求更高,复杂性也更高。例如,它需要支持多种加速器类型以支持不同类型的传感器和传感器融合。对于产品设计中的可扩展性,则可以将加速器分组,很可能使用本地暂存器或缓存,这样就可以发布具有不同数量的这些组的一系列产品。随着加速器的数量和类型的增加,使用多个代理缓存连接到系统互连(每个加速器组一个)将它们聚集在一起是有意义的。为了支持产品策略,应该可以很容易地按设备变量扩展这个数字。
Arteris IP通过其Ncore缓存一致的NoC互连支持这两种用例。由于必须保持整个NoC的一致性,因此它带有自己的目录/snoop过滤器。该产品还为相干域和非相干域之间的接口提供代理缓存,并且可以使用多个此类缓存来创建使用非连贯协议(如AXI)的自定义IP块集群,但现在可以作为对等的集群在缓存相干域中进行通信。Arteris IP还提供多种类型的最后一级缓存,包括Ncore Coherent Memory Cache,它还与一致性管理相关联,以便在需要进入主内存之前提供最后一级的缓存。对于非连贯通信,Arteris IP还提供通过AXI接口(CodaCache)集成的独立最后一级缓存。
这些ML边缘解决方案已在该领域得到验证:Movidius和Mobileye是两个备受关注的例子。
现在来看数据中心加速器,基于我国目前的情况,内存架构看起来完全不同。在这里,将为大家介绍一家新公司:燧原科技,它为主要的机器学习框架构建高性能、低成本的芯片。 燧原科技是一家由腾讯支持的初创公司,总部设在上海,获得了5000万美元A轮融资,因此他们在这个快速发展的领域中扮演着重要的角色。他们追求的目标与Cambricon和百度的昆仑芯片一样,都是要在数据中心的ML性能上达到极致。
之前也谈到过设计团队如何为这个目标构建架构的,通常是用一组加速器来实现二维图像处理中的大规模并行性。网格可以折叠成一个环或折叠成两个环来实现RNN,以支持处理时间序列。实施方式通常是平铺的,每个平铺有4个处理器和本地存储器和平铺块相邻以构建更大的系统,简化了后端中布局布线。
像这样的设计很快变得非常大,他们需要立即访问大量的片外工作内存,而不会出现通过缓存一致性管理进行中介的延迟。这里有几个选项:HBM2带宽高但成本高,而GDDR6成本较低但带宽也更低(边缘的片外存储器通常是LPDDR)。 Arteris IP营销副总裁Kurt Shuler表示,GDDR6因成本原因在中国很受欢迎。
这些网格或平铺网格设计中的另一个问题是,内存控制器被放置在网格的外围,以最小化网格中核心和控制器之间的延迟。然后必须通过主存储器接口(例如HBM2)上的通道进行管理。这需要在存储器接口和控制器之间进行大量的交叉、重新排序、流量聚合和数据宽度调整,同时保留这些存储器标准的高吞吐量带来的好处。 Arteris IP AI-package提供IP和必要的接口来管理这种需求。在客户端,他们至少已经拥有百度、Cambricon和Enflame,其中两个已经完成部署。
显然,为ML应用程序构建内存和NoC互连的方法不止一种。Kurt表示,他们多年来一直与ML客户合作,不断完善这些解决方案。由于他们现在是商业NoC解决方案领域的望着,我想他们会有一个光明的未来。
原文链接:https://semiwiki.com/automotive/8131-ml-and-memories-a-complex-relationship/