人工智能内存选择面临的困境有哪些
2020/12/21 09:09   电子发烧友      关键字:人工智能 内存 选择 困境      浏览量:
在人工智能以及针对各种截然不同的终端市场和系统而设计的机器学习芯片快速发展的推动下,人们可选择的存储器/体系架构数量呈现爆炸式增长。
  在人工智能以及针对各种截然不同的终端市场和系统而设计的机器学习芯片快速发展的推动下,人们可选择的存储器/体系架构数量呈现爆炸式增长。
  在这些系统中,某些系统的模型参数大小可能在100亿到1000亿之间,并且芯片或应用之间的差异可能会非常大。神经网络的训练和推理是当今最复杂的工作负载之一,这使得很难找到最优的存储解决方案。这些系统消耗了大量的计算资源(主要是使用乘法累加运算)以及大量内存带宽。系统任何一个环节的减速都可能对整个系统产生影响。
  Arm机器学习集团产品营销副总裁SteveRoddy说:“目前已经部署了一系列技术来降低神经网络模型的复杂性和神经网络模型的内存需求。例如,可以通过量化、网络简化、剪枝、聚类和模型压缩来尽可能减小模型的大小。在设备运行时,通过智能调度跨层重用中间值还可以减少内存流量,从而加快推理运行时间。”
  这给内存开发人员带来了巨大的压力,要求他们以最低的功耗、面积和成本提供尽可能多的带宽。这一趋势当前并没有减弱的迹象。神经网络模型规模逐年增长,为了训练这些模型,数据集也在不断增长。
  “这些模型的规模和训练集的大小每年都以大约一个数量级的速度增长,”来自Rambus公司的杰出发明家、研究员StevenWoo说。“今年年初,当最新的自然语言处理模型问世时,它具有大约170亿个参数,这个数字够大了吧,但是,今年夏天又出现了一个更新的版本,参数的数量居然上升到了1750亿。也就是说,大约七个月的时间,参数的数量就增加了整整10倍。”
  20世纪80年代和90年代初的神经网络模型大约有100到1,000个参数。“如果我有一个更大的模型,我需要更多的样本来训练它,因为每个参数都必须调整,”StevenWoo说。“对于那些在技术领域缺乏耐心的人来说,当您拥有更多数据时,您不想再在训练上等待那么长的时间。唯一的出路是是拥有更多带宽。您必须能够更快地将这些数据推送到系统中,并更快地将其提取出来。带宽是头等大事。”
  另一个问题是能源。Woo表示:“如果您要做的只是将性能提高一倍,同时所消耗的电量也增加一倍,那么,生活就会很美好。但是,这不是它的运作方式,您实际上需要非常在乎功率问题,因为您墙上的电源插座只能承受这么大的功率。事实是,人们确实希望将性能提高X倍,但同时他们希望能将能源效率提高2X倍,这就是让事情变得困难的地方。”
  这种权衡在AI推理应用方面更加困难。“今天,AI/ML的训练和推理之间的鸿沟越来越大,”CadenceIP集团产品市场部总监MarcGreenberg指出。“训练需要最大的内存带宽,并且通常是在功能强大的服务器类型的机器或非常高端的GPU卡上进行的。在训练领域中,我们发现,高阶训练使用HBM内存,而低阶训练使用GDDR6内存。HBM存储器特别擅长以最低的单bit能量提供最高的带宽。HBM2/2E内存可以在AI/ML处理器与每个存储器堆栈之间提供高达每秒3.2/3.6TB的内存带宽,而即将发布的HBM3标准则有望提供更高的带宽。”
  成本权衡
  这种性能当然是有代价的。Greenberg指出:“HBM作为一种高端解决方案,有一个与之匹配的高价格自然无可厚非,这意味着HBM可能会继续部署在服务器机房和其他高端应用中。GDDR6技术有助于降低成本,当今的器件可以通过技术以16Gbps的数据速率提供每秒512Gbit/s的速度,而且将来会出现更快的数据速率。用户将其中多个器件并行放置也很常见。例如,某些图形卡可以并行使用10个或更多GDDR6部件,以达到5Tbps速度甚至更高的带宽。”
  推理技术仍在发展,这在边缘计算中尤其明显。Greenberg说:“对于AI推理,我们在新设计中看到的主要是GDDR6和LPDDR5内存。他们以更合适的成本提供了更适中的带宽,使得可以在云的边缘实时部署AI,而不必将所有数据发送回服务器。”
  现在正在开发的许多AI机器都使用了经过精心规划的非常规则的布局和结构。
  他说:“如果您回想起SoC设计时代,您会发现芯片设计中其实有很多随机性,这些芯片的异构性非常明显。它们部署了许多不同的功能,而且很多是异构的功能。这使得芯片看起来就像是将不同block混合在一块的储物柜。但是,当您看一看AI芯片时,您将会看到一个非常规则的结构,因为这种方法才能保证在整个芯片上非常并行的数据流中管理大量数据。与我们在SoC甚至许多CPU中所做的架构不同。它的架构设计主要围绕着如何通过该芯片传输数据而构建。”
  所有这些都直接影响到内存的选择,尤其是DRAM,而DRAM早在几年前就被人们预测行将淘汰了。但是实际上,情况恰恰相反。如今的选项比以往任何时候都要多,并且每一种选择都有各自不同的价格。
  SynopsysDDR产品技术营销经理VadhirajSankaranarayanan表示:“例如,我们正处于DDR标准从DDR4过渡到DDR5的阶段。“奔着DDR4要求而来的客户因为其产品的使用寿命足够长,因此也可能也希望获得DDR5的支持。与LPDDR5类似,这些新标准中除了提供更高的性能外,在功耗方面也具有优势。因为这些标准可以在较低的电压下运行,因此可以降低功耗,而且在RAS(可靠性、可用性和可维护性)上也有优势。在功能方面,由于速度较高,DRAM本身将配备可纠正子系统中任何地方可能发生的单比特错误的功能。”
  提供这么多内存选择是必需的,因为在当今的AI/ML应用中,内存配置可能会有很大的差异。Sankaranarayanan说:“我们已经看到,设计团队除了使用HBM之外还使用LPDDR,但这实际上取决于带宽要求。还有一些成本因素需要考虑。使用HBM时,由于需要通过硅直通技术将多个DRAM管芯堆叠在一起-并且使用插入器将DRAM和SoC放入同一个SoC封装中,因而需要多个封装步骤,造成今天HBM的成本都很高。但是,随着与AI相关的应用及需求的增加,在不久的将来,HBM的价格都将变得物有所值。”
  功率是第一位的
  毫不奇怪,功率管理是AI/ML应用中的首要考虑因素。对于数据中心以及边缘设备都是如此。
  在SoC中,分配给内存的功率可以分为三个部分。
  Rambus的Woo说:“首先是从DRAM内核中获取bit所消耗的功率,这方面您无法投机取巧,您必须把数据位从DRAM内核中读取出来才能发挥它的作用。其次,和移动数据相关的功率,即与数据线两端电路相关的功率。第三,在DRAM中还有SoCPHY和接口。事实证明,这些存储器本身耗电只占三分之一,其它三分之二的功率则用于在DRAM和SoC这两个芯片之间来回移动数据,这个比例有点吓人,因为这意味着将数据从DRAM内核中读取出来-您必须要做的-并不是控制功率的主要因素。在尝试提高功率效率时,如果您考虑将这些东西都堆叠在一起,则可以省掉很多这种功耗,HBM器件就是这么做的。如果您考虑将SoC与DRAM堆叠在一起,那些和数据通信相关的功率可能就会下降很多倍甚至是一个数量级。那就是您可能节约功率的地方。”
  这里没有免费的午餐。Woo表示:“如果要这样做,那么现在您将受到DRAM内核功率的更多限制,并且您必须考虑如何降低DRAM内核功率,以使整体体积变小。”
  这是一个正在进行中的研究领域,但是解决方案的技术路线现在还并不明朗。随着越来越多的比特被放置到芯片上,它们会变得越来越小,所以一个比特就容纳不下太多的电子了。结果是,很难确定这个比特位到底是1还是0,而且它们保持所需电子状态的时间可能会降低,所以需要更加频繁地进行刷新。
  新材料和新cell设计可能会有所帮助。另一个选择可能是管理PHY的电源,但是所有事物之间都存在循环依赖关系,因此PHY面临的挑战确实非常困难。
  Woo表示:“随着速度的提高,需要做更多的工作来确保数据的正确传输,这里存在着一场拉锯战。这和拍卖师很相似,他们开口就得大声说话。在PHY上也有同样的现象。为了继续区分信号,您必须具有适当的幅度,因此挑战之一是如何设定正确的幅度,避免信号的模糊,以确保对方接收到的正是您所发送的。为了清楚地指明在数据线路上来回通信的符号,需要进行大量的工作。也有一些其他尝试降低幅度的技术,但它们都是折衷方案。通常,人们不希望更改其基础架构。如果其它条件不变的话,人们会选择增量式的改进而不是革命性的改进。这就是挑战所在之处。”
  片上存储器与片外存储器
  如今,AI/MLSoC架构中的另一个重大折衷是将内存放在哪里。尽管很多时候AI芯片都具有片上存储器,但片外存储器对于AI的训练至关重要。
  Cadence的Greenberg说:“问题主要在于您要为神经网络存储多少数据。每个神经元都需要一定数量的存储空间。每个人都希望使用片上存储器,只要您有条件可以使用片上存储器,肯定就想使用它。它的速度超快,功耗超低,但是价格昂贵。在预算一定的情况下,您在主芯片上放每一平方毫米的内存就意味着芯片上的逻辑和其他功能就少了一平方毫米的面积。”
  片上存储器非常昂贵,因为它实质上是使用逻辑工艺制造的。他说:“假设我现在使用的逻辑工艺是7nm或5nm工艺,如果制造一个16层内存的话,将会非常昂贵。如果您可以在分立芯片上制造内存,则可以针对成本目标优化内存工艺。不仅不需要怎么限制金属层的数量,而且分立内存芯片的每平方毫米成本大大低于7nm或5nm逻辑芯片的每平方毫米成本。”
  大多数AI/ML工程团队都在为选择片内存储还是片外存储而苦苦挣扎,因为这些设计仍处于其生命周期的早期。Greenberg说:“每个人刚开始时都希望使用片内内存。这方面真没有真正可以查阅的标准。在大多数AI芯片中,其版图布局实际上是有所不同的。业界尚未决定AI的最佳架构,因此,我们现在基本上仍处于AI芯片架构的试验阶段,并朝着大多数人可能会适应的方向发展。所以,今天的AI设计仍然非常开放,我们可以看到很多创新。那么,该如何推荐内存类型呢?实际上,这个问题又回到了每个人查看内存时的一些关键参数上,您需要多少内存?需要存储多少GB的数据?速度想达到多快?您能安排多少PCB面积?你想花多少钱?每个人在求最优解时的方法都多多少少会有所不同。”
  这些决定会影响AI/ML芯片的各个方面,包括专用加速器。那里的主要选择取决于性能、功率和面积,云计算和边缘计算芯片之间的界限很清晰。
  CadenceTensilica集团产品营销总监SuhasMitra说:“云计算和边缘计算这两种情况存在千差万别。它们是有相似之处,但更大的是不同之处。如果您正在为数据中心云设计处理器,那么就如何存储,选择什么样的内存层次结构、如何放置内存等方面,功率和面积就很有意义。”
  对于边缘计算,权衡的复杂性仍继续增加,在传统PPA(功率、性能、面积)公式中增加了第四个变量-带宽。Mitra说:“讨论的范畴应该是关于PPAB的,因为我们需要就这四个因素不断地进行权衡调整。在AI/ML处理器设计或加速器设计中,如何确定功率、性能、面积、带宽的折衷,在很大程度上取决于工作负载的性质。从根本上讲,当您谈论边缘计算的问题时,在考虑有限的面积内实现了多少性能时还必须考虑到能源效率问题,或者说,消耗这些功率,我可以获得多少性能?我们一直在关注这些指标。”
  他指出,这就是为什么人们花了这么多的时间在内存接口上的原因。对于处理器/加速器设计者,这些考量会采用不同的形式。“形式基本上与AI工作负载有关。我如何确保当我的工作空间很小时,可以以非常有效的方式进行计算?之所以如此,是因为您不能为了计算牺牲太多的面积或太大的功率。实现这个工作负载,最佳的配置是什么?您可以查看不同的工作负载,并尝试计算出应该是什么,每秒应该有多少帧,每秒每瓦应有多少帧,每秒每平方毫米应有多少帧。”
  结论
  人工智能的体系架构仍处于快速进化的状态。所有人都在猜测它何时稳定以及是否会稳定下来,这使得判断自己的选择是否正确及其正确性会持续多久变得更加困难。
  “您走对路了吗?这个问题很明确,但是有很多不同的答案。”Mitra说。“在传统处理器设计中,如果我以这样的方式设计它,那么它看起来就是这个样子。因此,所有人都去设计处理器IP,人们还设计出一些变体,例如VLIW与超标量等。但是,最终胜出的永远不会只有一种设计。您会发现有许多可以胜出的设计。这几乎就像是说给了您40个选项,而不是一个解决方案。展望未来,您将看到人们将做出更多这些架构选择,因为AI对于不同的垂直领域具有许多不同的含义。”

微信扫描二维码,关注公众号。