【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

如何创新使用内存以提高处理速度?

  • 2019-08-30
  • 本文字数:4069 字

    阅读完需:约 13 分钟

如何创新使用内存以提高处理速度?

提高内存性能以应对不断增长的数据洪流,正促使芯片制造商探索新的内存类型并探索优化对现有内存的不同使用方式,这就带来了一些复杂的新挑战。


在过去几十年里,对于半导体设计行业的大多数企业来说,内存都不是问题。主要的顾虑是价格和尺寸,但内存制造商却不能够完全满足市场上对处理需求的增长。这种情况的改变有以下几个原因:


  • 生成的数据总量正在飞速增长,这主要是由于与传感器连接的设备越来越多。因为有太多的数据要传送到云上,所以它必须在边缘甚至在终端进行处理,而功率是关键因素。

  • 传统的内存/存储层次结构存在瓶颈。磁盘驱动器很便宜,但是数据传输速度很慢。固态存储驱动器(SSD)稍微快一些,但仍然存在一些延迟问题。

  • 内存扩展正在经历与逻辑扩展相同的问题,在逻辑扩展中,密度的增加使得快速将数据移入和移出设备变得更加困难。这就是 HBM2 DRAM 在高性能设备中越来越受欢迎的原因,也是为什么有如此多的资金投入到 MRAM、ReRAM、FeRAM 和相变存储器的开发中的原因。

  • 人工智能和机器学习系统正在推动新架构的发展,这些架构依赖于大量的数据吞吐量来实现性能上数量级的改进。其中一些架构涉及内存和近内存计算,但它们也越来越关注读取和写入更大的数据字符串。


为了应对这些变化,芯片制造商和数据科学家开始重新思考冯•诺依曼架构的基本原理,这让大多数设计团队都开始面临许多全新的问题。

舍入误差

提高性能的一种方法是对乘法/累加操作进行优先级排序,而不仅仅是在内存设备周围随机分布数据。


“当在内存中循环时,实际上是在打开一个抽屉,挑出一样东西,”Rambus公司的著名发明家、研究员史蒂文·吴(Steven Woo)说。“但打开一个抽屉,挑出一些有用的东西,然后关上抽屉,这需要花费很多精力。”这就像打开一个银行保险库,取回一件物品,然后再把它关闭。打开金库的开销很大。你真的想要检索多个项目,所以你摊销了打开和关闭保险库的成本。AI 系统的能源效率是非常重要的,所以你要安排你的模型和数据训练的方式以便每次到内存中可以检索到大量数据,这实际上可以节省大量进出内存的资源消耗。”


另一种处理方法是使用更少的比特。“8 位浮点数比 16 位浮点数需要更少的存储空间,因此从内存中读取所需的能量更少,”Woo 说。“缺点是,它们也不那么精确。随着现代神经网络执行数十亿次的乘法累加(MAC)操作,甚至更多,缺乏精度和四舍五入的方式会影响结果。”


所有这些都必须考虑到人工智能机器学习系统。事实上,在计算机科学中有很多关于如何使数字四舍五入以保持准确性的研究。


“想象一下,假如你只有一个小数精度,”Woo 解释说。”你只能表示整数或半数。例如,你只能表示 1.0、1.5、2.0、2.5 等等。如果计算中需要一个 0.2 的值,那么就无法对该值进行编码,因为缺乏这样的数值精度。四舍五入到 0 可能意味着什么都不会改变。四舍五入到 0.5 可能意味着你过度调整了你的网络。有些有趣的方式可以结合混合精度的数字来提高精度,或者使用其他舍入方法,如随机舍入,随机四舍五入,有时向上四舍五入,有时向下四舍五入,这样就能得到你想要的数。举个例子,如果期望的值是 0.2,那么 60%的概率四舍五入到 0,40%的概率四舍五入到 0.5,最终平均值会是 0.2。”


不同的方法也可以结合使用,有很多兼顾能源效率和准确性的算法可以供研究人员选择。

人工智能的影响

人工智能为这一切增添了一些独特的故事性。


“人工智能使用内存的另一个相当独特的问题是稀疏性的概念,”eSilicon人工智能战略和产品高级总监卡洛斯•马西安(Carlos Macian)表示。“在网络等其他领域,通过紧密地打包数据(每个比特都携带一些信息),内存在读写方面得到了有效利用。关键词是密集。另一方面,在人工智能中,这是一种近似计算的艺术,训练过程包括识别网络模型每个分支的相对重要性,即所谓的权重。”


这就是它特别有趣的地方,因为数据的准确性直接影响到内存的功能性。


马西恩说:“很多权重最终都是零,或者非常接近零,因此与最终结果无关。因此,网络模型的大部分可以忽略,并符合一个非常稀疏的图,许多零存储在内存中。 虽然有压缩稀疏图的方法,但是能够识别存储在给定内存位置的所有权值是否为零也是非常有用的。通过这样做,你可以避免执行任何涉及这些权重的操作,从而节省大量的电能。eSilicon 的 WAZPS 内存功能就做到了这一点。”

模拟内存

另一种新方法涉及如何捕获和存储数据。由于所收集的大部分数据都是模拟的,因此从时间和能量的角度对这些数据进行数字化本来就是低效的。神经形态计算以人脑为模型,旨在提高计算的能力和性能效率。


IBM 的研究人员从去年开始调查这一领域的进展,研究使用ReRAM、相变存储器以及光子学来降低移动数据所需的能量的可能性。他们的结论是,内存计算中的混合信号芯片将是向前迈出的一大步。


其他人也有类似的观点。Adesto的首席技术官吉迪恩·因特拉特(Gideon Intrater)表示:“ReRAM 具有存储模拟值的最佳特性。”“现在的存储设备被设计成只存储 1 和 0。我们想要做的是能够存储精确到 6 到 12 位的模拟值。这已经在实验室里做到了,但还没有达到我们需要的大规模矩阵运算的规模,也没有达到可以重复生产的水平。”


这是一项重要的工作,因为它的有效性意味着可以给内存的工作方式添加一个抽象级别。


Intrater 说:“将这种存储器转移到模拟设备上是一项艰巨的任务。希望在未来数年内,行业能够看到我们以模拟方式存储数据的产品。在模拟世界中,你必须处理数字世界和模拟世界的所有问题。所以密度是个大问题。你需要在芯片上存储数十或数百兆位,甚至更多。此外,你需要有能力在设备中存储模拟值,并以一种可靠的方式实际检索模拟值。”

SRAM 和 DRAM

多年来,人们一直在讨论用具有SRAM速度,DRAM价格、性能和耐用性的通用内存替换 DRAM 和 SRAM。这种情况短期内不太可能发生。在可预见的未来,这两种芯片仍将是芯片设计的主流。


然而,这并不意味着旧的内存技术就会停滞不前。DRAM 的新模式已经在使用——GDDR6 和HBM2——还有更多在开发中。与此同时,数据进出内存的管道也在加速。


Synopsys的 DDR PHYs 高级市场经理 Graham Allan 说:“我们看到 DRAMs、MRAM 和 flash 界面的变化,更有效地引导界面会更有效率。这就是 LPDDR4、LPDDR4x 和 LPDDR5 都转到 16 位通道的原因之一。它还与 DRAM 的内部架构一起工作,因此在从读到写的数据流中没有气泡。


DDR5 已经变成双 40 位。如果芯片上有 8 个 32 位 LPDDR4x 接口,那么实际上就是 16 个通道。每个频道都可以做自己的事情,一些阅读,一些写作。这在数据传输方面非常有效,因为你没有在任何时候将整个接口用于任何特定的目的。”


添加通道是提高现有内存类型性能的一种相当直接的方法。


Cadence负责产品营销的集团总监马克•格林伯格(Marc Greenberg)表示:“LPDDR5 本质上是一款双渠道设备,但拥有两个以上渠道是很常见的。因此,问题就变成了如何将流量从一个特定的通道映射到设备的核心。人们通过芯片内部链接网络来实现,但这是一个很大的架构建模问题。你希望访问哪些核心通道,希望每个核心都访问每个通道,这意味着什么?如果在核心无法访问的通道中有数据,会发生什么情况?如何传输这些数据?这些都是人们将花费大量时间研究的重大架构问题。这是一个可以解决的问题,每个人都必须解决它,因为在你决定数据的去向之前无法制造芯片。但仍有很大的空间让人们找到最好的方法。”


传统上,数据在内存中是随机分布的,但也可以通过统计分布数据来减少写读时间。还有可以使用加密压缩数据的方法,但加密仍处于研发的早期阶段。


Synopsys 的艾伦说:“有些初创公司正在尝试加密数据,其中一个好处是,当使用加密数据时,可能只需要传输 96 位数据,而不是 128 位。虽然实际上拥有更高的带宽,但是会有延迟开销。安全性要求越高,就越早希望加密数据。我们想让它沿着通道走得越远越好,所以加密和解密都会有延迟损失。”


这仍然比当前的加密和解密方法快,并且可以提高系统的整体效率和性能。


最后,匹配组件可以优化性能,提高效率。


Rambus 产品管理高级主管弗兰克•费罗(Frank Ferro)表示:“我们希望优化处理能力和内存带宽。一些大型系统供应商已经围绕人工智能和通用进程进行了优化,这些进程看起来并不那么好,但对于特定的应用程序,他们调整了曲线,使 GPU 的吞吐量与内存带宽达到最大。这就是他们所追求的,他们想优化应用程序的可用性。”

密度问题

随着所有这些方法的使用,内存将以不确定的速度收缩。DRAM 厂商有他们自己的增加密度的时间表,但是 SRAM 必须随着芯片的进程而收缩。这就会引起问题,因为 SRAM 不像其他数字电路那样收缩,其结果是,用于缓存的 SRAM 占用的空间将会增加。


“在过去,芯片的 40%是内存,”西门子企业Mentor的IP部门董事总经理法扎德扎里法(Farzad Zarrinfar)说。“现在它占芯片的 60%到 70%,而在人工智能芯片中,这个比例可以达到 70%到 80%。面积在 SRAM 扩展中起着重要作用,这就是为什么我们将继续增加密度。”


然而,由于不同的原因,这变得越来越困难。随着存储位单元的收缩和电压的降低,泄漏量正在上升。Zarrinfar 说:“存储位正在不断地研究各种方法,以减少泄漏和降低保持电压。假如功能电压下降,我们就必须使用 HVT(高压阈值电池)来减少泄漏,用 UHVT 可以进一步减少泄漏,用 LVT(低压阈值)可以最大限度地提高速度。”


同时,随着密度的增加,性能也会出现问题,所以我们还有写辅助和读辅助来优化密度。

结论

多年来,以不同方式存储和访问数据的研究一直时断时续。然而,在过去的几个节点之前,设备伸缩在性能和功耗方面产生了大量的改进,因此在这方面几乎没有取得什么进展。但是随着可伸缩性不断减少,架构更改对于 PPA 的改进变得越来越重要。这一点尤其重要,因为处理和存储的数据量将继续激增,这给内存研究和开发增加了一种紧迫感。


这也推动了对新内存类型和打包方式的研究,以及更好的排序和访问数据的方法。尽管内存一直是计算的一个组成部分,但芯片制造商希望以更低的功耗大幅提升性能,所以内存将被重新重视起来。


原文链接:


Using Memory Differently To Boost Speed


2019-08-30 10:551523

评论

发布
暂无评论
发现更多内容

第 6 周 系统架构总结

心在那片海

第十周 模块分解作业

蓝黑

极客大学架构师训练营

第六周作业总结

hunk

极客大学架构师训练营

CAP 原理简述

jorden wang

架构师训练营week10总结

FG佳

成为架构师 - 架构师训练营第 06 周

陈永龙Vincent

架构师训练营第十周课程笔记及心得

Airs

第 6 周 系统架构作业

心在那片海

第六周作业

hunk

极客大学架构师训练营

【架构师训练营第 1 期 10 周】 学习总结

Bear

极客大学架构师训练营

架构一期第十周作业

Airs

架构师训练营 1 期 - 第十周作业(vaik)

行之

极客大学架构师训练营

Week_10 作业

golangboy

极客大学架构师训练营

身为一名优秀的程序员,如何避免满屏的写 if else!

Java架构师迁哥

面试被问Mybatis底层实现:你连这个知识点都说不明白?

小Q

Java 编程 程序员 架构 mybatis

第十周学习总结

熊桂平

极客大学架构师训练营

第10周作业

alpha

极客大学架构师训练营

第十周作业 (作业一)

Geek_83908e

架构师一期

第十周作业

熊桂平

极客大学架构师训练营

week 6 学习笔记

willson

架构2期-第六周作业(1)

浮生一梦

极客大学架构师训练营 2组 第六周作业

架构师训练营 1 期 -- 第十周作业

曾彪彪

第10周总结

alpha

极客大学架构师训练营

架构师训练营第十周学习总结

文智

极客大学架构师训练营

第十周作业

wanlinwang

极客大学架构师训练营

Architecture Phase1 Week10:HomeWork

phylony-lu

极客大学架构师训练营

第十周作业 (作业二)

Geek_83908e

架构师一期

模块分解-微服务,组件设计原则,领域驱动开发

garlic

极客大学架构师训练营

Week 6 学习总结

evildracula

学习 架构

《Python数据科学入门》PDF免费下载

计算机与AI

Python 学习 数据科学

六、CAP

Geek_28b526

如何创新使用内存以提高处理速度?_语言 & 开发_Ed Sperling_InfoQ精选文章