中文 英语
18lickc新利
的意见

人工智能推理记忆系统权衡

关于推理芯片,TOPS并不是你所需要知道的全部。

受欢迎程度

当公司描述他们的人工智能推断芯片时,他们通常会给出TOPS,但不会谈论他们的存储系统,这同样重要。

TOPS是什么?它的意思是每秒运算万亿次。它主要是衡量可实现的最大吞吐量,而不是衡量实际吞吐量。大多数操作都是MAC(相乘/累加),所以TOPS = (MAC单位数)x (MAC操作频率)x 2。

为了真正有效地利用TOPS,芯片需要一个能够让MAC在大部分时间内保持忙碌的内存系统(高MAC利用率):这是真正实现高吞吐量的关键。

AI Inference芯片的内存系统需要:

  1. 为神经网络模型提供权值的存储能力;用于存储用于执行神经网络模型的代码;并用于存储初始输入/图像和中间激活
  2. 以足够高的带宽为MAC提供权重和中间激活,以跟上MAC执行速率
  3. 以足够的带宽将中间激活输出写回内存,以免在写入操作完成时使操作停止

需要多少内存容量?
权重占用大量空间:ResNet-50 INT8占用22.7MB, YOLOv3 INT8占用62MB。我们的期望是,未来更好的模型将是更大的模型,有更多的权重。

中间激活存储:ResNet-50最大激活0.8MB,次之0.4MB;这是为224×224图像。因此,对于批处理大小=1,1.5-2MB的缓冲内存就足够了。如果batch size = N,则缓冲区大小需要大于1.5 mb ~ 2mb的N倍。因此batch size = 16意味着缓冲区大小为24-32MB,使其大于存储权重所需的容量。

YOLOv3的中间激活存储可以大得多,具体取决于映像的大小。YOLOv3对于608×608图像需要18MB的中间激活存储,对于200万像素图像需要>100MB的中间激活存储。因为这些缓冲区的大小非常大,所以进行批处理是没有意义的。

代码大小很重要,但还没有人透露他们的芯片的这一信息。

下图显示了ResNet-50和YOLOv3在不同图像尺寸下的权重和激活所需的推理芯片的总兆字节。

AI推断芯片的内存系统实现有3种选择。大多数芯片会有2或3种不同比例的选择组合:

  1. 分布式本地SRAM -区域效率稍低,因为开销在更少的位上共享,但保持SRAM接近计算可以减少延迟,降低功耗并增加带宽。
  2. 单个批量SRAM -区域效率稍高,但跨芯片移动数据会增加功率,增加延迟,并使单个SRAM成为性能瓶颈。
  3. DRAM -每比特的成本便宜得多,但比特的数量可能远远超过所需的;功耗明显高于SRAM访问;而控制器访问高带宽DRAM的成本是非常显著的。

让我们看看一些具体的数字。

在16nm制程中,1MB的SRAM约为1.1mm2。使用<30MB可以有一个存储系统(不包括代码大小),可以保存权重和激活,对于batch=1,对于ResNet-50片上没有DRAM。因此,非dram芯片可以用于简单的模型和小尺寸的图像。

但图像传感器有120万、200万和400万像素,更大的图像对任何模型都有更高的预测精度。

最常见的基准模型是200万像素图像的YOLOv3:这将需要~160MB的SRAM或~180mm2的16nm来保持芯片上的权重和激活(这是在代码存储因素之前)。

为了使AI推理在边缘具有成本效益,拥有近200mm2的SRAM是不现实的。相反,一些内存容量需要DRAM。

DRAM是每比特成本最低的,但目前LPDDR4可用的最小DRAM是4gb = 512MB:比上述单个型号所需的容量大得多。(额外的容量可用于存储多个模型的权重/代码,因此推断加速器可以在模型之间快速切换)。

为了有效地保持mac的“馈电”,DRAM带宽需要很高。dram需要每台设备以每秒3或4 Gigatransfers的速度传输x32数据。

连接起来并不便宜。x32 LPDDR4 PHY加内存控制器的硅面积为5-6mm2在16nm;所需的BGA球为100-150个。一些AI推断芯片有256位总线,这意味着PHY/控制器和800-1200个球的40-48mm2 !大型bga的封装成本可以与硅的成本相媲美。

理想的AI推理加速器将是一个可以通过1或2个dram和最少的片上SRAM实现高MAC利用率的加速器,以便在实现高吞吐量的同时保持更低的成本和功耗。

在评估AI推断选项时,请询问片上SRAM的大小和片外DRAM的总线宽度,并记住实现容量和带宽所需的成本。这和知道芯片的TOPS一样重要,甚至更重要。



1评论

Ploni 说:

非常好的文章,谢谢!

我有一个问题,关于YOLOv3所需的中间激活存储是如何计算的?

留下回复


(注:此名称将公开显示)

Baidu