在为各种非常不同的终端市场和系统设计的AI和机器学习芯片快速发展的推动下,内存选择和架构的数量正在爆炸式增长。其中一些系统的模型规模可以从100亿到1000亿个参数,而且它们在不同的芯片或应用中会有很大差异。神经网络训练和推理是当今最复杂的工作负载之一,这使得提出最佳内存解决方案变得更加困难。这些系统会消耗大量的计算资源--主要是使用乘法累加数学--以及大量的内存带宽。而一个领域的任何减速都会对整个系统产生影响。
"目前部署了一连串的技术来降低神经网络模型的复杂性和神经网络模型的内存需求,"Arm公司机器学习集团产品营销副总裁Steve Roddy说。"例如,可以通过量化、网络简化、修剪、聚类和模型压缩来最小化模型大小。在设备的运行时,智能调度以跨层重用中间值,也可以减少内存流量,从而加快推理运行时间。"
这给内存开发商带来了巨大的压力,要求他们以最低的功耗、面积和成本提供尽可能多的带宽。而且这种趋势没有减弱的迹象。神经网络模型继续逐年增长,这意味着数据集也在增长,因为这些模型需要被训练。
"模型的规模,以及训练集的规模每年都在以大约一个数量级的速度增长,"Rambus公司的研究员和杰出发明家Steven Woo说。"今年年初,当最新的一种自然语言处理模型出来的时候,它有大约170亿个参数。这实在是太庞大了。然后,在今年夏天,又有一个更新的版本出来了,它的参数是1750亿。参数数量在7个月左右的时间里涨了10倍。"
上世纪80年代和90年代初的神经网络模型,大概有100到1000个参数。"如果我有一个更大的模型,我需要更多的例子来训练它,因为每一个参数都要得到调整。"Woo说。"作为技术领域的那种没有耐心的人,当你拥有更多的数据时,你不想再等下去训练任何东西。唯一的出路就是拥有更多的带宽。你必须能够更快地把这些数据推送到系统中,更快地拉出来。带宽是头等大事。"
另一个关注点是能源。"如果你所要做的就是将性能提高一倍,并且可以将你所消耗的能量提高一倍,生活就会变得很美好,"Woo说。"但这不是它的工作方式。你有一个你关心的功率包络。你的墙上插座只能处理这么多的电力。事实证明,人们真的希望性能提高X倍,但他们希望它更省电,提高2倍,这就是困难的地方。"
在推断方面就更难了。"如今,AI/ML的训练和推理部分之间的鸿沟越来越大。"Cadence公司IP集团产品营销总监Marc Greenberg指出。"训练需要最大的内存带宽,并且通常是在强大的服务器型机器或非常高端的GPU型卡上完成。在培训领域,我们看到高端的HBM内存和低端培训的GDDR6。HBM内存特别擅长以最低的能量-比特提供最高的带宽。HBM2/2E内存在AI/ML处理器和每个内存堆栈之间提供了高达3.2/3.6兆位/秒的内存带宽,而即将推出的HBM3标准则承诺提供更高的带宽。"
成本权衡
这种性能是有代价的。"作为一个高端解决方案,有一个高端的价格来匹配,这意味着HBM可能会暂时停留在服务器机房和其他高端应用中,"Greenberg说。"GDDR6技术有助于降低成本,如今的设备在16Gbps的数据速率下可以提供每秒512Gbit/s的数据速率,而更快的数据速率也即将到来。用户把多个并联起来也很常见。例如一些显卡使用10个或更多的GDDR6部件并行和/或更高的速度,以实现5Tbps带宽和更高的速度。"
推理还在不断发展,这一点在边缘地带表现得尤为明显。"对于AI推理,我们主要是在新设计中看到GDDR6和LPDDR5存储器,"Greenberg说。"它们以更适中的成本为更适中的带宽提供了可能性,然后允许AI在云的边缘和实时部署,而无需将所有数据发送回服务器。"
现在开发的很多人工智能机器都有非常好的规划,采用非常规则的布局和结构。
"如果你回想一下SoC设计时代,你会看到很多随机性发生在芯片上,因为芯片非常异构,"他说。"它们有很多不同的功能,而且有很多异构功能。芯片看起来就像不同区块的混合锅。但是当你看人工智能芯片的时候,你会看到一个非常有规律的结构,因为这就是你如何在一个非常平行的数据流中管理一个非常大的数据量在芯片上。这跟我们在SoC,甚至很多CPU里面做的架构是不一样的。它的结构是围绕着如何在该芯片上进行数据流转。"
所有这些都直接影响到内存的选择,尤其是DRAM,多年前就有人预测DRAM会枯竭。事实上,情况恰恰相反。如今的选择比以往任何时候都多,而且每一种选择的价格都有差异。
"例如,我们在标准DDR上正处于从DDR4到DDR5的过渡点,"Synopsys公司DDR产品技术营销经理Vadhiraj Sankaranarayanan说。"那些带着DDR4需求来找我们的客户会被吸引,因为该产品的寿命将足够长,他们可能也希望得到DDR5的支持。同样是LPDDR5,这些新的标准除了赋予更高的性能外,每一种标准在电源方面都有优势。因为这些标准在较低的电压下运行,所以会降低功耗。在RAS(可靠性、可用性和可维修性)方面也有优势。在功能方面,由于速度更高,DRAM本身要配备一些功能,可以纠正子系统中任何地方可能出现的单位错误。"
这些选项是必要的,因为在当今的AI/ML应用中,内存配置可能会有很大的差异。"我们已经看到设计团队除了使用HBM之外,还使用LPDDR,但这真的取决于带宽要求,"Sankaranarayanan说。"还有一个需要考虑的成本因素。对于HBM,因为有多个DRAM裸片与通硅技术堆叠 - 因为DRAM和SoC驻留在同一个SoC封装中,使用中间件,这需要多个封装步骤 - 现在每个HBM的成本较高。但随着HBM的使用量因为AI相关应用的增加,以及更高的需求,这些价格在不久的将来应该会变得更加合理。"
动力是主要的
不足为奇,电源管理是AI/ML应用的首要考虑因素。无论是在数据中心还是在边缘设备中都是如此。
在SoC中,分配给内存的功率可以分成三个部分。
"首先是将位从DRAM内核中检索出来所需的功率,你对此真的无能为力,"Rambus的Woo说。"你必须把它们从核心中取出来,才能对它们做一些事情。第二,是移动数据的电源,即与电线两端的电路相关的电源。第三,还有SoC的PHY和DRAM中的接口,也是如此。原来电源放在这几个桶里的时候,大概每个桶里都有三分之一。三分之二的功耗只是在这两个芯片之间来回移动数据,这有点可怕,因为这意味着从DRAM核心中获取数据--你必须做的事情--并不是主导功耗的东西。在试图变得更省电的过程中,你会意识到,如果你考虑将这些东西堆叠在一起,你可能会摆脱很多功耗,这就是HBM设备的情况。如果你考虑将SoC和DRAM堆叠在一起,通信本身的功率可能会下降很多倍,甚至可能是一个数量级。这就是你可能节省的功率。"
图1:HBM2内存系统功耗,基于PHY加DRAM功耗,在2Gbps,流媒体工作负载下,100%读取和100%写入的功耗分解。
这里没有免费的午餐。"如果你要这么做,你现在会更多地受到DRAM核心功率的限制,你必须考虑如何降低DRAM核心功率,使整体的饼真的很小。"Woo说。
这是一个正在研究的领域,但解决方案并不明显。随着越来越多的比特被放到芯片上,它们变得越来越小,因此无法容纳那么多电子。因此,更难感知那里是1还是0,而且它们不一定能如愿地保留这些电子,因此需要更频繁地刷新。
新材料和新的电池设计可能会有所帮助。另一个选择可能是管理PHY的功率,但一切都有一个循环的依赖性,所以PHY上的挑战真的很难。
"当你的速度越来越快时,为了保证数据的正确传输,做更多的事情之间就会发生拉锯战。"Woo说。"这类似于一个拍卖师。当他们说话的时候,他们说话的声音很大。在PHY中,也是同样的现象。为了继续拥有可区分的符号,你必须有一个适当的振幅,所以挑战之一是如何拥有合适的振幅,避免口齿不清的东西,以确保人们接收到的东西确实是你所说的。要清楚地阐明在电线上来回走动的符号,需要做很多工作。还有其他的技术可以尝试降低振幅,但都是有取舍的。一般来说,人们不想改变他们的基础设施。在所有事情都相同的情况下,如果他们可以选择更增量的东西而不是更革命性的东西,他们会选择增量的东西。这就是挑战。"
模内记忆与模外记忆的比较
如今AI/ML SoC架构中另一个重要的权衡是内存放在哪里。虽然很多时候AI芯片都有片内存储器,但片外存储器在AI训练中是必不可少的。
"问题基本上是你要做的神经网络需要存储多少数据,"Cadence的Greenberg说。"对于每个神经元,都需要一定的存储量。每个人都会喜欢使用片上存储器。任何时候,只要你能使用片上存储器,你都想使用它。它的速度超快,功耗超低,但是它的价格很贵。你在主芯片上每放一毫米的面积,就有一毫米的面积在一定的预算内不能用于芯片上的逻辑和其他功能。"
片上存储器非常昂贵,因为它基本上是在逻辑工艺上制造的。"我正在制造的逻辑工艺可能是7纳米或5纳米工艺,"他说。"我在一个有类似16层金属的工艺上做,所以把存储器放在那个逻辑芯片上是很昂贵的。如果你能在一个分立的芯片上做,那么内存工艺就可以针对成本目标进行优化。它上面的金属层数量非常有限,而且该内存裸片的每平方毫米成本明显低于7nm或5nm逻辑裸片的每平方毫米成本。"
大多数AI/ML工程团队都在为这个决定而苦恼,因为在这些设计的生命周期中,还处于相对早期。"每个人都从希望将所有的内存保留在die上的立场出发,"Greenberg说。"没有一个真正的标准,你可以看看。在大多数AI芯片中,平面图真的很不同。业界还没有决定人工智能的最佳架构,所以我们基本上还处于人工智能芯片架构的实验阶段,并朝着大多数人可能会解决的方向发展。但今天仍然是非常开放的。我们还是看到了很多的创新。那么,你怎么推荐一种内存类型呢?这其实又回到了大家看内存的一些关键参数,就是你需要多少内存?你需要存储多少千兆字节的数据?你想以多快的速度获取它?你的PCB面积有多大?你想付多少钱?每个人解决这个等式的方法都会有点不同。"
这类决策影响着AI/ML芯片的方方面面,包括专用加速器。那里的重大选择取决于功率、性能和面积,云和边缘之间有鲜明的分界。
"这两件事是相当不同的,"Cadence公司Tensilica组的产品营销总监Suhas Mitra说。"有相似之处,但它们是完全不同的。如果你是为数据中心云设计处理器,功率和面积在如何做内存、内存层次结构、如何放下内存方面有很大的意义。"
对于边缘计算来说,权衡的复杂性继续增加,传统的PPA方程中又增加了第四个变量--带宽。"讨论应该是关于PPAB的,因为这四个轴我们不断地要兼顾,"Mitra说。"在AI/ML的处理器设计或加速器设计中,在弄清功率、性能、面积、带宽的权衡时,很多东西取决于工作负载的性质。当你在谈论边缘的东西时,从根本上讲,你需要在放下的面积上实现多少性能时非常有效。与我所消耗的瓦数相比,我获得了多少性能?我们总是希望谈论这些指标。"
他指出,这就是为什么人们花这么多时间研究内存接口的原因。对于处理器/加速器设计者来说,这些考虑因素的形式有所不同。"形态和形式本质上是与这个AI工作负载。我如何确保我以一种非常高效的方式进行计算,因为我可以发挥的面积非常小?你夹击,因为你不能在计算上牺牲太多面积、太多瓦数、太多。你做这些事情的甜蜜点在哪里?你看不同的工作负载,试图找出计算应该是多少,每秒的帧数应该是多少,每瓦特每秒的帧数应该是多少,每平方毫米每秒的帧数应该是多少。"
总结
AI架构正处于快速进化的状态。何时以及是否会稳定下来谁也不知道,这也使得辨别选择是否正确,以及能持续多久变得更加困难。
"你走在正确的道路上吗?这个问题是正确的,但有很多不同的答案,"Mitra说。"在传统的处理器设计中,如果我这样设计,那么这个看起来就是这样。所以所有的人都去设计处理器IP,也有人做了一些变种,比如VLIW与超标量等。但永远不会出现一种设计胜出的情况。你会发现很多不同的设计会胜出。这就好比说你有100个方案给你,最好是40个方案,但不会只有一个方案。这就是为什么,如果我们看一个谷歌TPU,它的设计是特定的方式。你可以来到一些其他的加速器,它是以另一种方式设计的。未来,你会看到更多的这些架构选择,人们会做出更多的选择,因为人工智能对于不同的垂直领域有很多不同的意义。"