0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何设计出最佳的AI推理芯片?

我快闭嘴 来源:电子工程专辑 作者:Geoff Tate 2020-07-17 09:24 次阅读

去年诞生的推理芯片公司数量之多,足以让您头晕目眩。由于业内有众多芯片,也不缺少质量不错的测试基准,所以常常会遗忘极其重要的部分:内存子系统。事实上,如果没有很好的内存子系统,那就不可能有优质的推理芯片。因此,如果一家推理芯片公司只谈论TOPS,却很少讨论SRAMDRAM和内存子系统,那这家公司可能并没有一个很好的解决方案。

一切皆与数据吞吐量相关

优质推理芯片结构合理,可以非常快速地移动数据,意味着芯片处理数据、将数据导入和导出内存的速度非常之快。如果您看一下使用ResNet-50和YOLOv3的模型,将会发现它们不仅在计算方面,而且在各自如何使用内存的方式上都有显著差异。

对于使用ResNet-50的每张图像,需要20亿个乘积累加 (MAC),但是对于YOLOv3,则需要超过2000亿个MAC,增加了100倍。部分原因在于YOLOv3权重更大(6200万的权重,而ResNet-50约为2300万)。然而,最大的区别还在于典型基准的图像大小。ResNet-50使用224×224像素,实际上无人使用该尺寸,而YOLOv3使用200万像素。因此,YOLOv3的计算负载要大得多。

通过上述示例,您可以看到我们有两种不同的工作负载,其中一种的工作量是另一种的100倍。问题显而易见:这样是否意味着YOLOv3运行速度要慢100倍呢?要解答该问题,唯一方法是通过查看内存子系统,因为这告诉您特定的实际吞吐量。

内存子系统

对于推理芯片,我们不仅仅是开发一颗芯片,而是创造一个系统。芯片的MAC相当于引擎,但是如果没有正确的燃料传输系统(内存和互联),引擎就会熄火。

了解一下推理芯片的运行过程,您会发现要先有数据导入,之后须以一定的速度(比如每秒30帧)提供新的图像。图像导入芯片,然后就会输出某种结果。图像大小各异,但大多数应用要处理百万像素级的图像才能达到足够的精度。

在芯片内部,使用神经网络模型处理图像,这需要代码和权重,在每一层的末端还有中间激活函数。所有这些都需要存储在某个地方,然后读写到推理芯片的计算单元中。

应用

AI推理的应用非常多,自动驾驶等边缘应用代表着最大的机遇之一。未来,每辆车都将配有多个推理引擎,可以实时检测到行人、公共汽车和小轿车从而避开他们。这使得处理大尺寸图像(比如在YOLOv3中)非常重要。设想一下用肉眼看图像的情况,也是如此。如果有人给您看了一张小图片,您就会错过很多细节,甚至还可能曲解图片。在自动驾驶汽车和监控摄像头中,小细节才是关键。

边缘和云端的区别在于,在边缘您需要发送即时响应,而在云端通常有大量数据,且需要有足够时间处理。举个例子,如果您在车里,便需要知道行人在哪里,这样才能有效避开他们。但是,数据中心的情况则不同,数据中心中有一些应用(如为图像贴标签)可以在夜间进行大批量处理。这在边缘应用场景中是行不通的,因为这时所有操作都必须快速处理。且延迟很短,这就意味着处理批次= 1。

因此,本质上我们是重新设计芯片,以便在短时间(低延迟)内交付结果,及时进行正确的响应。我们需要立即处理数据并立即返回结果,这意味着内存是其中绝对关键的一部分。

若使用ResNet-50,您会发现有许多芯片的性能在处理批次= 10或100时非常高,但当处理批次= 1时性能就下降很多,某些芯片的性能下降幅度高达75%。这意味着,无论他们从高批次处理率的MAC获得的利用率有多高,当批处理率为1时其利用率只有四分之一。因此,在处理批次=1时(这在边缘应用中很关键),一些芯片的MAC计算能力利用率还不到25%。

架构变化

过去,处理器的内存架构(如今仍在数据中心中进行大量推理)采用DRAM和多层缓存,所有这些都被馈入处理器。内存是集中式单一存储器。而推理芯片的内存是分布式的。一种加快数据处理速度的方法是把MAC分成块,然后用本地化SRAM来分配这些块。这是Flex Logix和Intel等公司所采用的一种方法,将在未来占据主导地位。这样做的理由是,让内存更接近MAC会缩短延迟时间,从而提高MAC分布式并行处理能力。

边缘应用的另一关键要求是要满足成本和功耗预算。用于训练的芯片可以占用整片晶圆大小,而针对汽车和监控摄像头等应用的芯片有相关的成本预算和功耗限制。通常,在满足这些预算的情况下,可用的SRAM数量不足以在芯片上存储所有的权重、代码和中间激活函数。这些芯片需要不断地处理大量的数据,而大多数边缘应用总是处于工作状态。因为所有芯片都会发热,所以其处理量与散热量呈正相关。若能从同等数量的芯片和功耗预算中获得更多的吞吐量,这种芯片架构将会是赢家,因为它们能够花较少的功耗和成本交付更多的结处理结果。

优化功耗和成本

有些捷径可以让公司折中检测目标的精准度。然而,这并非客户想要的方式。客户希望运行的模型可以获得高精度的对象检测和识别,还要在一定的功耗限制范围内。要做到这一点,关键在于内存子系统。

如果使用ResNet-50或YOLOv3,需要存储权重。YOLOv3中的权重约为23MB,而ResNet-50的权重约为62MB。仅是将这些权重存储在芯片上就需要接近100平方毫米的芯片面积,这对大多数应用来说都不可行。这意味着大容量内存需要在芯片之外,也就是使用DRAM。

有一点需要说明,我们经常被问到DRAM的类型是否重要,答案是非常重要。高带宽内存(HBM)极其昂贵,对于成本预算严格的边缘应用不太适用。LPDDR4是一种更好的内存,因为它具有更宽的总线配置,可以从单个DRAM中获得更多的带宽。DRAM对热非常敏感,对于在室外工作的汽车和监控摄像机来说,可能是个问题。因此,考虑到成本和散热问题,最好尽量少用DRAM。

如何设计出最佳的推理芯片

设计者要考虑客户将进行何种类型的处理、它们的负载和应用会是什么、以及它们会在哪里使用,方能设计出最佳的推理芯片。归根结底,客户想要最高的吞吐量——这意味着他们需要高的MAC利用率。获得高MAC利用率的方法就是为MAC提供高带宽,但希望用最少的SRAM和最少的DRAM来实现。

芯片设计者需要知道客户会在哪些应用场景下使用,并采用相应的模型,而且要密切关注其权重、代码大小和激活函数。现在有一些建模工具可以让芯片设计者调整MAC、SRAM和DRAM的数量,能够做出一系列折衷取舍,以便决定如何交付最低价的芯片和最高的吞吐量。

芯片设计者还能用很多方法来组织MAC,让其以更高的频率运行。例如,可以将MAC优化为8位的乘积和累加,比16位的乘法和累加运行得更快。在这种情况下,惟一的折衷是精度稍低一些,但是可以在成本和功耗较低的前提下提供更大的吞吐量。

那么,ResNet-50和YOLOv3在内存使用方面有什么不同呢?虽然权重有2倍的差异,但最大的区别在于激活函数。ResNet-50的每一层都会产生激活函数,其最大激活函数大小为1MB,有些层甚至更小一些。对于YOLOv3,最大层的最大激活函数大小是64MB,这64MB必须存储起来以便进入下一层。如果注意一下片上或DRAM容量需求,您会发现YOLOv3的激活函数实际上比权重需要更多存储容量,这与ResNet-50大不相同。事实上,客户需要谨慎的是,一些公司设计芯片时会在片上储存ResNet-50权重,他们知道其激活函数很小,能让其性能“看起来”更好。然而,在实际应用中,这种芯片的性能会下降得特别厉害。

SRAM和DRAM的折衷

DRAM芯片不便宜,但更贵的是与DRAM芯片的连接。芯片设计公司往往注重裸片尺寸,但芯片封装尺寸也是决定成本的一个重要因素,有时可能比裸片更贵。每增加一个DRAM,至少增加100个球。如今一些芯片有8个DRAM连接,这就需要对1000个球进行封装,导致芯片非常昂贵。虽然公司意识到不能在芯片上配置所有的SRAM,但他们也知道不能通过过多的DRAM来解开成本难题。他们真正需要的是用尽可能少的DRAM和尽可能少的SRAM。要想如此,芯片设计者需要研究激活函数。了解一下64MB的激活函数,就会发现其实只有一个。大多数激活函数还是较小的,所以如果将8MB的SRAM放在芯片上,大多数中间激活函数将可以存储在芯片上,只需要用DRAM来处理最大的激活函数。

这是推理芯片的最佳方案,也是芯片设计者在设计中应该努力追求的目标。如果您是客户,您要问一下有关芯片内存子系统的问题,因为这是决定它在实际应用中性能表现的重要因素。
责任编辑:tzh

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47775

    浏览量

    409076
  • 摄像头
    +关注

    关注

    59

    文章

    4607

    浏览量

    92889
  • AI
    AI
    +关注

    关注

    87

    文章

    26430

    浏览量

    264036
收藏 人收藏

    评论

    相关推荐

    开发者手机 AI - 目标识别 demo

    Network Runtime 神经网络运行时,作为中间桥梁连通上层AI推理框架和底层加速芯片,实现AI模型的跨芯片
    发表于 04-11 16:14

    ONNX Runtime支持龙架构,AI推理生态再添新翼

    近日,备受瞩目的AI推理框架开源社区ONNX Runtime宣布推出支持龙架构的新版本1.17.0,这一里程碑式的更新意味着龙芯平台上的AI推理应用开发与部署将更加便捷。
    的头像 发表于 03-27 10:58 264次阅读

    AMD EPYC处理器:AI推理能力究竟有多强?

    如今,AMD EPYC处理器已经成为最常被选择用于AI推理的服务器平台,尤其是第四代Genoa EPYC 9004系列,执行AI推理的能力又得到了巨大的飞跃。
    发表于 03-15 09:47 148次阅读

    AI推理框架软件ONNX Runtime正式支持龙架构

    近日,知名AI推理框架开源社区ONNX Runtime正式发布支持龙架构的版本1.17.0。
    的头像 发表于 03-12 12:23 261次阅读
    <b class='flag-5'>AI</b><b class='flag-5'>推理</b>框架软件ONNX Runtime正式支持龙架构

    英伟达要小心了!爆火的Groq芯片能翻盘吗?AI推理速度「吊打」英伟达?

    随着科技的飞速发展,人工智能公司Groq挑战了英伟达的王者地位,其AI芯片不仅展现出卓越的实力,还拥有巨大的潜力。Groq设计了一种独特的推理代币经济学模式,该模式背后牵动着众多因素,却也引发了深度
    的头像 发表于 03-08 09:44 304次阅读
    英伟达要小心了!爆火的Groq<b class='flag-5'>芯片</b>能翻盘吗?<b class='flag-5'>AI</b><b class='flag-5'>推理</b>速度「吊打」英伟达?

    Groq LPU崛起,AI芯片主战场从训练转向推理

    人工智能推理的重要性日益凸显,高效运行端侧大模型及AI软件背后的核心技术正是推理。不久的未来,全球芯片制造商的主要市场将全面转向人工智能推理
    的头像 发表于 02-29 16:46 628次阅读

    AI算法在RZ/V芯片中的移植推理流程

    之前文章已介绍了一些AI算法Demo的应用 ,我们提供从模型训练到RZ/V系列嵌入式端推理应用的完整流程。整体流程如下图所示。
    的头像 发表于 12-20 12:21 643次阅读
    <b class='flag-5'>AI</b>算法在RZ/V<b class='flag-5'>芯片</b>中的移植<b class='flag-5'>推理</b>流程

    芯曜途科技发布适用于MEMS传感器阵列的STN100近感AI推理芯片

    近日,芯曜途科技发布了适用于MEMS传感器阵列的STN100近感AI推理芯片
    的头像 发表于 12-15 15:51 724次阅读

    HarmonyOS:使用MindSpore Lite引擎进行模型推理

    场景介绍 MindSpore Lite 是一款 AI 引擎,它提供了面向不同硬件设备 AI 模型推理的功能,目前已经在图像分类、目标识别、人脸识别、文字识别等应用中广泛使用。 本文介绍
    发表于 12-14 11:41

    芯曜途发布适用于MEMS传感器阵列的近感AI推理芯片

    近日, 芯曜途科技发布了适用于MEMS传感器阵列的STN100近感AI推理芯片。 芯曜途此次发布的STN100芯片,采用了创新架构设计,专为智能传感器设计,有望改变传统接口电路
    的头像 发表于 12-14 09:28 409次阅读

    #芯片 #AI 世界最强AI芯片H200性能大揭秘!

    芯片AI
    深圳市浮思特科技有限公司
    发布于 :2023年11月15日 15:54:37

    Ai 部署的临界考虑电子指南

    虽然GPU解决方案对训练,AI部署需要更多。 预计到2020年代中期,人工智能行业将增长到200亿美元,其中大部分增长是人工智能推理。英特尔Xeon可扩展处理器约占运行AI推理的处理器
    发表于 08-04 07:25

    NIO的自动驾驶AI推理工作流

    自动驾驶的最优 AI 推理流水线设计
    的头像 发表于 07-05 16:30 388次阅读
    NIO的自动驾驶<b class='flag-5'>AI</b><b class='flag-5'>推理</b>工作流

    Meta自研RISC-V AI推理芯片

    Meta取消了大规模推出内部推理芯片的计划,并开始着手开发能够执行训练和推理芯片
    的头像 发表于 05-20 10:03 1558次阅读
    Meta自研RISC-V <b class='flag-5'>AI</b><b class='flag-5'>推理</b><b class='flag-5'>芯片</b>

    如何在RT-Thread OS环境下使用ncnn进行AI推理

    今天简报较短,主要演示一下如何在RT-Thread OS环境下使用ncnn进行AI推理
    的头像 发表于 05-04 16:29 806次阅读
    如何在RT-Thread OS环境下使用ncnn进行<b class='flag-5'>AI</b><b class='flag-5'>推理</b>