内存分配技术发展(技术干货内存计算技术)

内存计算 (IMC) 是一种未来计算技术,将数据存储在 RAM 中,以便完全在计算机内存中运行计算随着大数据时代的兴起,需要更快的数据处理能力计算机内存和存储空间也在成倍增长,以适应大容量的数据采集和复杂的数据分析,推动了AI(人工智能)的发展,进而衍生出一个新兴的东西,那就是内存计算,我来为大家讲解一下关于内存分配技术发展?跟着小编一起来看一看吧!

内存分配技术发展(技术干货内存计算技术)

内存分配技术发展

介绍

内存计算 (IMC) 是一种未来计算技术,将数据存储在 RAM 中,以便完全在计算机内存中运行计算。随着大数据时代的兴起,需要更快的数据处理能力。计算机内存和存储空间也在成倍增长,以适应大容量的数据采集和复杂的数据分析,推动了AI(人工智能)的发展,进而衍生出一个新兴的东西,那就是内存计算。

目录

介绍

一、内存墙:处理器/内存性能差距

二、 发展要求

三、什么是内存计算?

3.1 内存计算定义

3.2 四种实现方式

四、内存计算驱动力及市场前景

4.1 人工智能的内存计算

4.2 内存计算产品展望

4.3 内存计算市场及前景

五、结论


一、内存墙:处理器/内存性能差距

计算机发明时,冯诺依曼体系结构在计算机系统中占据了主导地位。这种计算方式是先将数据存入主存,运行时再从主存中取出指令依次执行。我们都知道,如果内存的连接速度跟不上CPU的性能,那么计算就会受到限制。这是一面记忆墙。同时,在效率方面,冯诺依曼架构也有明显的不足。读取和写入数据比计算一次消耗更多的能量。

图 1. 冯诺依曼架构图

计算机处理器的性能在摩尔定律的基础上迅速发展,并随着晶体管的发明而直接得到提高。计算机的主存储器使用DRAM。它是一种基于电容充放电的高密度存储解决方案。它的性能(速度)取决于两个方面,即存储器中电容充放电的读/写速度和器件之间的接口带宽。电容充放电的读写速度随着摩尔定律的增加而提高,但速度不如处理器快。此外,DRAM与处理器之间的接口是混合信号电路,其带宽增加速度主要受制于PCB上走线的信号完整性。这也导致了DRAM的性能提升远低于处理器。目前,DRAM的性能已经成为计算机整体性能的巨大瓶颈,即所谓的“内存墙”。它阻碍了计算性能的提高。

图 2. 摩尔定律效应

二、发展要求

在当前的人工智能技术中,随着数据量和计算量的不断增加,原有的冯诺依曼架构面临越来越多的挑战。依靠扩展CPU,硬件架构不可能有大量的计算。另外较大的存储容量严重依赖过去的架构,也非常不适合AI。当内存容量大到一定程度时,只能说明某些技术需要创新。为了解决“内存墙”问题,未来的计算机不是基于计算内存,而是基于内存计算,从而降低计算过程中的数据访问成本。

图 3. 传统计算与内存计算

三、什么是内存计算?3.1 内存计算定义

内存计算(或称内存计算)是麻省理工学院研究组提出的一种基于RAM数据存储和索引的技术,其主要目的是加速卷积计算。我们知道卷积计算可以扩展为加权累加计算。从另一个角度来看,它实际上是多个数字的加权平均。因此,电路实现了电荷域的加权平均。权重(1位)存储在SRAM中,输入数据(7位数字信号)通过DAC变成模拟信号。根据SRAM中对应的权重,输出在模拟域乘以1或-1,在模拟域进行平均,最后由ADC读出为数字信号。具体来说,由于乘法的权重是 1 位(1 或 -1),它可以通过简单的开关和差分线来控制。如果权重为1,则差分线一侧的电容充电到需要的输出值。否则,让差分线的另一端充电到这个值。至于平均值,在电荷域中将几条差分线连接在一起。

当然,内存计算的电路不止一种,计算精度也不限于1-bit。但是,我们可以看到上面的例子,内存计算的核心思想一般是把计算转化为加权计算。将权重存储在内存单元中,然后对内存的核心电路(如读出电路)进行修改。这样读取的过程就像是输入数据和权重在模拟域中相乘的过程,也就是卷积。由于卷积是 AI 和其他计算的核心部分,内存计算可以广泛用于此类应用。内存计算使用模拟电路进行计算,这是与传统数字逻辑计算的区别。

在更传统的架构中,有一些用于张量数学的乘法累加电路 (MAC),尤其是矩阵乘法。这些架构试图以将权重和激活移动到适当位置的方式来安排 MAC。激活是从前一个神经网络层计算的。乘法通常涉及激活和权重,两者都必须移动到相乘的地方。内存计算利用了它。因此,如果将权重存储在内存中,则内存可以通过激活访问以获得乘法和累加。与实际内存的唯一区别是内存计算一次连接所有字线,而不是对输入进行解码以仅获得一条字线。

图 4. 内存计算图

3.2 四种实现方式

尝试是进入模拟领域,将存储单元作为模拟单元而不是数字单元来处理,以减少消耗。我们已经有了在推理引擎前端使用模拟的方法。那就是内存计算。因此,我们取数字数据,使用 DAC 将其转换为模拟值,然后用这些模拟内容驱动存储器以获得模拟位线输出,最后使用 ADC 将结果转换回数字格式。但是内存计算还处于探索阶段,具体的实现方式有很多需要研究,目前主要有RRAM、Flash、SRAM、DRAM三种。

  • 基于 RRAM

    RRAM 是最常用的方法,因为通过将欧姆定律应用于一系列电阻器很容易使用,但它仍然存在依赖 RRAM 的问题。编程和电阻之间的关系是非线性的,这需要做更多的工作才能在 RRAM 存储器中为市场制作可行的计算电路。所以只是一个想法,具体方案还在研究中。

  • 基于闪存

    NOR闪存具有更传统的字线/位线结构。它既是电阻性的,也是电容性的。通常,存储单元是一个被开启或关闭的晶体管。但是,如果它是部分导电的,它可以用作电阻器。电阻取决于存储单元(电容器)的浮栅上的电荷量。一直运行时,电池将导通至其最大容量。在这个过程中,它根本不导通,但是,它可以被部分编程。有一个问题是你不能精确控制电子的数量。而且,对任何数字的响应都会随着工艺和温度等变量的变化而变化。

    两家公司正在研究这种方法。由于收购了 SST,Microchip 拥有自己的 memBrain 阵列,而 Mythic 是一家初创公司,致力于使用闪存计算的推理引擎。两家公司都表示,他们正在使用广泛的校准技术来应对这种变化。

    另一个问题是,闪存电池会随着时间的推移失去电子。电子会四处流动,这就引出了一个有趣的话题:在这种类型的内存阵列上,数据的保留和持久性会是怎样的。

    从应用角度看,要看是用在云计算还是边缘推理引擎。在边缘,它可以在设备的整个生命周期中执行某些固定的推理功能。因此,如果有足够多的数组,那么您将首次加载权重并且不再需要对其进行编程(除非您进行更新),因为闪存是非易失性的。尽管您仍然需要移动激活,但无需移动权重,权重将永久存储在数组中。这表明数据耐久性(在累积损坏将电子泄漏加速到不可接受的水平之前可以对设备进行编程的次数)并不重要,它只需要编程一次。

    相比之下,在云应用程序中,设备很可能作为通用计算资源共享,因此这需要为每个新应用程序重新编程。这意味着电池寿命在云中变得更加重要。Mythic 声称有 10K 的写入周期,并观察到即使每天重新编程,也能持续 10 年以上。

    如果为它设置一个模拟值并在单元格中使用一个模拟值,那么理论上每个电子都很重要。但是,如果有足够的电子迁移,则需要刷新存储单元,或者以某种方式补偿电子变化。因为今天相同的模拟输入将产生与一年前不同的结果。校准电路还可以处理一些老化问题。然而,对于数据保留,Mythic 表示他们会定期更新存储在闪存中的重量值。这将使持久性成为主要的磨损机制,而不是数据保留。Microchip 表示其数据保留时间待定,但它可能会每季度或每年对设备进行重新编程以恢复设备。

    所以他们需要大量高质量的ADC和DAC,才能将信噪比(SNR)保持在准确推理的范围内,这是设计工作的重点。Mythic 声称他们提供了一种新颖的 ADC,以便 Microchip 可以共享它以减少所需的数量。尽管 ADC 确实会消耗能量,但它也大大降低了整个系统的消耗。

  • 基于SRAM

    这个想法来自普林斯顿大学 Hot Chips 的一次讲座。根据定义,SRAM 是一个双稳态单元。所以不能处于中间状态,这个应该怎么处理呢?而 DAC 和 ADC 在面积和功耗方面比阵列需要更正。

    这个问题的重点归结为如何模拟的问题。他们解释说,这种方法使用不止一位线进行计算。由于单位仍然是数字值,因此需要几条位线来执行计算。位线可以分裂,不同的组进行不同的乘法。下图说明了这一点。

    图 5. 位线

    一次有 8 个输入,因此对输入向量进行切片,并进行几次连续的乘法运算,得到最终结果。位线电荷沉积在电容器上。准备好读取时,会读出电荷并将其发送到 ADC 以转换回数字域。它们的基本单元结构如下:

    图 6. 位单元

    这些电容器可能会影响芯片尺寸问题,但他们表示可以使用电池上方的金属。当然,一个单元现在比标准的 6T SRAM 单元大 80%(即使没有电容器),但他们说他们的整体电路仍然比基于标准数字实现所需的电路小得多。此外,由于它们的基本阵列操作仍然是数字形式,它们对噪声和变化不太敏感,这意味着它们的 ADC 可以更简单,功耗更低。

    图 7. 芯片尺寸

  • 基于DRAM

    这个想法是指不使用大量的功率来获取 DRAM 内容,并以某种方式将计算纳入 CPU 或其他计算结构中,并直接在 DRAM die 上运行,这就是 UPMEM 所做的。一个简单的处理器是建立在 DRAM 芯片上的,该架构也不会与 Xeon 芯片竞争,他们称之为“内存处理”或 PIM。

    图 8. PIM 芯片

    他们不是将数据带入计算,而是将计算带入数据。运行时由 DRAM 芯片中的 CPU 执行。也就是说,不需要将数据移动到DRAM芯片之外的任何位置,只需将计算结果发送回主机系统即可。此外,由于 ML 计算通常涉及大量缩减,因此计算所需的数据更少。尽管这确实需要对 DRAM 进行一些小的改动,但它们并没有改变制造工艺。在这种情况下,一个标准的 DRAM 模块将为分布式计算提供多种机会。同时,使用该函数编写程序也变得复杂。

    他们说,使用 PIM 卸载的服务器将消耗两倍于连接到没有 PIM 的 DRAM 模块的标准服务器的功率。然而,凭借 20 倍的吞吐量,它仍然为他们提供了 10 倍的能效优势。此外,这种方法可以帮助防御侧信道安全攻击。因此,最初包含在一个或多个 CPU 中的一组计算线程流向 DRAM。因此,有必要检查所有 DRAM 并以某种方式找出线程在哪里,但这将是一项艰巨的任务。

    四、内存计算驱动力及市场前景4.1 人工智能的内存计算

    人们早就认识到“内存墙”的问题,但为什么近两年才提出内存计算?因此,我们必须分析其上涨背后的推动力。

    第一个动机是基于神经网络的人工智能的兴起,特别是希望人工智能可以在移动和嵌入式设备中普及。因此,具有高能效比的内存计算备受关注。此外,神经网络对计算精度的误差具有很高的容忍度。因此,内存计算的模拟计算中引入的错误通常是可以接受的。也就是说内存计算和人工智能是很好的合作伙伴。

    第二个动机是新的记忆。对于内存计算,内存特性往往决定了内存计算的效率。因此,新的内存改进往往会推动内存计算的发展。例如,最近流行的 ReRAM 使用电阻调制来存储数据,因此每个位的读出使用电流信号而不是传统的电荷信号。如此一来,电流的累加是很自然的操作(直接将几条电流组合起来就可以实现电流的总和,甚至不需要额外的电路)。也就是说,ReRAM 非常适合内存计算。从内存提升的角度来看,新的内存也愿意追赶AT潮流。所以,

    4.2 内存计算产品展望

    用于内存计算的芯片产品预计有两种形式。第一种形式是作为具有计算功能的内存IP出售的。这样的内存IP可以是传统的SRAM,也可以是eFlash、ReRAM、MRAM、PCM等新型内存。

    第二种形式是直接基于内存计算构建AI加速芯片。例如,Mythic 计划制作基于闪存的 PCIe 加速卡,即通过 PCIe 接口与主 CPU 访问数据。重量数据存储在 Mythic 内存芯片上,这样当数据发送到 Mythic IPU 时,可以直接读出计算结果。这样就省去了读取权重数据的动作。

    图 9. Mythic 是 Pcie 加速器

    4.3 内存计算市场及前景

    内存计算将对AI芯片市场产生怎样的影响?首先,我们看到内存计算使用的是模拟计算,所以它的精度会受到低信噪比的影响。通常精度上限在 8 位左右,只能进行定点计算,不能进行浮点计算。所以内存计算不适合对计算精度要求高的AI训练市场。也就是说,内存计算的主战场是AI推理市场。比如更适合嵌入式人工智能,对能效要求不高,精度要求不高。事实上,内存计算其实最适合需要大内存的场合。例如,在物联网和其他场景中固有地需要闪存,所以如果能把内存计算加到flash上​就很合适了。但是,在大型存储内存中引入内存计算可能并不合适。基于此分析,我们认为内存计算未来可能成为嵌入式人工智能(如智能物联网)的重要组成部分。

    五、结论

    随着人工智能和新内存的兴起,内存计算也成为了新的热点。基于内存的独特特性,结合内存中的模拟计算,大大减少了AI中的内存读写操作。虽然内存中的计算精度受限于模拟计算,但它也适用于最追求能效的嵌入式AI应用,可以接受一定的精度损失。

    关于内存计算技术的常见问题

    1. 为什么我们需要内存计算?内存计算提供了超快的性能(快了数千倍)和永无止境的数据量规模,并简化了对越来越多的数据源的访问。

    2. 记忆中是什么意思?与将数据存储在磁盘或 SSD 上的数据库相比,内存数据库是一种专门构建的数据库,主要依赖内存进行数据存储。... 由于所有数据都在主内存中专门存储和管理,因此存在因进程或服务器故障而丢失的风险。

    3. 内存计算是如何工作的?内存计算意味着使用一种中间件软件,它允许将数据存储在 RAM 中,跨计算机集群,并并行处理。考虑通常存储在集中式数据库中的操作数据集,您现在可以将其存储在跨多台计算机的“连接”RAM 中。

    4. SAP HANA 中的内存计算是什么?内存数据库意味着来自源系统的所有数据都存储在 RAM 内存中。在传统的数据库系统中,所有数据都存储在硬盘中。它可以更快地访问多核 CPU 的数据,以进行信息处理和分析。

    5. 数据是如何存储在内存中的?通常,内存被描述为一种存储设施,可以通过使用地址来存储和检索数据。这是准确但不完整的。计算机内存是一种机制,如果您为其提供地址,它会为您提供您之前使用该地址存储的数据。

    6.什么是内存数据处理?内存处理是对完全在计算机内存(例如,RAM)中的数据采取行动的做法。... 由于存储表现为一个大的、单一的 RAM 分配,因此可以一次处理大型数据集,而不是处理仅适合单台计算机 RAM 的数据集。

    7.什么是内存数据库处理,它有什么优势?使用内存数据库的系统与传统数据库系统相比的主要优势是:它的性能速度。... 源数据以压缩格式加载到系统内存中。因此,内存处理减少了访问数据的磁盘寻道时间,并简化了处理查询所涉及的工作。

    8.什么是大数据计算?大数据计算是一种新兴的多维信息挖掘数据科学范式,用于在大规模基础设施上进行科学发现和业务分析。... 大数据的特点是 5V,如数量、速度、多样性、准确性和价值。

  • 免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页