数据大爆炸?让人焦虑的内存计算怎么克服?

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

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

一方面,互联网和物联网正在推动数据爆炸。惠普实验室(Hewlett-Packard Labs)的研究科学家约翰·保罗·斯特拉坎(John Paul Strachan)在Leti设备研讨会(12月的IEEE电子设备会议的一个附带活动)上的一次演讲中指出,仅Facebook用户每天就产生4千兆字节(1千兆字节=1015字节)的数据。

通过传感器、摄像头和其他所有设备对现实的数字捕捉产生了更大的效果。一辆独立的汽车每天可以收集4 TB的数据,将来一个大城市可能会有数百万的数据。仅仅捕获这些信息并将其上传到中央数据中心所需的能量和带宽就很惊人。

神经网络和冯诺依曼瓶颈

同时,对大型数据集的大部分分析都属于神经网络。

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

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

从概念上讲,这种方法非常简单。但实际上,数据集很大,计算步骤也很大。ImageNet图像分类基准测试中表现最佳的是使用具有6000万个参数的8层神经网络。一次通过算法获得一个图像需要200亿次操作。

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

大数据集,带宽受限的机器学习工作负载以及Dennard扩展的结束正在将行业基准从原始计算性能转变为计算效率。对于给定的任务,硅片面积,功耗和计算精度之间的最佳平衡是什么?

低精度,模拟内存,高精度

IBMResearchAlmaden的副总裁兼实验室主任JeffWelser在一次IEDM演示中指出,神经网络计算通常不需要高计算精度。16位计算模块使用等效32位块所需的四分之一电路空间,并将所需的数据量减半。即使使用传统架构,降低精度算法也可以显着提高计算效率。

克服内存瓶颈的需求也在推动更激进的计算内存架构。在这种体系结构的最简单视图中,预先确定的权重存储在非易失性内存元素数组中。将输入数据加载在内存字行上,并对来自单个单元格的电流求和。

究竟如何在硬件中实现这样的方案是正在进行的研究的主题。业界已经提出了数字和模拟解决方案。

例如,数字阵列可以由闪存元件组装而成。明尼苏达大学的研究人员展示了兼容CMOS的eflash存储单元,它将电荷存储在控制栅极和通道之间的浮动栅极上。在这样的阵列中,可以通过完善的集成电路设计精确地控制特定权重值和它们改变的速率(学习速率)。这种方法很有吸引力,因为它依赖于成熟,易于理解的组件技术。

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

当数字元件处于开启或关闭状态时,模拟元件可以具有一系列值。给定信号存储的值取决于设备的属性。在丝状RRAM中,电阻随着导电细丝在器件的端子之间形成而下降。一系列弱编程脉冲可能会产生弱细丝,而强脉冲会产生更强的细丝。因此,存储给定值所需的脉冲强度和数量取决于长丝形成的动力学。学习速率取决于电阻状态与从一个状态移动到下一个状态所需的脉冲数之间的分离。

对于推理任务,可以使用传统CMOS逻辑计算权重,然后将其存储在RRAM阵列中。使用给定数量的编程脉冲实现的精确值可能因设备而异,但模拟表明在面对这些变化时总体精度是稳健的。

然而,对于学习任务,随着修正在网络中的传播,个体权重需要上下调整。不幸的是,当前的RRAM设备通常具有对SET和RESET脉冲有不对称响应。简单地改变编程脉冲的符号不会在相反的方向上产生相等的调整。这种不对称性是学习任务在记忆中实现的一个主要问题。

耐力,稳定性和可重复性

如上所述,清华大学的研究生Meiran Zhao表示,学习任务还需要大量的数据和非常多的重量更新,大约10 5和10 7。针对传统存储应用设计的RRAM阵列的测试将设备寿命放在相同的范围内。然而,数据存储应用需要数字值——一个设备是开着的还是关着的——并且通常使用足够强的设置和重置脉冲来创建或移除一根强导电丝。如果使用弱脉冲代替,赵的小组表明模拟切换在超过10 11之后没有失败更新脉冲,尽管学习准确度确实降低到超过10 9个更新脉冲。

所需的大量训练周期也会威胁存储的重量值的稳定性。在RRAM装置中,灯丝的导电率由灯丝体积内的氧空位浓度决定。该浓度又由施加的电压脉冲控制。但是,不可能精确控制个别职位空缺的位置。当它们在器件内迁移时,无论是在电压梯度的影响下还是在热激发后,精确的电阻都会发生变化。

另一种非易失性存储器,即电化学RAM,试图解决丝状RRAM的局限性。当RRAM是双终端设备时,ECRAM是三终端设备。施加到第三端子的电压控制离子从LiPON电解质层插入到WO 3导体中。电阻取决于氧化还原反应,该反应可以在开启和关闭方向上精确且可重复地控制。

超越神经网络

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

例如,生成对抗网络使用一个神经网络为另一个生成测试示例。当“鉴别器”网络能够区分真实数据和“发生器”网络生成的示例时,它就是成功的。

因此,鉴别器网络可以通过显示由发生器网络创建的一组非小狗图像来学习识别小狗的照片。生成对抗性网络算法的一个挑战是生成测试示例,这些测试示例涵盖了所有感兴趣的真实情况。“模式丢弃”,其中生成的示例聚集在有限数量的类别周围,可能会由于RRAM网络固有的随机性而减少。同样的非线性行为使得精确的权重难以存储,这可能导致更多的测试示例。

RRAM行为与历史有关。给定的重置脉冲实际重置设备的概率会随着之前设置的脉冲数的增加而降低。Imec的一个小组使用这种行为作为时间序列学习规则的基础 - 在时间t有效的装置用于预测在时间t +Δ处有效的装置。将该预测与实际数据进行比较,然后通过SET脉冲加强具有正确预测的设备,而通过RESET脉冲削弱具有不正确预测的设备。训练之后,将得到的网络拓扑用作生成新数据序列的模型。

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

内存计算展望未来

从历史上看,电子设备研究首先出现,然后电气工程师和软件开发人员学会了如何利用新功能。

在过去的几年里,新兴的存储设备已经从实验室的奇思妙想,到令人失望的闪存替代品,再到新机器学习方法的推动者。

接下来的几年将展示半导体行业是否可以使用这些设备来帮助管理它正在帮助创建的数据大爆炸。