CN116561050A - 面向rram存算一体芯片的细粒度映射方法及装置 - Google Patents

面向rram存算一体芯片的细粒度映射方法及装置 Download PDF

Info

Publication number
CN116561050A
CN116561050A CN202310371180.3A CN202310371180A CN116561050A CN 116561050 A CN116561050 A CN 116561050A CN 202310371180 A CN202310371180 A CN 202310371180A CN 116561050 A CN116561050 A CN 116561050A
Authority
CN
China
Prior art keywords
layer
convolution kernel
quantization
precision
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310371180.3A
Other languages
English (en)
Inventor
张清天
李新睿
高滨
吴华强
唐建石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN202310371180.3A priority Critical patent/CN116561050A/zh
Publication of CN116561050A publication Critical patent/CN116561050A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请涉及一种面向RRAM存算一体芯片的细粒度映射方法及装置,包括:获取待部署神经网络的网络结构和每一层卷积核参数;利用预设的量化算法对待部署神经网络进行分层量化,根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化;将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,通过最终忆阻器阵列进行神经网络推理。由此,解决神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性问题,降低了硬件开销,增加了系统的鲁棒性。

Description

面向RRAM存算一体芯片的细粒度映射方法及装置
技术领域
本申请涉及忆阻器存算一体技术领域,特别涉及一种面向RRAM存算一体芯片的细粒度映射方法及装置。
背景技术
近年来基于RRAM(Resistive Random Access Memory,阻变存储器)的存算一体芯片在神经网络加速方面存在巨大潜力,神经网络的权重可以直接被映射到基于阻变存储器的交叉阵列上进行原位计算,有效地避免冯诺依曼架构中数据搬运的开销,并且获得较高的准确率。将神经网络的权重映射到基于忆阻器的交叉阵列上前,通常需要对权重进行量化操作,并将每一层的量化好的权重部署到忆阻器阵列上。通常一个忆阻器器件可以表征一个2bit或4bit的数,以2bit忆阻器器件为例,若需要表征8bit的数,则要用4个忆阻器器件来表示。此时将一个8bit量化的卷积核映射到忆阻器阵列上时,需要4列。一层卷积若有32个卷积核,则需要至少占用32×4列(忆阻器阵列行数足够的情况下),神经网络部署到忆阻器阵列时,量化精度越高其最终推理的准确率越高,但同时也会占据更大的阵列规模。
目前,面向基于RRAM的存算一体芯片的算法,大都采用分层量化的策略。网络的某些层用高量化精度,而某些层用低量化精度,在保证准确率的同时降低硬件开销。但对于某一层的量化其量化精度是一致的,即该层所有卷积核所占用的列数相同,这对于功耗的节省是有限的,且不够灵活的,并且由于忆阻器存在电导漂移现象,用来表征权重高bit位的忆阻器若发生电导漂移,会产生相对更大的神经网络准确率损失。
在相关技术中的面向忆阻器阵列的映射方法中,大多采用对神经网络整体量化,或者是分层量化,对于网络的不同层采用了不同的量化精度,但对于同一层的卷积核采用的量化精度相同。由于神经网络的某些层对最终准确率的影响较大,而某些层对神经网络的最终准确率影响较小,因此采用分层量化是可行的。
然而,同一层中的卷积核对最终准确率的影响也是不同的,如果依然采用相同的量化精度,某些对准确率影响较小的卷积核将被量化为高精度,并占据更大的阵列规模,从而带来更多的硬件开销,并且当神经网络模型较大时,会占据较大规模的忆阻器阵列,会带来较大的硬件开销。与此同时在神经网络推理过程中,不同层、同一层不同的kernel对最终准确率的影响也是不同的,因此即便是分层量化,但某些kernel仍然可能不需要很高的量化精度,这无疑是不灵活、且对硬件不友好的,亟待解决。
发明内容
本申请提供一种面向RRAM存算一体芯片的细粒度映射方法及装置,解决神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性问题,在保证神经网络准确率的同时,尽可能地减小阵列规模,降低了硬件开销,并且增加了系统的鲁棒性。
本申请第一方面实施例提供一种面向RRAM存算一体芯片的细粒度映射方法,包括以下步骤:获取待部署神经网络的网络结构和每一层卷积核参数;基于所述网络结构,利用预设的量化算法对所述待部署神经网络进行分层量化,并根据每一层量化精度和所述每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化;将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的所述预设的忆阻器阵列上每一列进行标记,并根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,以通过所述最终忆阻器阵列进行神经网络推理。
可选地,所述基于所述网络结构,利用预设的量化算法对所述待部署神经网络进行分层量化,包括:利用所述预设的量化算法确定每一层的量化精度;根据所述每一层的量化精度对所述每一层的多个卷积核进行量化。
可选地,所述根据每一层量化精度和所述每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,包括:根据所述每一层量化精度和所述每一层卷积核参数确定每一层的每个卷积核的量化精度;基于所述每一层的每个卷积核的量化精度,逐层对所述每一层的每个卷积核的量化精度进行量化,并将每一层卷积核量化精度大于所述每一层量化精度的卷积核作为第一精度卷积核,且将所述每一层卷积核量化精度小于或等于所述每一层量化精度的卷积核作为第二精度卷积核。
可选地,所述将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,包括:将所述量化后的所有卷积核按照先行再列再通道的顺序展为一列部署到所述预设的忆阻器阵列。
可选地,所述将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,还包括:获取当前量化后的卷积核的量化精度,并根据所述当前量化后的卷积核的量化精度判断所述当前量化后的卷积核是否满足预设权重拆分条件;若所述当前量化后的卷积核满足所述预设权重拆分条件,则根据所述当前量化后的卷积核的量化精度和卷积核类型进行映射,其中,所述卷积核类型包括所述第一精度卷积核和所述第二精度卷积核。
可选地,在获取所述待部署神经网络的网络结构和每一层卷积核参数之前,还包括:对所述待部署神经网络进行全精度训练。
本申请第二方面实施例提供一种面向RRAM存算一体芯片的细粒度映射装置,包括:获取模块,用于获取待部署神经网络的网络结构和每一层卷积核参数;量化模块,用于基于所述网络结构,利用预设的量化算法对所述待部署神经网络进行分层量化,并根据每一层量化精度和所述每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化;以推理模块,用于将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的所述预设的忆阻器阵列上每一列进行标记,并根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,以通过所述最终忆阻器阵列进行神经网络推理。
可选地,所述量化模块,还用于:利用所述预设的量化算法确定每一层的量化精度;根据所述每一层的量化精度对所述每一层的多个卷积核进行量化。
可选地,所述量化模块,还用于:根据所述每一层量化精度和所述每一层卷积核参数确定每一层的每个卷积核的量化精度;基于所述每一层的每个卷积核的量化精度,逐层对所述每一层的每个卷积核的量化精度进行量化,并将每一层卷积核量化精度大于所述每一层量化精度的卷积核作为第一精度卷积核,且将所述每一层卷积核量化精度小于或等于所述每一层量化精度的卷积核作为第二精度卷积核。
可选地,所述推理模块,还用于:将所述量化后的所有卷积核按照先行再列再通道的顺序展为一列部署到所述预设的忆阻器阵列。
可选地,所述推理模块,还用于:获取当前量化后的卷积核的量化精度,并根据所述当前量化后的卷积核的量化精度判断所述当前量化后的卷积核是否满足预设权重拆分条件;若所述当前量化后的卷积核满足所述预设权重拆分条件,则根据所述当前量化后的卷积核的量化精度和卷积核类型进行映射,其中,所述卷积核类型包括所述第一精度卷积核和所述第二精度卷积核。
可选地,在获取所述待部署神经网络的网络结构和每一层卷积核参数之前,所述获取模块,还用于:对所述待部署神经网络进行全精度训练。
本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的面向RRAM存算一体芯片的细粒度映射方法。
本申请第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的面向RRAM存算一体芯片的细粒度映射方法。
本申请获取待部署神经网络的网络结构和每一层卷积核参数,利用预设的量化算法对待部署神经网络进行分层量化,根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,通过最终忆阻器阵列进行神经网络推理。由此,解决了神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性问题,在保证神经网络准确率的同时,尽可能地减小阵列规模,降低了硬件开销,并且增加了系统的鲁棒性。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请实施例提供的一种面向RRAM存算一体芯片的细粒度映射方法的流程图;
图2为根据本申请一个实施例的一种面向RRAM存算一体芯片的细粒度映射方法的架构示意图;
图3为根据本申请一个实施例的一种面向RRAM存算一体芯片的细粒度映射方法的流程图;
图4为根据本申请实施例的面向RRAM存算一体芯片的细粒度映射装置的方框示意图;
图5为根据本申请实施例的电子设备结构的示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的面向RRAM存算一体芯片的细粒度映射方法及装置。针对上述背景技术中心提到的神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性的问题,本申请提供了一种面向RRAM存算一体芯片的细粒度映射方法,在该方法中,获取待部署神经网络的网络结构和每一层卷积核参数,利用预设的量化算法对待部署神经网络进行分层量化,根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,通过最终忆阻器阵列进行神经网络推理。由此,解决了神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性问题,在保证神经网络准确率的同时,尽可能地减小阵列规模,降低了硬件开销,并且增加了系统的鲁棒性。
具体而言,图1为本申请实施例所提供的一种面向RRAM存算一体芯片的细粒度映射方法的流程示意图。
如图1所示,该面向RRAM存算一体芯片的细粒度映射方法包括以下步骤:
在步骤S101中,获取待部署神经网络的网络结构和每一层卷积核参数。
其中,待部署神经网络的网络结构指部署到存算一体芯片上的神经网络,每一层卷积核参数包括每一层的每一个卷积核的浮点值的最大值和最小值。
可选地,在一些实施例中,在获取待部署神经网络的网络结构和每一层卷积核参数之前,还包括:对待部署神经网络进行全精度训练。
可以理解的是,本申请实施例对待部署到存算一体芯片上的神经网络进行全精度的训练,从而得到整体的网络结构和每一层卷积核参数,包括统计到每一层的每一个kernel(卷积核)的浮点值的最大值和最小值,方便对待部署神经网络的网络结构的量化操作。
在步骤S102中,基于网络结构,利用预设的量化算法对待部署神经网络进行分层量化,并根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化。
可选地,在一些实施例中,基于网络结构,利用预设的量化算法对待部署神经网络进行分层量化,包括:利用预设的量化算法确定每一层的量化精度;根据每一层的量化精度对每一层的多个卷积核进行量化。
具体地,本申请实施例基于待部署神经网络的网络结构,先对网络结构采用预设的量化算法进行分层量化,即对每一层的权重采用同一量化精度,不同层的权重采用不同的量化精度,以保证一些对最终准确率影响较大的层可以有相对较高的量化精度。
进一步地,在一些实施例中,根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,包括:根据每一层量化精度和每一层卷积核参数确定每一层的每个卷积核的量化精度;基于每一层的每个卷积核的量化精度,逐层对每一层的每个卷积核的量化精度进行量化,并将每一层卷积核量化精度大于每一层量化精度的卷积核作为第一精度卷积核,且将每一层卷积核量化精度小于或等于每一层量化精度的卷积核作为第二精度卷积核。
应当理解的是,本申请实施例在确定神经网络的每一层的每个卷积核的量化精度之后,基于每一层的每个卷积核的量化精度,逐层对每一层的多个卷积核进行量化精度的调整,使得每一层中多个卷积核的量化精度不同,同时,将每一层卷积核量化精度超过该层量化精度的卷积核视作第一精度卷积核(即高精度卷积核),将每一层卷积核量化精度小于或等于该层量化精度的卷积核作为第二精度卷积核(即低精度卷积核)。
在步骤S103中,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,并根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,以通过最终忆阻器阵列进行神经网络推理。
可选地,在一些实施例中,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,包括:将量化后的所有卷积核按照先行再列再通道的顺序展为一列部署到预设的忆阻器阵列。
具体地,本申请实施例将量化好的权重按照预设部署策略部署到预设的忆阻器阵列上,预设部署策略的顺序是先行再列再通道的顺序展为一列部署到预设的忆阻器阵列,例如,一个64×3×3的所有卷积核,先按第一行第一个,第一行第二个……一直到第三行第三个的顺序展开第一个通道,将9个权重排为一列,再以相同的方式展开第二个通道,将展开的9个权重排在前面9个权重之后,仍保持一列,最终展开所有的权重,全部排到一列部署到预设的忆阻器阵列。
进一步地,在一些实施例中,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,还包括:获取当前量化后的卷积核的量化精度,并根据当前量化后的卷积核的量化精度判断当前量化后的卷积核是否满足预设权重拆分条件;若当前量化后的卷积核满足预设权重拆分条件,则根据当前量化后的卷积核的量化精度和卷积核类型进行映射,其中,卷积核类型包括第一精度卷积核和第二精度卷积核。
具体地,本申请实施例获取当前量化后的卷积核的量化精度,并判断当前量化后的卷积核是否满足预设权重拆分条件。例如,当前kernel是按4bit进行量化,而一个RRAM器件仅能映射一个2bit的数,则判定当前量化后的卷积核满足预设权重拆分条件,该kernel中的每一个权重将会拆分为2列,第1列是kernel的高2bit的数,第2列是kernel的低2bit的数。若该卷积核是高精度卷积核(即第一精度卷积核),则需要复制高位,将第1列映射到阵列的第1列和第2列,即阵列第1、2列具有相同的权重,此目的是为了增加高位的鲁棒性。若该卷积核是低精度卷积核(即第二精度卷积核),则不需要复制高位,再将第2列映射到阵列的第3列,然后进行同一层的下一个kernel的映射,依然先判断量化后的卷积核的量化精度,依次类推将同一层所有kernel均映射到同一预设的忆阻器阵列。
进一步,在神经网络的一层映射完成后,再进行下一层的映射,依然按照上述的方法,将下一层网络中的不同的kernel部署到下一个预设的忆阻器阵列上,最终完成整个神经网络的部署。
进一步,对部署后的预设的忆阻器阵列上每一列进行标记,对最高位的两列的输出结果进行相加求均值操作,对低位列的输出结果进行移位并和高位相加。例如,4bit精度量化的kernel被拆分为高2bit和低2bit,则标记低2bit的列,并在该列输出结果后,对其进行移位操作后,再和高2bit的输出结果的平均值相加。
最后部署好全部的神经网络后,即可以进行神经网络的推理,完成最终的任务。
为进一步理解本申请实施例的面向RRAM存算一体芯片的细粒度映射方法,下面结合具体实施例进行详细阐述,如图2所示。面向RRAM存算一体芯片的细粒度映射方法具体包括权重量化拆分阶段和权重映射阶段。其中,权重量化拆分阶段主要将kernel按先行再列再通道的方式展开为一列,然后将量化后的kernel按其量化精度拆分,第一个kernel(即kernel1)以6bit精度量化,则拆分为高2bit、中2bit、低2bit,第二个kernel(即kernel2)以4bit精度量化,则拆分为高2bit、低2bit,依次将所有kernel全部拆分好之后,即完成了权重量化拆分。权重映射阶段是将拆分好的kernel映射到忆阻器阵列上,若该层量化精度为4bit,以6bit精度量化的卷积核是高于该层的量化精度,则将该6bit精度量化的卷积核的第一个kernel的高2bit复制,并映射到BL1和BL2,第一个kernel的中2bit映射BL3,依次类推,完成所有kernel的映射。在推理阶段只需对第一个kernel高2bit的输出结果求平均,第一个kernel的中2bit的列的输出结果右移2bit,对低2bit的列的输出结果右移4位,再相加。
为使得本领域技术人员进一步理解本申请实施例的面向RRAM存算一体芯片的细粒度映射方法,下面结合具体实施例进行详细阐述,如图3所示。
步骤S301中,首先对神经网络进行全精度的训练,得到整体模型网络结构和每一层卷积核参数。
步骤S302中,根据预设的量化算法设计进行分层量化,并在此基础上对每一层的kernel进行不同精度的量化。
步骤S303中,对量化后的kernel按高低bit进行拆分,每一个kernel按先行再列再通道的顺序展为一列部署到忆阻器阵列上,且将量化精度高于该层量化精度的卷积核的最高位bit映射两次,以增加神经网络在硬件推理的鲁棒性。
步骤S304中,对表示低bit的列进行移位标记,在硬件推理阶段对表示低bit的列的输出结果进行移位操作,再与高bit列的结果相加。
步骤S305中,根据部署好的权重,进行神经网络的推理,完成指定任务。
综上,本申请对神经网络中每一层的不同卷积核采用理论上更低的量化精度,且采用特定的映射策略,由于神经网络不同卷积核对最终准确率的敏感性不同,将某些相对不重要的卷积核以低bit量化,而相对重要的卷积核以高bit量化,在保证神经网络准确率的同时,使其映射到忆阻器阵列上尽可能减少对忆阻器阵列的占用,从而减少硬件的开销。并且在卷积核映射到忆阻器阵列上时,通过对量化精度高的卷积核进行高位复制的方式增加了神经网络在硬件推理上的鲁棒性,尽管多复制一列会增加硬件实际开销,但由于卷积核以更低bit量化后所占用的列数减少,因此硬件总体的开销仍然是降低的。
因此,面向RRAM存算一体芯片的细粒度映射方法的优点在于:
(1)相同神经网络在保证准确率的情况下,对卷积核进行更低精度、更细粒度的量化,使得整个神经网络占据阵列规模更小,使硬件的开销降低。例如某一卷积层有32个卷积核,传统的量化方式为将该层量化为6bit,则该层需要占据32×3列,而更细粒度的量化后可能存在22个卷积核量化为4bit,6个卷积核为6bit,4个卷积核为8bit,那么该层则占据22×2+6×3+4×4列,相比传统的分层量化所占据的列少了18列,在保证准确率的前提下,大大缓解了硬件开销。
(2)本申请以分层量化的精度为标的,对高于该量化精度的卷积核的高位进行复制,即对4个量化为8bit的卷积核的高位进行复制,尽管多占据4列,但相比于传统的分层量化其整体的硬件开销仍有减少,且带来的鲁棒性将有所增强。
根据本申请实施例提出的面向RRAM存算一体芯片的细粒度映射方法,获取待部署神经网络的网络结构和每一层卷积核参数,利用预设的量化算法对待部署神经网络进行分层量化,根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,通过最终忆阻器阵列进行神经网络推理。由此,解决了神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性问题,通过更细粒度的量化和映射策略,使得保证神经网络准确率的同时,尽可能地减小阵列规模,从而达到降低硬件开销的目的,并且增加了系统的鲁棒性,应用范围较广,泛化力较强,且对越复杂规模越大的神经网络所节省的硬件开销越多。
其次参照附图描述根据本申请实施例提出的面向RRAM存算一体芯片的细粒度映射装置。
图4是本申请实施例的面向RRAM存算一体芯片的细粒度映射装置的方框示意图。
如图4所示,该面向RRAM存算一体芯片的细粒度映射装置10包括:获取模块100、量化模块200和推理模块300。
其中,获取模块100,用于获取待部署神经网络的网络结构和每一层卷积核参数;量化模块200,用于基于网络结构,利用预设的量化算法对待部署神经网络进行分层量化,并根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化;推理模块300,用于将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,并根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,以通过最终忆阻器阵列进行神经网络推理。
可选地,在一些实施例中,量化模块200,还用于:利用预设的量化算法确定每一层的量化精度;根据每一层的量化精度对每一层的多个卷积核进行量化。
可选地,在一些实施例中,量化模块200,还用于:根据每一层量化精度和每一层卷积核参数确定每一层的每个卷积核的量化精度;基于每一层的每个卷积核的量化精度,逐层对每一层的每个卷积核的量化精度进行量化,并将每一层卷积核量化精度大于每一层量化精度的卷积核作为第一精度卷积核,且将每一层卷积核量化精度小于或等于每一层量化精度的卷积核作为第二精度卷积核。
可选地,在一些实施例中,推理模块300,还用于:将量化后的所有卷积核按照先行再列再通道的顺序展为一列部署到预设的忆阻器阵列。
可选地,在一些实施例中,推理模块300,还用于:获取当前量化后的卷积核的量化精度,并根据当前量化后的卷积核的量化精度判断当前量化后的卷积核是否满足预设权重拆分条件;若当前量化后的卷积核满足预设权重拆分条件,则根据当前量化后的卷积核的量化精度和卷积核类型进行映射,其中,卷积核类型包括第一精度卷积核和第二精度卷积核。
可选地,在一些实施例中,在获取待部署神经网络的网络结构和每一层卷积核参数之前,获取模块100,还用于:对待部署神经网络进行全精度训练。
需要说明的是,前述对面向RRAM存算一体芯片的细粒度映射方法实施例的解释说明也适用于该实施例的面向RRAM存算一体芯片的细粒度映射装置,此处不再赘述。
根据本申请实施例提出的面向RRAM存算一体芯片的细粒度映射装置,获取待部署神经网络的网络结构和每一层卷积核参数,利用预设的量化算法对待部署神经网络进行分层量化,根据每一层量化精度和每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的预设的忆阻器阵列上每一列进行标记,根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,通过最终忆阻器阵列进行神经网络推理。由此,解决了神经网络量化部署在基于RRAM的存算一体芯片上所带来的硬件开销和鲁棒性问题,在保证神经网络准确率的同时,尽可能地减小阵列规模,降低了硬件开销,并且增加了系统的鲁棒性。
图5为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序。
处理器502执行程序时实现上述实施例中提供的面向RRAM存算一体芯片的细粒度映射方法。
进一步地,电子设备还包括:
通信接口503,用于存储器501和处理器502之间的通信。
存储器501,用于存放可在处理器502上运行的计算机程序。
存储器501可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器501、处理器502和通信接口503独立实现,则通信接口503、存储器501和处理器502可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(PeripheralComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器501、处理器502及通信接口503,集成在一块芯片上实现,则存储器501、处理器502及通信接口503可以通过内部接口完成相互间的通信。
处理器502可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的面向RRAM存算一体芯片的细粒度映射方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (14)

1.一种面向RRAM存算一体芯片的细粒度映射方法,其特征在于,包括以下步骤:
获取待部署神经网络的网络结构和每一层卷积核参数;
基于所述网络结构,利用预设的量化算法对所述待部署神经网络进行分层量化,并根据每一层量化精度和所述每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化;以及
将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的所述预设的忆阻器阵列上每一列进行标记,并根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,以通过所述最终忆阻器阵列进行神经网络推理。
2.根据权利要求1所述的方法,其特征在于,所述基于所述网络结构,利用预设的量化算法对所述待部署神经网络进行分层量化,包括:
利用所述预设的量化算法确定每一层的量化精度;
根据所述每一层的量化精度对所述每一层的多个卷积核进行量化。
3.根据权利要求2所述的方法,其特征在于,所述根据每一层量化精度和所述每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化,包括:
根据所述每一层量化精度和所述每一层卷积核参数确定每一层的每个卷积核的量化精度;
基于所述每一层的每个卷积核的量化精度,逐层对所述每一层的每个卷积核的量化精度进行量化,并将每一层卷积核量化精度大于所述每一层量化精度的卷积核作为第一精度卷积核,且将所述每一层卷积核量化精度小于或等于所述每一层量化精度的卷积核作为第二精度卷积核。
4.根据权利要求1所述的方法,其特征在于,所述将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,包括:
将所述量化后的所有卷积核按照先行再列再通道的顺序展为一列部署到所述预设的忆阻器阵列。
5.根据权利要求3所述的方法,其特征在于,所述将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,还包括:
获取当前量化后的卷积核的量化精度,并根据所述当前量化后的卷积核的量化精度判断所述当前量化后的卷积核是否满足预设权重拆分条件;
若所述当前量化后的卷积核满足所述预设权重拆分条件,则根据所述当前量化后的卷积核的量化精度和卷积核类型进行映射,其中,所述卷积核类型包括所述第一精度卷积核和所述第二精度卷积核。
6.根据权利要求1所述的方法,其特征在于,在获取所述待部署神经网络的网络结构和每一层卷积核参数之前,还包括:
对所述待部署神经网络进行全精度训练。
7.一种面向RRAM存算一体芯片的细粒度映射装置,其特征在于,包括:
获取模块,用于获取待部署神经网络的网络结构和每一层卷积核参数;
量化模块,用于基于所述网络结构,利用预设的量化算法对所述待部署神经网络进行分层量化,并根据每一层量化精度和所述每一层卷积核参数,对每一层的多个卷积核进行不同精度的量化;以及
推理模块,用于将量化后的所有卷积核按照预设部署策略部署至预设的忆阻器阵列,并对部署后的所述预设的忆阻器阵列上每一列进行标记,并根据标记结果进行相加求均值操作或移位操作后得到最终忆阻器阵列,以通过所述最终忆阻器阵列进行神经网络推理。
8.根据权利要求7所述的装置,其特征在于,所述量化模块,还用于:
利用所述预设的量化算法确定每一层的量化精度;
根据所述每一层的量化精度对所述每一层的多个卷积核进行量化。
9.根据权利要求8所述的装置,其特征在于,所述量化模块,还用于:
根据所述每一层量化精度和所述每一层卷积核参数确定每一层的每个卷积核的量化精度;
基于所述每一层的每个卷积核的量化精度,逐层对所述每一层的每个卷积核的量化精度进行量化,并将每一层卷积核量化精度大于所述每一层量化精度的卷积核作为第一精度卷积核,且将所述每一层卷积核量化精度小于或等于所述每一层量化精度的卷积核作为第二精度卷积核。
10.根据权利要求7所述的装置,其特征在于,所述推理模块,还用于:
将所述量化后的所有卷积核按照先行再列再通道的顺序展为一列部署到所述预设的忆阻器阵列。
11.根据权利要求9所述的装置,其特征在于,所述推理模块,还用于:获取当前量化后的卷积核的量化精度,并根据所述当前量化后的卷积核的量化精度判断所述当前量化后的卷积核是否满足预设权重拆分条件;
若所述当前量化后的卷积核满足所述预设权重拆分条件,则根据所述当前量化后的卷积核的量化精度和卷积核类型进行映射,其中,所述卷积核类型包括所述第一精度卷积核和所述第二精度卷积核。
12.根据权利要求7所述的装置,其特征在于,在获取所述待部署神经网络的网络结构和每一层卷积核参数之前,所述获取模块,还用于:
对所述待部署神经网络进行全精度训练。
13.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-6任一项所述的面向RRAM存算一体芯片的细粒度映射方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-6任一项所述的面向RRAM存算一体芯片的细粒度映射方法。
CN202310371180.3A 2023-04-07 2023-04-07 面向rram存算一体芯片的细粒度映射方法及装置 Pending CN116561050A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310371180.3A CN116561050A (zh) 2023-04-07 2023-04-07 面向rram存算一体芯片的细粒度映射方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310371180.3A CN116561050A (zh) 2023-04-07 2023-04-07 面向rram存算一体芯片的细粒度映射方法及装置

Publications (1)

Publication Number Publication Date
CN116561050A true CN116561050A (zh) 2023-08-08

Family

ID=87487037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310371180.3A Pending CN116561050A (zh) 2023-04-07 2023-04-07 面向rram存算一体芯片的细粒度映射方法及装置

Country Status (1)

Country Link
CN (1) CN116561050A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019223594A1 (zh) * 2018-05-21 2019-11-28 Oppo广东移动通信有限公司 神经网络模型处理方法和装置、图像处理方法、移动终端
CN111563589A (zh) * 2020-04-14 2020-08-21 中科物栖(北京)科技有限责任公司 一种神经网络模型的量化方法及装置
CN112215331A (zh) * 2019-07-10 2021-01-12 华为技术有限公司 对神经网络系统中的数据处理方法和神经网络系统
US20210303972A1 (en) * 2020-03-31 2021-09-30 Samsung Electronics Co., Ltd. Method and apparatus with neural network quantization
CN113537474A (zh) * 2021-07-29 2021-10-22 浙江大学 多精度量化元神经网络训练及精度选取方法
CN114677548A (zh) * 2022-05-26 2022-06-28 之江实验室 基于阻变存储器的神经网络图像分类系统及方法
CN115204380A (zh) * 2022-09-15 2022-10-18 之江实验室 存算一体卷积神经网络的数据存储及阵列映射方法与装置
CN115311506A (zh) * 2022-10-11 2022-11-08 之江实验室 基于阻变存储器的量化因子优化的图像分类方法及装置
CN115310595A (zh) * 2022-08-11 2022-11-08 中国人民解放军国防科技大学 忆阻器的神经网络混合精度量化方法和系统
CN115879530A (zh) * 2023-03-02 2023-03-31 湖北大学 一种面向rram存内计算系统阵列结构优化的方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019223594A1 (zh) * 2018-05-21 2019-11-28 Oppo广东移动通信有限公司 神经网络模型处理方法和装置、图像处理方法、移动终端
CN112215331A (zh) * 2019-07-10 2021-01-12 华为技术有限公司 对神经网络系统中的数据处理方法和神经网络系统
US20210303972A1 (en) * 2020-03-31 2021-09-30 Samsung Electronics Co., Ltd. Method and apparatus with neural network quantization
CN111563589A (zh) * 2020-04-14 2020-08-21 中科物栖(北京)科技有限责任公司 一种神经网络模型的量化方法及装置
CN113537474A (zh) * 2021-07-29 2021-10-22 浙江大学 多精度量化元神经网络训练及精度选取方法
CN114677548A (zh) * 2022-05-26 2022-06-28 之江实验室 基于阻变存储器的神经网络图像分类系统及方法
CN115310595A (zh) * 2022-08-11 2022-11-08 中国人民解放军国防科技大学 忆阻器的神经网络混合精度量化方法和系统
CN115204380A (zh) * 2022-09-15 2022-10-18 之江实验室 存算一体卷积神经网络的数据存储及阵列映射方法与装置
CN115311506A (zh) * 2022-10-11 2022-11-08 之江实验室 基于阻变存储器的量化因子优化的图像分类方法及装置
CN115879530A (zh) * 2023-03-02 2023-03-31 湖北大学 一种面向rram存内计算系统阵列结构优化的方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FOROOZAN KARIMZADEH: "BitS-Net: Bit-Sparse Deep Neural Network for Energy-Efficient RRAM-Based Compute-In-Memory", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS I: REGULAR PAPERS》, vol. 69, no. 5, 1 February 2022 (2022-02-01), pages 1952, XP011906678, DOI: 10.1109/TCSI.2022.3145687 *
YI CAI: "Low Bit-Width Convolutional Neural Network on RRAM", 《 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》, vol. 39, no. 7, 20 May 2019 (2019-05-20), pages 1414, XP011793485, DOI: 10.1109/TCAD.2019.2917852 *
YIWEN GENG: "An On-chip Layer-wise Training Method for RRAM based Computing-in-memory Chips", 《2021 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION》, 16 July 2021 (2021-07-16), pages 1 - 4 *
耿一文;张清天;席悦;高滨;: "容忍忆阻器非理想特性的深层神经网络算法研究", 微纳电子与智能制造, no. 04, 15 December 2019 (2019-12-15), pages 1 - 5 *
陈佳;潘文谦;秦一凡;王峰;李灏阳;李祎;缪向水;: "基于忆阻器的神经网络应用研究", 微纳电子与智能制造, no. 04, 15 December 2019 (2019-12-15), pages 1 - 8 *

Similar Documents

Publication Publication Date Title
US11501829B2 (en) Resistive random-access memory for embedded computation
CN111563589B (zh) 一种神经网络模型的量化方法及装置
CN107256715B (zh) 存储器及感测参数确定方法
US20120314496A1 (en) Nonvolatile memory devices having improved read reliability
US11043275B2 (en) Memory system, read method, program, and memory controller
US11133071B2 (en) Charge loss failure mitigation
US11693582B2 (en) Automatic read calibration operations
US11294763B2 (en) Determining significance levels of error values in processes that include multiple layers
DE102020107491A1 (de) Speichersystem und verfahren zu dessen betrieb
US20220383085A1 (en) Method and apparatus for defect-tolerant memory based artificial neural network
WO2023279002A1 (en) Computation in memory (cim) architecture and dataflow supporting a depth- wise convolutional neural network (cnn)
CN116561050A (zh) 面向rram存算一体芯片的细粒度映射方法及装置
CN111344719A (zh) 基于深度神经网络的数据处理方法、装置及移动设备
US20200081687A1 (en) Multiply-accumulate operation device, multiply-accumulate operation methods, and systems
CN115099396B (zh) 基于忆阻器阵列的全权重映射方法及装置
KR20240025540A (ko) 깊이별 콘볼루션을 위한 메모리 아키텍처에서의 컴퓨테이션
CN114333973A (zh) 一种阈值电压分布的获取方法、系统及相关组件
CN114254726A (zh) 低比特神经网络模型的获取方法、装置、设备及介质
CN115469799B (zh) 数据存储方法、存储装置及计算机可读存储装置
US20230237307A1 (en) Systems and methods for a hardware neural network engine
US11978526B2 (en) Data processing circuit and fault mitigating method
US11978490B2 (en) Back pattern counter measure for solid state drives
EP3483888B1 (en) Semiconductor memory device and method of defining data in semiconductor memory device
EP3742348A1 (en) Method to set the type of writing to either internal or external memory for layers of a computer-implemented neural network
CN117973508A (zh) 基于神经网络的忆阻器交叉阵列建模方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination