中文 英语

内存计算的挑战成为焦点

研究人员正在探索绕过冯·诺依曼瓶颈的方法。

受欢迎程度

在过去的几十年里,计算性能的提高是通过更快地处理更大量的数据和更高的精度来实现的。

内存和存储空间现在以千兆字节为单位,而不是千字节和兆字节。处理器处理64位而不是8位的数据块。然而,半导体行业创造和收集高质量数据的能力比分析数据的能力增长得更快。

一方面,互联网和物联网正在推动数据爆炸。惠普实验室的研究科学家John Paul Strachan在Leti设备研讨会(12月IEEE电子设备会议的附带活动)上的一次演讲中指出,仅Facebook用户就产生了4pb (1pb = 10)15字节)每天的数据量。

通过传感器、摄像头和所有其他设备对现实进行数字捕捉,可以产生更多的东西。一辆自动驾驶汽车每天可能会收集4tb的数据,未来一个大城市可能会有数百万这样的数据。仅仅是捕获所有这些信息并将其上传到中央数据中心所需要的能量和带宽是惊人的。

神经网络和冯·诺依曼瓶颈
与此同时,对如此庞大的数据集的大部分分析都落在了神经网络上。

神经网络计算矩阵积和。一个数据矩阵被加载到一个数组中,每个元素乘以预定的权重。在大多数情况下,结果被传递到网络的下一层,并乘以一组新的权重。经过几个这样的步骤,结果是关于数据是什么的结论。这可能是一只猫的图像,一种可疑的行为模式,或者一种特定的电活动。

在训练阶段,将网络的结论与之前已知的“正确”答案进行比较。然后,一个称为反向传播的过程使用预测值和正确值之间的差异来上下调整网络每一层中的每个权重。

从概念上讲,这种方法非常简单。但实际上,数据集是巨大的计算步数是巨大的。在ImageNet图像分类基准测试中,表现最好的是使用具有6000万个参数的8层神经网络。算法对一张图像进行一次运算需要200亿次运算。

对于网络的每一层,现有的权重和每个训练示例的元素都被加载到处理器的寄存器中,相乘,并将结果写回内存。性能瓶颈不是计算量,而是处理器和内存阵列之间的带宽。内存和处理器之间的这种分离是冯·诺依曼体系结构的定义特征之一,并且几乎存在于所有现代计算系统中。

大型数据集、带宽受限的机器学习工作负载和Dennard扩展的结束结合起来,正在将行业基准从原始计算性能转移到计算效率。对于一个给定的任务,在硅空间、功耗和计算精度之间的最佳平衡是什么?

精度低,模拟存储器,精度高
在IEDM中演讲, IBM阿尔马登研究院副总裁兼实验室主任Jeff Welser指出,神经网络计算通常不需要高计算精度。一个16位的计算块使用等效32位块所需的四分之一的电路空间,并将所需的数据量减半。降低精度算法可以显著提高计算效率,即使使用传统的体系结构。

克服内存瓶颈的需求也推动了更激进的内存计算架构。在这种体系结构的最简单的观点中,预先确定的权重存储在非易失性内存元素的数组中。输入数据装入内存字行,来自各个单元的电流被求和。

如何在硬件中实现这样的方案是一个正在进行的研究课题。提出了数字和模拟解决方案。例如,数字阵列可以由闪存元件组装而成。明尼苏达大学的研究人员证明了这一点cmos兼容的闪存单元,将电荷存储在控制门和通道之间的浮动门上。在这样的阵列中,比重值和它们变化的速率(学习率)都可以通过完善的集成电路设计精确控制。这种方法很有吸引力,因为它依赖于成熟的、易于理解的组件技术。

然而,机器学习应用中感兴趣的许多数据本质上是模拟的。斯坦福大学和加州大学伯克利分校的郑鑫研究员及其同事观察到的通过使用像RRAM这样固有地存储模拟值的存储元件,可以避免模拟到数字和数字到模拟的转换——以及相关的能量消耗和硅足迹。不过,目前可用的模拟内存元件带来了一系列新的挑战。

虽然数字元素是打开或关闭的,但模拟元素可以有一个范围的值。由给定信号存储的值这取决于设备的属性。在丝状RRAM中,当器件的终端之间形成导电丝时,电阻下降。一系列较弱的编程脉冲可能会产生较弱的细丝,而较强的脉冲则会产生较强的细丝。因此,存储给定值所需的脉冲强度和数量取决于灯丝形成的动力学。学习率取决于电阻状态之间的分离以及从一种状态移动到下一种状态所需的脉冲数。

对于推理任务,可以使用传统的CMOS逻辑计算权重,然后存储在RRAM阵列中。用给定数量的编程脉冲实现的确切值可能因设备而异,但模拟表明,面对这种变化,总体精度是稳健的。然而,对于学习任务,当修正在网络中向后传播时,单个权重需要向上和向下调整。不幸的是,目前的RRAM设备通常对SET和RESET脉冲有不对称的响应。简单地改变编程脉冲的符号不会在相反的方向上产生相等的调整。这种不对称是在内存中执行学习任务的主要问题。

持久、稳定和可重复性
如上所述,学习任务也是如此需要大量的数据权重更新的次数非常多,大约是105和107清华大学研究生赵美然(音译)表示。为传统存储应用设计的RRAM阵列的测试将设备寿命置于相同的范围内。然而,数据存储应用需要数字值——设备要么开要么关——通常使用足够强的SET和RESET脉冲来创建或移除强导电灯丝。如果改用弱脉冲,赵的研究小组表明,模拟开关在超过10分钟后不会失败11更新脉冲,尽管学习精度在10以上会下降9更新脉冲。

还需要大量的训练周期威胁稳定存储的权重值。在RRAM器件中,灯丝的电导率由氧空位浓度灯丝内部体积。这个浓度反过来由施加的电压脉冲控制。但是,不可能精确地控制个别空缺的位置。当它们在器件内迁移时,无论是在电压梯度的影响下还是在热激励后,准确的电阻都可以变化。

另一种非易失性存储器电化学RAM,旨在解决丝状RRAM的局限性。rram是两端设备,ecram是三端设备。施加到第三端子的电压控制从LiPON电解质层的离子嵌入到WO中3.导体。电阻取决于氧化还原反应,可以精确和重复控制,在两个方向上和关闭。

超越神经网络
虽然卷积神经网络是最常见的机器学习技术,但它不一定是最好的。新兴存储设备的非线性、概率行为对某些算法来说是一个挑战,但对其他算法来说可能是一个优势。

生成式对抗网络例如,使用一个神经网络为另一个神经网络生成测试示例。当“鉴别器”网络能够区分真实数据和“生成器”网络生成的示例时,它就是成功的。因此,例如,鉴别器网络可以通过向生成器网络展示一组非小狗的图像来学习识别小狗的照片。生成式对抗网络算法的一个挑战是生成涵盖所有感兴趣的真实世界情况的测试示例。“模式下降”,即生成的示例围绕有限数量的类别聚集,可能会因RRAM网络固有的随机性而减少。同样的非线性行为使得精确的权重难以存储,这可能会导致更多样化的测试示例。

RRAM的行为依赖于历史。给定的RESET脉冲实际重置设备的概率随着先前SET脉冲数量的增加而下降。Imec的一个小组使用这个行为作为时间序列学习规则的基础,在时间t处于活动状态的设备用于预测将在时间t + Δ处于活动状态的设备。将该预测与实际数据进行比较,然后使用SET脉冲加强预测正确的设备,而使用RESET脉冲削弱预测不正确的设备。训练后,得到的网络拓扑结构被用作生成新数据序列的模型。

最后,密歇根大学的研究人员使用RRAM交叉阵列结合随机导电桥式存储器件,通过模拟退火解决“自旋玻璃”优化问题。自旋玻璃问题源于物理学,但也适用于许多其他领域,它寻求寻找相互作用的随机二维自旋阵列的最低能量状态。模拟退火随机翻转一定数量的自旋,保留那些降低系统总能量的翻转,然后降低系统的温度,重复这个过程。密歇根大学的研究小组利用CBRAMs的随机开关概率来降低寻找局部最小态而不是真正的最低能态的风险。

内存计算展望未来
从历史上看,首先是电子设备研究,然后是电气工程师和软件开发人员学习如何利用新功能。在过去的几年里,新兴的存储设备已经从实验室里的新奇事物,到令人失望的闪存替代品,再到新型机器学习方法的推动者。半导体行业能否利用这些设备来帮助管理它正在帮助创造的数据爆炸,未来几年将会显现出来。

有关的故事

内存中与近内存计算

不同方式使用内存

内存中的处理

嵌入式相变存储器问世



6个评论

大卫查普曼 说:

杰出的工作。

belal伊克巴尔 说:

好文章!

吉尔·罗素 说:

很好地说。

说:

我最近读过的最聪明的文章!

计算存储达人 说:

很棒的文章,凯瑟琳,

令人惊讶的是,你没有提到“近存储计算”,比如通过PCIe ssd和NVMe和NVMe-over Fabric实现的“计算存储”。

计算存储被设计为CPU无负载,NVMe-oF ssd的吞吐量超过100gb /秒。

只是提醒一下。

凯文·卡梅隆 说:

30多年前,我在英国的Inmos公司第一次接触到内存计算。他们的处理器(“Transputer”)没有流行起来,因为没有人知道如何编程(除了几个剑桥博士)。在那之后,我用VCS进行了并行模拟——它在计算上看起来很像神经网络问题,但在标准SMP硬件上很糟糕。因此,结合这些经验,我解决了编程问题和SMP架构问题

http://parallel.cc

创新并不一定是破坏性的。

留下回复


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

Baidu