向右滑动:上一篇 向左滑动:下一篇 我知道了
广告

使用多个推理芯片进行设计的优势与挑战

时间:2020-01-03 作者:Geoff Tate 阅读:
过去两年是推理芯片行业最繁忙的两年。甚至有段时间,每隔一周都会有新公司推出新的优化方案。尽管这些创新都是伟大的,但问题在于大多数公司都不知道如何使用各种解决方案,因为他们无法确定哪个解决方案的性能优于另一个解决方案。
ASPENCORE

过去两年是推理芯片行业最繁忙的两年。甚至有段时间,每隔一周都会有新公司推出新的优化方案。尽管这些创新都是伟大的,但问题在于大多数公司都不知道如何使用各种解决方案,因为他们无法确定哪个解决方案的性能优于另一个解决方案。在这个新市场上,由于没有一套既定的基准,公司们要么必须尽快熟知推理芯片,要么必须相信各个供应商提供的性能数据。g0UEETC-电子工程专辑

大多数供应商给出的某些性能指标通常都是有利于其芯片表现的基准。一些供应商在讨论TOPS和TOPS/Watt时没有指定模型、批量大小或工艺/电压/温度条件。其它供应商使用ResNet-50基准,这一模型相当简单,远低于人们的需求,因此它在评估推理选项方面的价值令人怀疑。g0UEETC-电子工程专辑

我们在这条漫长道路上探索了很久。众多公司逐渐发现,在评测推理芯片性能时,最关键的是(1)高MAC利用率(2)低功耗(3)保持小尺寸。g0UEETC-电子工程专辑

我们知道如何评测——接下来呢?

在我们熟知推理芯片之间的性能评测比对方法之后,公司们开始提出在同一设计中同时使用多个推理芯片的优点(或缺点)的问题。 简而答之,只要推理芯片设计正确,使用多个推理芯片可以实现性能的线性提高。当我们考虑使用多个推理芯片时,可以拿高速公路作类比,你想要一条单行道公路还是一条四车道公路?g0UEETC-电子工程专辑

显然,每家公司都想要一条四车道的高速公路,所以现在的问题变成了“我们如何在不造成交通堵塞的情况下成功打造这条四车道高速公路?” 答案在于选择正确的推理芯片。为解释这一点,让我们先了解神经网络模型。g0UEETC-电子工程专辑

神经网络被分解成多层。像ResNet-50有50层,YOLOv3有100多层,并且每层都会跟进上一层的激活。因此,在第N层中,其输出是进入N+1层的激活值。它等待该层的进入,计算完成后,输出是进入n+2层的激活值。这会一直持续到最后一层,直到算出结果为止。请记住,此示例的初始输入是图像或模型正在处理的任何数据集。g0UEETC-电子工程专辑

多个芯片何时发挥作用?

事实是,即便你的芯片具有一定的性能水平,总会有客户希望获得两倍或四倍的性能。但在某些情况下,如果你分析神经网络模型,这是有可能实现的。你只需要关注如何将模型分成两个芯片或四个芯片。g0UEETC-电子工程专辑

多年来,这一直是并行处理面临的问题,因为对于正在进行的处理,人们很难找出划分方式 并确保所有处理都会叠加,而不是造成性能缩减。g0UEETC-电子工程专辑

与并行处理和通用计算不同,使用推理芯片的好处在于,客户通常提前知道他们是否需要使用两个芯片,这样编译器就不必在运行中做出决定,它是在编译时完成的。有了神经网络模型,一切都是完全可预测的,因此我们可以分析并找出如何准确地拆分模型,以及它是否能在两个芯片上良好地运行。g0UEETC-电子工程专辑

为了确保该模型可以在两个或更多芯片上运行,必须逐层查看MAC的激活值大小和数量。通常情况下,最大的激活值出现在第一层。这意味着激活值大小随着层数的递增而缓慢下降。g0UEETC-电子工程专辑

查看MAC的数量以及每周期MAC完成数量也很重要。在大多数模型中,每个周期中完成的MAC数量通常与激活值大小相关。这很重要,因为如果您有两个芯片,并且希望以最大频率运行,则需要为每个芯片分配相同的工作负载。如果一个芯片完成了模型的大部分工作,而另一个芯片只完成了模型的一小部分工作,那么您将受到第一个芯片的吞吐量的限制。g0UEETC-电子工程专辑

如何在两个芯片之间分割模型也很重要。您需要查看MAC的数量,因为这决定了工作负载的分配。您还必须查看芯片之间传递的信息。在某些情况下,您需要分割模型,并使其能够传递最小激活值,以使所需通信带宽量和传输延迟最小化。若分割的模型导致激活值非常大,则激活值的传输会成为瓶颈,并限制双芯片方案的性能。g0UEETC-电子工程专辑

下图显示了YOLOv3/Winograd/2 Megapixel图像的激活输出大小和累积的Mac逐层操作(绘制出卷积层)。为了平衡两个芯片之间的工作量,该模型将削减约50%的累积MAC操作——此时,从一个芯片到另一个芯片的激活值是1MB或2MB。在4个芯片之间分割,削减量大约为25%、50%和75%;注意,激活值在开始时最大,所以在25%的削减点时,有4或8MB的激活要传输。g0UEETC-电子工程专辑

YOLOv3/Winograd/2Mpixel图像的激活输出值(蓝条)和MAC操作累积(红线),显示了如何在多个芯片之间分配工作负载(图片:Flex Logix)  g0UEETC-电子工程专辑

g0UEETC-电子工程专辑

性能工具

幸运的是,现在可以使用性能工具来确保高吞吐量。事实上,模拟单个芯片性能的工具可以推广到模拟两个芯片的性能。虽然任何给定层的性能完全相同,但问题在于数据传输如何影响性能。建模工具需要考虑这一点,因为如果所需的带宽不够,那么该带宽将限制吞吐量。g0UEETC-电子工程专辑

如果您需要处理4个芯片,则将需要更大的带宽,因为模型第一个1/4部分的激活值远大于后面部分的激活值。因此,您可以借助投入的通信资源将大量芯片连接在一起,但所有芯片,包括独立芯片在内,也会因此承担间接成本。g0UEETC-电子工程专辑

结论

使用多个推理芯片可以显著提高性能,但前提是必须按照上述方法正确设计神经网络。如果我们回顾一下高速公路的类比,就会发现,使用错误的芯片和神经网络模型很有可能会增加通信量。如果你一开始就使用正确的芯片,那你就步入正轨了。谨记,最重要的是吞吐量,而不是TOPS或Res-Net50基准。一旦你选择了正确的推理芯片,你就可以设计一个同样强大的神经网络模型,为你的应用需求提供最佳的性能。g0UEETC-电子工程专辑

(参考原文:Advantages and Challenges of Designing with Multiple Inferencing Chips , by Geoff Tate)g0UEETC-电子工程专辑

责编:Amy Guang0UEETC-电子工程专辑

本文为《电子工程专辑》2020年1月 刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅 g0UEETC-电子工程专辑

ASPENCORE
本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
您可能感兴趣的文章
  • 深交所质疑康佳:没有芯片业积累,第1年能卖1亿颗? 2月初《电子工程专辑》曾报道,康佳披露其控股子公司首款存储主控芯片已实现量产,并要争取在2020年实现销售1亿颗的目标。在这之后,深康佳A股价连续涨停。2月23日晚间,近15个交易日9次涨停,累计上涨122.6%的深康佳A收到深交所《关注函》,要求解释“如此短时间研发出的芯片要1年卖1亿颗,是否属于夸大、误导市场行为”……
  • 中芯国际宣布采购美国泛林半导体设备,扩大14nm量产 国内最大的晶圆代工厂中芯国际18日宣布,公司在2019年3月12日至2020年2月17日的12个月期间就机器及设备向泛林团体发出一系列购买单,花费斥资6.01亿美元(约合42亿元人民币)。
  • OPPO首次内部公开芯片自研计划 2月16日晚间,OPPO CEO特别助理发布内部文章《对打造核心技术的一些思考》,文中提出三大计划,涉及软件开发、云,以及首次向全体员工公开的关于自研芯片的“马里亚纳计划”。此前,OPPO一直采用的是联发科和高通的处理器,不过日前微博上的行业人士爆料称:OPPO跟MTK大砍5G芯片订单……
  • 当前国内集成电路半导体行业现状及应对策略 集成电路产业链庞大而复杂,主要分为集成电路设计、集成电路制造以及集成电路封装测试等三个主要环节,同时每个环节配套以不同的制造设备和生产原材料等辅助环节。我们下文将从制造设备及原材料、集成电路设计、集成电路制造和封装测试等四个环节出发,分析每个环节国内相关环节的现状、面临的问题,并提出对策建议。
  • 芯片信任根走向开源 随着设备联网的普及,更大的攻击面使得系统更容易被黑客入侵,安全性也变得越来越重要。硬件信任根(RoT)是最基本的安全级别。一个新成立的行业组织OpenTitan,旨在使安全性更易访问和透明化。
  • 中国能否催生像Arduino和RISC-V这样的开源硬件创新? Linux、Apache、MySQL,甚至Android等开源软件已经被科技行业所熟悉,但开源硬件是否也可以像软件一样流行呢?Arduino还只是开发板,芯片设计是否也可以采用开源的模式呢?
相关推荐
    广告
    近期热点
    广告
    广告
    广告
    可能感兴趣的话题
    广告