存内计算芯片研究进展及应用—以基于NorFlash的卷积神经网络量化及部署研究突出存内计算特性

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 存内计算芯片研究进展及应用—以基于NorFlash的卷积神经网络量化及部署研究突出存内计算特性

@[toc]

如果我能看得更远一点的话,那是因为我站在巨人的肩膀上。 —牛顿

存内计算的背景

存内计算是一种革新性的计算范式,旨在克服传统冯·诺依曼架构的局限性。随着大数据时代的到来,传统的冯·诺依曼架构由于处理单元和存储器互相分离,带来了巨大的延时和能耗,承受着高昂的数据传输成本,即所谓的“冯·诺依曼瓶颈”。为了解决这个问题,存内计算应运而生。
在这里插入图片描述

存内计算架构在功能和物理上合并了数据处理和存储单元,在数据存储的位置即处理数据,在器件层面以原位的方式执行计算。这种方式可以避免频繁的数据通信,从而减少相应的延时和能耗。存储器是存内计算的核心器件,这种架构的需求同时也促进了新型非易失性存储器(NVM)的发展。

早期,由于大数据、人工智能、云计算等需要大量数据处理的应用还没展开,存内计算仅仅停留在理论研究阶段,并未实现实际的应用。然而,近年来随着这些应用的兴起,人们再次关注存内计算的研究。世界知名的IC企业和高校都推出了存内计算的架构。

存内计算的研究还涉及模拟式忆阻器等重要器件,这些器件可以支持各种模拟计算应用,包括人工神经网络(ANN)、机器学习、科学计算和数字图像处理等,展现出了突出的潜力。

存算一体技术发展历程

存算一体技术,也称为近存计算与存内计算,其概念最早在1969年被提出。这种技术旨在克服传统冯·诺依曼架构的局限性,通过在存储器中直接进行计算,减少数据传输的开销。然而,早期由于缺乏大数据处理的应用需求以及芯片制造成本高昂,存算一体技术主要停留在研究阶段。

计算架构的演变示意图如下:
在这里插入图片描述

随着技术的发展,尤其是摩尔定律的逐渐失效和大数据应用的驱动,存算一体技术重新受到关注。2015年以来,这一领域的研究取得了显著进展,涌现出了一系列相关研究工作,包括基于SRAM、DRAM、Flash、ReRAM、PCM、FeFET、MRAM等各种存储介质的研究。

存内计算芯片8 bit精度运算测试结果如下图:
在这里插入图片描述

存算一体技术被认为是先进算力的代表性技术之一。在学术界和工业界,许多知名机构都在积极开展存算一体芯片或系统原型的研究,如苏黎世联邦理工学院、加利福尼亚大学圣巴巴拉分校、英伟达、英特尔、微软、三星等。这些研究工作不仅在学术期刊上发表了一系列研究成果,也在国际会议上得到了广泛关注。
基于不同存储介质的计算架构演变图如下:
在这里插入图片描述

存算一体技术的发展历程表明,尽管早期受到技术和成本等方面的限制,但随着大数据和人工智能等应用的兴起,这一领域的研究已经取得了显著进展,并被认为是未来计算架构的重要方向之一。

存内计算芯片研究现状

存内计算芯片可以根据计算范式和存储介质的不同进行分类。主要分为模拟式和数字式两种,根据存储介质的不同又可分为基于传统存储器和基于新型非易失性存储器两种。

  1. 计算范式分类:

    • 模拟式存内计算: 在此类存内计算中,存储单元内部或阵列周边的信号以模拟信号的方式进行操作。这意味着计算过程中采用模拟信号,其中的运算是以连续的模拟形式进行的。
    • 数字式存内计算: 在数字式存内计算中,存储单元内部或阵列周边的信号以数字信号的方式进行操作。实际运算过程中,信号以离散的数字形式进行计算。
  2. 存储介质分类:

    • 基于传统存储器的存内计算芯片: 包括使用传统存储器技术的存内计算芯片,如SRAM(静态随机存储器)、DRAM(动态随机存储器)和Flash等。这些技术已经被广泛应用于存内计算领域。
    • 基于新型非易失性存储器的存内计算芯片: 包括使用新型非易失性存储器技术的存内计算芯片,如ReRAM(电阻随机存储器)、PCM(相变存储器)、FeFET(铁电场效应晶体管)和MRAM(磁阻存储器)等。这些新型存储器具有一些优势,如更低的功耗、更高的稳定性等。

在当前的研究工作中,许多存内计算芯片综合了模拟和数字两种运算方式,并且在存储介质的选择上也有很多不同的组合。其中,基于NOR Flash和基于SRAM的存内计算芯片距离产业化较近,已经在一些应用中取得了一定的进展。

在这里插入图片描述

SRAM存内计算

基于SRAM的存内计算芯片通常以典型的6T(6-Transistor)基本单元为基础。由于SRAM是二值存储器,它可以用于二值乘累加运算,这等效于同或累加运算。这使得它适用于二值神经网络运算。核心思想是将网络权重存储于SRAM单元中,激励信号从字线给入,最终利用外围电路实现同或累加运算。结果可以通过计数器或模拟电流/电压输出。

如果要实现多比特精度运算,通常需要多个单元进行拼接,这不可避免地会带来面积开销。对6T基本单元的一个简单修改是将字线进行拆分。此外,为了解决读写干扰问题,可以采用8T基本单元,但这明显增加了布局面积,如图所示。

基于SRAM的存内计算技术由于其工艺成熟度与微缩性良好,受到业界的高度关注。在近几年的ISSCC(国际固态电路大会)上,连续报道了多篇相关论文。例如,2021年,存内计算共有两个分论坛,共收录8篇论文,其中5篇是关于SRAM存内计算芯片的。在2022年的ISSCC中,北京大学提出了一种基于动态逻辑且无模数转换器的SRAM存内计算芯片[42]。SRAM存内计算技术的主要应用难点在于在保证运算精度的前提下,实现高算力和小面积。
在这里插入图片描述

DRAM存内计算

基于DRAM的存内计算芯片的层次结构通常分为阵列、子阵列和单元。一组阵列由若干子阵列和用于读写操作的相关外围电路组成,而子阵列则包含若干行1T1C(1-Transistor-1-Capacitor)单元、感知放大器和本地解码器。其基本原理是利用DRAM单元之间的电荷共享机制。图4展示了一种典型的实现方案,当多行单元同时被选通时,不同单元之间因为存储数据的不同会产生电荷交换共享,从而实现逻辑运算。

然而,DRAM存内计算方案面临两个主要难点。首先,由于DRAM本身为易失性存储器,计算操作会破坏数据,因此需要在每次运算后进行刷新,这会带来额外的功耗问题。其次,在实现大阵列运算时,难以保证运算精度,这可能在一定程度上影响其应用的可靠性。

尽管存在这些难点,基于DRAM的存内计算方案仍然具有潜在的优势,包括其相对较低的成本和高度集成的能力。不断的研究和创新可能有助于解决这些难题,使其更加适用于特定的应用场景。
在这里插入图片描述

ReRAM/PCM存内计算

ReRAM(电阻随机存储器)/PCM(相变存储器)存内计算的基本原理是利用存储单元的模拟多比特特性,通过基于电流/电压的欧姆定律与基尔霍夫定律进行矩阵乘加运算。主要有两种实现方案,分别是1T1R(1-transistor-1-resistance)结构和交叉阵列结构,如图所示。

  • 1T1R结构: 使用1T1R结构,即一个晶体管和一个电阻组成一个存储单元。这种结构通过控制电流或电压,可以实现对存储单元的状态调控,进而进行计算操作。

  • 交叉阵列结构: 利用ReRAM能够实现大规模交叉点阵列,将存储单元排列成交叉的结构。这样的阵列结构可以进行并行计算,提高计算效率。

自2008年ReRAM首次实验发现以来,基于ReRAM的存内计算研究不断涌现。特别是在2020年,清华大学研发了基于多个ReRAM阵列的存内计算系统,该系统在手写数字集上的识别准确率达到96.19%,与软件的识别准确率相当,证明了存内计算架构全硬件实现的可行性。测试芯片如图所示。

尽管ReRAM存内计算技术具有广阔的应用潜力,但目前仍面临一些挑战。其中主要难点包括工艺尚不够成熟、多比特精度实现较为困难以及一致性和鲁棒性较差。随着技术的不断发展,这些问题有望在未来得到解决,推动ReRAM存内计算技术的进一步应用和成熟。
在这里插入图片描述

MRAM存内计算

MRAM(磁性随机存储器)存内计算主要有两种技术方案:

  1. 基于读/写操作的数字式存内计算: 早期的MRAM存内计算多采用数字式方案。例如,在2015年,日本东北大学提出了一种基于读操作实现多种布尔逻辑的方案,并通过实验验证获得了48.3%的能效提升。此外,在2019年,北京航空航天大学提出了基于单次写操作的数字式MRAM存内计算方案,实现计算结果原位存储的同时降低了延时和功耗。

  2. 基于基尔霍夫电流定律和欧姆定律的模拟式存内计算: 近年来,随着计算范式、器件和电路的创新,MRAM模拟存内计算得到了迅速发展。在2021年,美国普林斯顿大学通过电路级优化,实现了第一款基于STT-MRAM的模拟存内计算硬核。而在2022年,韩国三星公司在Nature期刊上发表了基于电阻累加方案的MRAM模拟存内计算芯片原型,并取得了最高405 TOPS/W的能效比。该芯片的阵列布局图、显微图和结构如图所示。
    在这里插入图片描述

模拟式存内计算在MRAM中的难点主要体现在器件的阻值相对较小(约几千欧姆)以及高低阻值比率相对较小(约250%),这使得实现多比特精度较为困难。然而,通过多层次的创新突破,MRAM模拟存内计算技术在最近取得了显著的进展。

NOR Flash存内计算

基于NOR Flash的存内计算技术原理与ReRAM相似,如图所示。目前,NOR Flash存内计算芯片技术相对较成熟,并已于2021年实现量产。美国的Mythic和国内的知存科技都推出了基于NOR Flash的存内计算芯片产品。

  • Mythic M1076芯片: Mythic推出了M1076芯片,如图所示。这款芯片采用NOR Flash存内计算技术,具有嵌入式AI推理能力,适用于各种端侧设备,如摄像头、传感器和边缘计算设备等。

  • 知存科技WTM2101芯片: 知存科技推出了WTM2101量产SoC芯片,如图所示。该芯片基于NOR Flash存内计算技术,具有边缘AI计算能力,适用于智能摄像头、智能家居等场景,实现了高效的本地AI处理。

这些NOR Flash存内计算芯片的推出表明该技术已经进入商业化阶段,成为实际应用的一部分。这种技术的优势在于其相对成熟的制造工艺和较低的成本,使其成为在端侧设备中进行AI计算的有力选择。
在这里插入图片描述

基于 NOR Flash 的卷积神经网络量化

基于 NOR Flash 阵列实现模拟乘法的原理结合浮栅单元的存储特点,以实现 4 位(即网络正向传播时只存在精度为 4 位的计算)的卷积神经网络模型,采用基于动态阈值调整的量化方法。这个方法主要涉及神经网络量化时的参数(权值 w 和偏置 b)以及激活函数的不同量化方案。

  1. 参数量化: 在训练过程中,采样浮点参数的阈值多次,以改变缩放因子,使得量化的映射更加精确。通过动态调整阈值,可以更好地适应不同参数的取值范围,提高量化的准确性。

  2. 激活函数的量化: 针对激活函数,引入可学习的参数,在 ReLU(Rectified Linear Unit)激活函数中,使激活的量化可以根据实际情况在反向传播过程中不断更新,以提高量化精度。这样的调整可以根据网络的训练过程中动态变化的激活值来调整量化的参数,以适应不同的输入情况。

这种基于 NOR Flash 阵列和浮栅单元的量化方法可以在训练过程中动态地调整阈值和参数,以适应不同的神经网络结构和输入数据的变化,提高量化的精度,同时降低模型的计算和存储开销。这种动态的量化方法有望在实际的卷积神经网络模型中取得更好的性能。
在这里插入图片描述

卷积神经网络基本结构

在这里插入图片描述
卷积神经网络(Convolutional Neural Network,CNN)是一类专门用于处理具有类似网格结构的数据的深度学习模型,特别适用于图像和视频的处理。以下是卷积神经网络的基本结构:

  1. 输入层(Input Layer): 输入层负责接收原始数据,通常是图像的像素值。每个输入节点对应图像中的一个像素或一组像素。

  2. 卷积层(Convolutional Layer): 卷积层是卷积神经网络的核心部分。它通过使用卷积操作从输入数据中提取特征。卷积操作是通过滤波器(也称为卷积核)在输入数据上滑动并执行元素乘法和求和来实现的。这有助于捕捉输入中的局部特征,同时减少网络参数的数量。

  3. 激活函数层(Activation Layer): 卷积操作的结果通常通过一个激活函数进行非线性变换,以引入网络的非线性特性。常见的激活函数包括ReLU(Rectified Linear Unit)和Sigmoid等。

  4. 池化层(Pooling Layer): 池化层用于减小特征图的空间维度,减少计算复杂度并使网络对平移更加不变。常见的池化操作包括最大池化和平均池化。

  5. 全连接层(Fully Connected Layer): 全连接层负责整合之前层的信息,并将其映射到输出层。每个节点与前一层的所有节点相连,引入了全局信息。

  6. 输出层(Output Layer): 输出层负责生成网络的最终输出,通常对应于问题的类别数。对于分类问题,输出层通常使用softmax激活函数,对每个类别产生一个概率分布。

上述结构构成了一个基本的卷积神经网络的层次结构。在实际应用中,人们通常会堆叠多个这样的层次,形成深层的网络结构,以提高模型的学习能力和表示能力。深层卷积神经网络已经在图像识别、目标检测、语音识别等领域取得了显著的成果。

一维卷积:
在这里插入图片描述

二维卷积:
在这里插入图片描述

三维卷积:
在这里插入图片描述

卷积神经网络量化方法研究

基于动态阈值调整的量化方法,主要针对神经网络中的参数和激活值的量化。以下是该方法的主要步骤:

  1. 参数量化: 针对模型的权重(参数),不断采样浮点参数,并在反向传播过程中更新浮点参数的阈值范围。通过这种方式,动态地调整映射系数,使得参数的量化能够更好地适应模型的变化。

  2. 激活量化: 针对激活值,引入可学习的截断参数。在激活函数中,通过学习可调整的截断参数,使激活函数能够在训练过程中不断学习,并确定最佳的截断位置。这有助于提高激活值的量化精度。

  3. BN层处理: 针对批量归一化(Batch Normalization,BN)层的浮点计算过程,提供相应的处理方案。BN层通常用于神经网络的训练,而在量化神经网络中,需要特殊的处理方式来实现全整数计算。

该方法通过动态调整参数的映射系数和引入可学习的截断参数,实现了对神经网络的全整数计算的量化。这有助于减小神经网络在推理阶段的计算复杂度,适应特定硬件或嵌入式设备的需求。

这些措施的目标是在神经网络的训练过程中,通过动态调整阈值和引入可学习的参数,优化量化的精度,提高在反向传播中的更新效果。文本还提到了对BN层和其他激活函数的相应处理,以确保整个神经网络在量化过程中能够保持良好的性能。

实验及结果分析

在CIFAR-10数据集上评估动态阈值调整算法的性能。

  1. 数据集选择理由: 选择CIFAR-10数据集的原因有三点:首先,相对于MNIST数据集,CIFAR-10包含RGB三通道彩色图像,更符合当今卷积神经网络的应用场景;其次,相对于ImageNet数据集,CIFAR-10训练可以使用十几层的神经网络,这提高了在边缘设备上部署这些模型的可行性;最后,尽管CIFAR-10只有10个类别,但由于数据集本身的训练难度,通过更改Softmax输出层来实现迁移学习,从而完成更多物品的分类识别。

  2. CIFAR-10数据集描述: CIFAR-10数据集包括60000张大小为32x32的彩色图像,分为10个类别,每个类别有6000张图像。

  3. 训练集和测试集划分: 数据集中的50000张图像用于训练,10000张用于测试。

对于训练难度和迁移学习的考虑使得CIFAR-10数据集成为评估动态阈值调整算法性能的有力选择。

Res18模型精度如下图:
在这里插入图片描述
使用CIFAR-10数据集训练的全精度AlexNet、VGG16和ResNet-18模型在测试集上的分类准确率。

  1. 训练结果: 本文使用CIFAR-10数据集训练了AlexNet、VGG16和ResNet-18模型,它们在测试集上的分类准确率分别为90.07%,91.65%,93.23%。

  2. 与其他工作的对比: 文中对比了其他相关工作的结果。其中,引用的文献1使用AlexNet网络在CIFAR-10数据集上训练,最终分类准确率为89%。文献2使用VGG16网络和ResNet-18网络在CIFAR-10数据集上分别达到90.92%和92.32%的准确率。文献3使用ResNet-110在CIFAR-10数据集上训练,最终分类准确率为93.57%。本文的结果与这些工作相似,但文献3中的模型深度明显大于本文的模型。

本文的模型在CIFAR-10数据集上达到了竞争性的分类准确率。

数据结果对比:
在这里插入图片描述
量化结果对比:
在这里插入图片描述

心得

经过对动态阈值量化算法的实验验证,包括实验平台及相关设置、在CIFAR-10数据集上对参数和激活层进行的验证以及对AlexNet、VGG16和ResNet-18这三种卷积神经网络进行4位量化的结果。
在CIFAR-10数据集上,对动态阈值量化算法进行了验证,分别针对模型参数和激活层。实验结果表明,该算法在减小量化模型精度损失方面取得了成功,将损失控制在1.5%以内。
对AlexNet、VGG16和ResNet-18这三种卷积神经网络进行了4位量化的实验。结果表明,动态阈值量化算法在这些网络上能够将量化模型的精度损失有效地降低到1.5%以内。

参考文献

1.知存科技
2.中国移动研究院
3.电子与信息学报—存内计算芯片研究进展及应用
4.中科院—基于NorFlash的表积神经网络量化

文献内容极多,本文基于众多文献经过仔细仔细分析总结而来。支持存内计算发展。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
打赏
0
3
3
1
673
分享
相关文章
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
32 3
RT-DETR改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
41 16
YOLOv11改进策略【模型轻量化】| 替换骨干网络为MoblieNetV1,用于移动视觉应用的高效卷积神经网络
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
35 18
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
应用程序中的网络协议:原理、应用与挑战
网络协议是应用程序实现流畅运行和安全通信的基石。了解不同协议的特点和应用场景,以及它们面临的挑战和应对策略,对于开发者和用户都具有重要意义。在未来,随着技术的不断发展,网络协议也将不断优化和创新,为数字世界的发展提供更强大的支持。
云原生应用网关进阶:阿里云网络ALB Ingress 全能增强
在过去半年,ALB Ingress Controller推出了多项高级特性,包括支持AScript自定义脚本、慢启动、连接优雅中断等功能,增强了产品的灵活性和用户体验。此外,还推出了ingress2Albconfig工具,方便用户从Nginx Ingress迁移到ALB Ingress,以及通过Webhook服务实现更智能的配置校验,减少错误配置带来的影响。在容灾部署方面,支持了多集群网关,提高了系统的高可用性和容灾能力。这些改进旨在为用户提供更强大、更安全的云原生网关解决方案。
582 19
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
基于GA遗传优化的WSN网络最优节点部署算法matlab仿真
本项目基于遗传算法(GA)优化无线传感器网络(WSN)的节点部署,旨在通过最少的节点数量实现最大覆盖。使用MATLAB2022A进行仿真,展示了不同初始节点数量(15、25、40)下的优化结果。核心程序实现了最佳解获取、节点部署绘制及适应度变化曲线展示。遗传算法通过初始化、选择、交叉和变异步骤,逐步优化节点位置配置,最终达到最优覆盖率。
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
125 10
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##

热门文章

最新文章