您的位置 首页 汽车

多级存储器与模仿内存内核算完美交融,人工智能边际处理难题方便的解决

机器学习和深度学习已成为我们生活中不可或缺的部分。利用自然语言处理(NLP)、图像分类和物体检测实现的人工智能(AI)应用已深度嵌入到我们使用的众多设备中。大多数AI应用通过云引擎即可出色地满足其用途

机器学习和深度学习已成为咱们日子中不可或缺的部分。运用自然语言处理(NLP)、图画分类和物体检测完结的人工智能(AI)运用已深度嵌入到咱们运用的许多设备中。大多数AI运用通过云引擎即可超卓地满意其用处,例如在Gmail中回复电子邮件时能够取得词汇猜测。

尽管咱们能够享受到这些AI运用带来的好处,但这种办法导致隐私、功耗、延时和本钱等许多要素面对应战。假如有一个能够在数据来历处履行部分或悉数核算(揣度)的本地处理引擎,那么这些问题即可方便的处理。传统数字神经网络的存储器功耗存在瓶颈,难以完结这一方针。为了处理这一问题,能够将多级存储器与模仿内存内核算办法结合运用,使处理引擎满意更低的毫瓦级(mW)到微瓦级(μW)功率要求,然后在网络边际履行AI揣度。

image.png

图1:从边际到云的数据传输

通过云引擎供给服务的

AI运用面对的应战

假如通过云引擎为AI运用供给服务,用户有必要将一些数据以自动或被迫办法上传到云,核算引擎在云中处理数据并供给猜测,然后将猜测成果发送给下流用户运用。下面概述了这一进程面对的应战:

1.   隐私问题:关于一直在线一直感知的设备,个人数据和/或秘要信息在上传期间或在数据中心的保存期限内存在遭受乱用的危险。

2.   不必要的功耗:假如每个数据位都传输到云,则硬件、无线电、传输设备以及云中不必要的核算都会耗费电能。

3.   小批量揣度的延时:假如数据来历于边际,有时至少需求一秒才干收到云体系的呼应。当延时超越100毫秒时,人们便有显着感知,构成反应欠安的用户体会。

4.   数据经济需求发明价值:传感器随处可见,价格低廉;但它们会发生许多数据。将每个数据位都上传到云进行处理并不合算。

要运用本地处理引擎处理这些应战,有必要首要针对方针用例运用指定数据集对履行揣度运算的神经网络进行练习。这一般需求高功能核算(和存储器)资源以及浮点管用运算。因而,机器学习处理计划的练习部分仍需在公共或私有云(或本地GPU、CPU和FPGA Farm)上完结,一同结合数据集来生成最佳神经网络模型。神经网络模型的揣度运算不需求反向传达,因而在该模型准备就绪之后,可运用小型核算引擎针对本地硬件进行深度优化。揣度引擎一般需求许多乘-累加(MAC)引擎,随后是激活层(例如批改线性单元(ReLU)、Sigmoid函数或双曲正切函数,详细取决于神经网络模型复杂度)以及各层之间的池化层。

大多数神经网络模型需求许多MAC运算。例如,即使是相对较小的“1.0 MobileNet-224”模型,也有420万个参数(权重),履行一次揣度需求多达5.69亿次的MAC运算。此类模型中的大多数都由MAC运算主导,因而这儿的重点是机器学习核算的运算部分,一同还要寻找时机来创立更好的处理计划。下面的图2展现了一个简略的彻底衔接型两层网络。输入神经元(数据)通过第一层权重处理。第一层的输出神经元通过第二层权重处理,并供给猜测(例如,模型能否在指定图画中找到猫脸)。这些神经网络模型运用“点积”运算核算每层中的每个神经元,如下面的公式所示:

image.png(为简略起见,公式中省掉了“误差”项)。

Layer 1

第1层

Layer 2

第2层

L1 Input Neurons

 (e.g. Image Pixels)

第1层输入神经元

(例如图画像素)

L2 Output Neurons

第2层输出神经元

image.png

图2:彻底衔接的两层神经网络

在数字神经网络中,权重和输入数据存储在DRAM/SRAM中。权重和输入数据需求移至某个MAC引擎旁以进行揣度。依据下图,选用这种办法后,大部分功耗都来历于获取模型参数以及将数据输入到实践发生MAC运算的ALU。从能量视点来看,运用数字逻辑门的典型MAC运算耗费约250 fJ的能量,但在数据传输期间耗费的能量超越核算自身两个数量级,到达50皮焦(pJ)到100 pJ的规模。公平地说,许多规划技巧能够最大程度削减存储器到ALU的数据传输,但整个数字计划仍受冯·诺依曼架构的约束。这就意味着,有许多的时机能够削减功率糟蹋。假如履行MAC运算的能耗能够从约100 pJ削减到若干分之几pJ,将会怎样呢?

Global Buffer

大局缓冲器

Normalized Energy Cost

规范化能量耗费

NoC: 200-1000 PEs

NoC:200-1000 PE

Buffer

缓冲器

1 × Reference

1×参考值

image.png

图3:机器学习核算中的存储器瓶颈

消除存储器瓶颈

一同下降功耗

假如存储器自身可用来消除之前的存储器瓶颈,则在边际履行揣度相关的运算就成为可行计划。运用内存内核算办法能够最大程度地削减有必要移动的数据量。这反过来也会消除数据传输期间糟蹋的动力。闪存单元运转时发生的有功功率耗费较低,在待机形式下几乎不耗费能量,因而能够进一步下降能耗。

来历:Y.-H. Chen、J. Emer和V. Sze于2016世界核算机体系结构研讨会宣布的“Eyeriss: A Spatial Architecture for Energy-Efficient Dataflow for Convolutional Neural Networks”。

该办法的一个示例是Microchip子公司Silicon Storage Technology(SST)的memBrain™技能。该处理计划依托于SST的SuperFlash®存储器技能,这项技能已成为适用于单片机和智能卡运用的多级存储器的公认规范。这种处理计划内置一个内存内核算架构,答应在存储权重的方位完结核算。权重没有数据移动,只要输入数据需求从输入传感器(例如摄像头和麦克风)移动到存储器阵列中,因而消除了MAC核算中的存储器瓶颈。

这种存储器概念依据两大根本原理:(a)晶体管的模仿电流呼应依据其阈值电压(Vt)和输入数据,(b)基尔霍夫电流规律,即在某个点交汇的多个导体网络中,电流的代数和为零。了解这种多级存储器架构中的根本非易失性存储器(NVM)位单元也非常重要。下图(图4)是两个ESF3(第3代嵌入式SuperFlash)位单元,带有共用的擦除门(EG)和源线(SL)。每个位单元有五个终端:操控门(CG)、作业线(WL)、擦除门(EG)、源线(SL)和位线(BL)。通过向EG施加高电压履行位单元的擦除操作。通过向WL、CG、BL和SL施加高/低电压偏置信号履行编程操作。通过向WL、CG、BL和SL施加低电压偏置信号履行读操作。

image.png

图4:SuperFlash ESF3单元

运用这种存储器架构,用户能够通过微调编程操作,以不同Vt电压对存储器位单元进行编程。存储器技能运用智能算法调整存储器单元的浮栅(FG)电压,以从输入电压取得特定的电流呼应。依据终究运用的要求,能够在线性区域或阈下区域对单元进行编程。

图5说明晰在存储器单元中存储多个电压的功用。例如,咱们要在一个存储器单元中存储一个2位整数值。关于这种状况,咱们需求运用4个2位整数值(00、01、10、11)中的一个对存储器阵列中的每个单元进行编程,此刻,咱们需求运用四个具有满足距离的或许Vt值之一对每个单元进行编程。下面的四条IV曲线别离对应于四种或许的状况,单元的电流呼应取决于向CG施加的电压。

Level 1

电压1

Level 2

电压2

Level 3

电压3

Level 4

电压4

Input Voltage

输入电压

Subthreshold Current

阈下电流

image.png

图5:ESF3单元中的编程Vt电压

受训模型的权重通过编程设定为存储器单元的浮栅Vt。因而,受训模型每一层(例如彻底衔接的层)的一切权重都能够在相似矩阵的存储器阵列上编程,如图6所示。关于揣度运算,数字输入(例如来自数字麦克风)首要运用数模转换器(DAC)转换为模仿信号,然后运用到存储器阵列。随后该阵列对指定输入向量并行履行数千次MAC运算,发生的输出随即进入相应神经元的激活阶段,随后运用模数转换器(ADC)将输出转换回数字信号。然后,这些数字信号在进入下一层之前进行池化处理。

Input Data on WL/CG

WL/CG上的输入数据

Dot Product on the Bitlines

位线上的点积

image.png

图6:用于揣度的权重矩阵存储器阵列

这类多级存储器架构模块化程度非常高,并且非常灵敏。许多存储器片能够结合到一同,构成一个混合了权重矩阵和神经元的大型模型,如图7所示。在本例中,MxN片装备通过各片间的模仿和数字接口衔接到一同。

到现在,咱们首要评论了该架构的芯片实施计划。供给软件开发套件(SDK)可协助开发处理计划。除了芯片外,SDK还有助于揣度引擎的开发。SDK流程与练习结构无关。用户能够在供给的一切结构(例如TensorFlow、PyTorch或其他结构)中依据需求运用浮点核算创立神经网络模型。创立模型后,SDK可协助量化受训神经网络模型,并将其映射到存储器阵列。在该阵列中,能够运用来自传感器或核算机的输入向量履行向量矩阵乘法。

image.png

图7:memBrain™的模块化结构

多级存储器办法结合内存内核算功用的长处包含:

1.   超低功耗: 专为低功耗运用规划的技能。功耗方面的第一个长处是,这种处理计划选用内存内核算,因而在核算期间,从SRAM/DRAM传输数据和权重不会糟蹋能量。功耗方面的第二个长处是,闪存单元在阈下形式下以极低的电流运转,因而有功功率耗费非常低。第三个长处是待机形式下几乎没有能耗,原因是非易失性存储器单元不需求任何电力即可保存一直敞开设备的数据。这种办法也非常合适对权重和输入数据的稀少性加以运用。假如输入数据或权重为零,则存储器位单元不会激活。

2.   减小封装尺度: 该技能选用别离栅(1.5T)单元架构,而数字实施计划中的SRAM单元依据6T架构。此外,与6T SRAM单元比较,这种单元是小得多。别的,一个单元即可存储完好的4位整数值,而不是像SRAM单元那样需求4*6 = 24个晶体管才干完结此意图,从本质上削减了片上占用空间。

3.   下降开发本钱: 因为存储器功能瓶颈和冯·诺依曼架构的约束,许多专用设备(例如Nvidia的Jetsen或Google的TPU)趋向于通过缩小几许结构进步每瓦功能,但这种办法处理边际核算难题的本钱却很高。选用将模仿内存内核算与多级存储器相结合的办法,能够在闪存单元中完结片上核算,这样便可运用更大的几许尺度,一同下降掩膜本钱和缩短开发周期。

边际核算运用的远景非常宽广。但是,需求首要处理功耗和本钱方面的应战,边际核算才干得到开展。运用能够在闪存单元中履行片上核算的存储器办法能够消除首要妨碍。这种办法运用通过出产验证的公认规范类型多级存储器技能处理计划,而这种计划已针对机器学习运用进行过优化。

Use Existing Frameworks

运用现有结构

Augment with memBrain™ SDK

运用memBrain™ SDK扩大规模

Train your model in the available frameworks

在可用结构中练习模型

Model Quantization, Optimizaton and Mapping for   in-memory computing

将模型量化、优化和映射用于内存内核算

Fine-tuned programming algorithm to load the   optimized weights into SuperFlash memBrains™ memory

运用通过微调的编程算法将优化权重装入SuperFlash memBrains™存储器中

image.png

图8:memBrain™ SDK流程

作者简介

Vipin Tiwari在产品开发、产品营销、事务开发、技能答应、工程办理以及存储器规划方面具有20多年的丰厚经历。现在,Tiwari先生在Microchip的子公司Silicon Storage Technology, Inc.担任嵌入式存储器产品开发总监。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/122724.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部