CN114723024A - 用于存算一体芯片的基于线性规划的神经网络映射方法 - Google Patents

用于存算一体芯片的基于线性规划的神经网络映射方法 Download PDF

Info

Publication number
CN114723024A
CN114723024A CN202210227169.5A CN202210227169A CN114723024A CN 114723024 A CN114723024 A CN 114723024A CN 202210227169 A CN202210227169 A CN 202210227169A CN 114723024 A CN114723024 A CN 114723024A
Authority
CN
China
Prior art keywords
array
weight
neural network
layer
row
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
CN202210227169.5A
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.)
Beijing Witinmem Technology Co ltd
Original Assignee
Beijing Witinmem Technology Co ltd
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 Beijing Witinmem Technology Co ltd filed Critical Beijing Witinmem Technology Co ltd
Priority to CN202210227169.5A priority Critical patent/CN114723024A/zh
Publication of CN114723024A publication Critical patent/CN114723024A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • 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)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Neurology (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Semiconductor Memories (AREA)

Abstract

本发明实施例提供了一种用于存算一体芯片的基于线性规划的神经网络映射方法,该方法包括:获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;将该待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,该映射方案用于将该待映射神经网络各层的权重阵列以及对应的偏置阵列映射至该目标存算一体芯片中。其中,通过将基于直观经验的权重和偏置数据映射过程转换为线性规划的数学模型的求解问题,提高运算精度。

Description

用于存算一体芯片的基于线性规划的神经网络映射方法
技术领域
本发明涉及半导体技术领域,尤其涉及一种用于存算一体芯片的基于线性规划的神经网络映射方法、装置、设备以及存储介质。
背景技术
近年来,随着算法、算力和数据量规模三个维度的不断发展,机器学习技术在解决诸多问题方面不断展现出强大的优势。其中,人工神经网络以其在图像识别、目标检测、语义分割等领域的突出表现得到人们的广泛关注。但是,随着神经网络规模的扩大,传统以CPU+GPU架构处理神经网络算法的模式逐渐遇到了速度和功耗的瓶颈,究其根源是因为冯·诺伊曼架构下存算分离使得以数据为中心的神经网络算法给计算系统带来过大的数据传输开销,降低速度的同时增大了功耗。
存内计算技术解决了存算分离导致的问题,通过将神经网络的权重存储到存算一体神经网络处理(In-flash NPU)芯片中的闪存单元阵列的各闪存单元的电导上,再将以电压表示的数据源送入闪存单元阵列,由欧姆定律可知,闪存单元阵列输出的电流为电压和电导的乘积,从而完成了数据源和权重的矩阵乘加运算,本质上是在进行模拟计算,而非传统上的数字计算。
在存算一体芯片从设计到生产的全流程中,工具链的设计是重要的一个环节。在面向存算一体芯片的工具链设计中,将特定神经网络的权重参数根据需求自动映射到芯片的闪存单元阵列上是一项关键技术;目前,在将训练后的神经网络映射到存算一体芯片的闪存单元阵列上时,按照神经网络各层的顺序,依次将权重和偏置映射到存算一体芯片阵列上;但是,该方法一方面不能有效利用闪存单元,增加了闪存单元阵列规模;另一方面,由于偏置直接映射到存算一体芯片阵列上,偏置的数值越大对应闪存单元的电导越大,在同样电压下,闪存单元的电流越大,进而导致噪声越大,影响运算精度。
发明内容
针对现有技术中的问题,本发明提供一种用于存算一体芯片的基于线性规划的神经网络映射方法、装置、设备以及存储介质,能够至少部分地解决现有技术中存在的问题。
为了实现上述目的,本发明采用如下技术方案:
第一方面,提供一种用于存算一体芯片的基于线性规划的神经网络映射方法,包括:
获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;
将该待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,该映射方案用于将该待映射神经网络各层的权重阵列以及对应的偏置阵列映射至该目标存算一体芯片中。
进一步地,该各层的权重阵列以及对应的偏置阵列数据包括:各层权重阵列的行数和列数、对应的偏置最小行数;
该目标一体芯片的硬件参数包括:用于写入权重阵列的闪存单元阵列的行最大值和列最大值、用于写入偏置的闪存单元阵列的行最大值、最大运算块的行数和最小运算块的列数。
进一步地,该线性规划求解模型的约束条件包括:
各层权重的行起始地址位于0和用于写入权重阵列的闪存单元阵列的行最大值之间;
各层权重的列起始地址位于0和用于写入权重阵列的闪存单元阵列的列最大值之间;
各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;
各层偏置的列起始地址与对应层的权重的列起始地址相等;
各层权重的排布,两两之间互相不重叠;
各层偏置的排布,两两之间互相不重叠。
进一步地,该输入参数还包括:预留空间的前M行、后N行、前J列以及后K列;
该线性规划求解模型的约束条件包括:
各层权重的行起始地址位于M和用于写入权重阵列的闪存单元阵列的行最大值减去对应层权重阵列的行数再减去N的差值之间;
各层权重的列起始地址位于J和用于写入权重阵列的闪存单元阵列的列最大值减去对应层权重阵列的行数再减去K的差值之间;
各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;
各层偏置的列起始地址与对应层的权重的列起始地址相等;
各层权重的排布,两两之间互相不重叠;
各层偏置的排布,两两之间互相不重叠。
进一步地,该线性规划求解模型的约束条件还包括:
根据用于写入权重阵列的闪存单元阵列的行最大值以及最大运算块的行数将用于写入权重阵列的闪存单元阵列均分成多层,各层权重的行起始地址和行结束地址不能跨层。
进一步地,该线性规划求解模型的约束条件还包括:
各层偏置的排布行数为偶数。
进一步地,该线性规划求解模型的目标函数包括:
各层偏置的排布行数位于各层偏置最小行数与该用于写入偏置的闪存单元阵列的行最大值之间,且所有层的偏置的排布行数总和最大;并且,
将用于写入权重阵列的闪存单元阵列按纵向均分成Y个区,各区的宽度均为X列,排布后各层权重所跨越的分区之和最小;其中,X为最小运算单元的列数,Y为闪存单元阵列的列数除X,即:X*Y=闪存单元阵列的列宽度。
第二方面,提供一种用于存算一体芯片的基于线性规划的神经网络映射装置,包括:
数据获取模块,获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;
线性求解模块,将该待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,该映射方案用于将该待映射神经网络各层的权重阵列以及对应的偏置阵列映射至该目标存算一体芯片中。
第三方面,提供一种存算一体芯片,包括:用于执行神经网络运算的闪存单元阵列,该闪存单元阵列中映射有该神经网络的权重阵列和偏置阵列;
该权重阵列以及对应的偏置阵列的排布方式根据上述的基于线性规划的神经网络映射方法产生。
第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述的基于线性规划的神经网络映射方法的步骤。
第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的基于线性规划的神经网络映射方法的步骤。
本发明实施例提供了一种用于存算一体芯片的基于线性规划的神经网络映射方法、装置、存算一体芯片、电子设备以及计算机可读存储介质,该方法包括:获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;将该待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,该映射方案用于将该待映射神经网络各层的权重阵列以及对应的偏置阵列映射至该目标存算一体芯片中。其中,通过将基于直观经验的权重和偏置数据映射过程转换为线性规划的数学模型的求解问题,提高运算精度。
另外,本发明实施例中将偏置最小行数和偏置阵列的限制作为求解器的约束,对各偏置占据的行数进行了扩展,减少单个闪存单元上的存放的偏置的数值大小,降低电流噪声,进一步提高了运算精度。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本发明实施例中的用于存算一体芯片的基于线性规划的神经网络映射方法的流程图;
图2例举了本发明实施例中的闪存单元阵列划分方式;
图3示出了本发明实施例中的闪存单元阵列的参数详情;
图4例举了本发明实施例中的权重矩阵以及对应的Bias的排布结果;
图5是本发明实施例中的用于存算一体芯片的基于线性规划的神经网络映射装置的结构框图;
图6为本发明实施例电子设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了本发明实施例中的用于存算一体芯片的基于线性规划的神经网络映射方法的流程图;如图1所示,该用于存算一体芯片的基于线性规划的神经网络映射方法可以包括以下内容:
步骤S100:获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;
其中,所述各层的权重阵列以及对应的偏置阵列数据包括:各层权重阵列的行数和列数、对应的偏置最小行数;
所述目标一体芯片的硬件参数包括:用于写入权重阵列的闪存单元阵列的行最大值和列最大值、用于写入偏置的闪存单元阵列的行最大值、最大运算块的行数和最小运算块的列数。
值得说明的是,目标一体芯片的闪存单元阵列在硬件设计阶段已经设计出用于写入权重阵列的闪存单元阵列以及用于写入偏置的闪存单元阵列;针对已经训练好的特定神经网络,各层的权重矩阵参数以及Bias参数、Bias大小与在芯片上占据的最少行数、目标存算一体芯片的硬件参数为已知。
步骤S200:将所述待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,所述映射方案用于将所述待映射神经网络各层的权重阵列以及对应的偏置阵列映射至所述目标存算一体芯片中。
其中,求解器是预建立的线性规划模型,实际应用中,可以直接在Python等中调用开源线性规划求解器,举例来说,可以采用谷歌的开源线性规划求解器。
本发明实施例,通过把基于经验的权重和Bias映射问题,经过恰当的数学建模,转换为线性规划的求解问题,为网络权重和Bias的映射,以及Bias扩展提供严格的数学基础,寻找最佳排布结果,可以获得理论上的最优解,方案便于扩展,方便增加和减少映射中的限制,同等兼顾了权重和Bias映射以及Bias扩展,降低电流噪声,提高了运算精度。
值得说明的是,由于存算一体芯片计算的特殊性,权重矩阵与其对应的Bias需要列对齐,因此,Bias的排布位置与对应的权重矩阵的排布位置列对齐,行方向的排布方式依据Bias最小行数进行排布。
通过上述步骤S100、步骤S200产生排布方案,后续根据排布方案将神经网络各层参数通过编译工具写入存算一体芯片的闪存单元阵列中,在应用推理阶段,根据排布方案,结合控制需求,在执行某一层神经网络运算时,通过行列译码器,选通该层神经网络运算对应权重矩阵和Bias所在行列,将该层神经网络的输入信号输入权重矩阵对应的行,与权重矩阵进行矩阵乘加运算,而后与对应的Bias叠加,在对应列获得该层神经网络的计算结果。
图2例举了本发明实施例中的闪存单元阵列划分方式,如图2中的(a)所示,芯片的实际物理架构由主阵列(用于写入权重阵列)和Bias(偏置)阵列组成。在实际应用过程中,由于模拟计算过程中电流太大会对计算结果造成显著影响,因此,存算一体芯片在设计时会给出一个最大运算块,即单次运算的最大规模,如果运算规模超过最大运算块,可需要分多次进行运算,如图2中的(b)所示,主阵列可以被分成2×4块,这里的划分是根据芯片的实际性能进行的,且可以划分的每一块大小相同,也可以划分的每一块大小不同,本发明实施例对此不做限制。另外,为了保障工作效率,存算一体芯片在设计时会给出一个最小运算块,即单次运算的最小规模,防止在应用阶段,单次运算量过小导致的效率降低。
在一个可选的实施例中,该用于存算一体芯片的基于线性规划的神经网络映射方法还可以包括:根据映射方案将所述待映射神经网络各层的权重矩阵和Bias写入所述存算一体芯片上。
具体地,上述的映射方法是在工具链上执行的,可以理解为运行在终端设备或服务器或芯片烧录装置上的程序,通过上述映射方法产生排布方案,而后还需要根据该排布方案将权重矩阵和Bias写入所述存算一体芯片上。而后存算一体芯片就可以安装到对应的设备电路板上,进行推理应用,实现神经网络运算,比如可以安装在玩具上进行语音识别,此时,芯片中写入的神经网络参数是语音识别神经网络对应的参数;当然,该存算一体芯片也可以是安装在人脸识别设备上,该芯片中写入的神经网络参数是图像识别神经网络对应的参数,当然,上述只是例举了几种芯片应用场景,本发明实施例对芯片的应用场景不做限制,可以是需要进行神经网络运算的各种设备和场景。
图3示出了本发明实施例中的闪存单元阵列的参数详情;参见图3,第i层权重阵列的行数为rows[i]、第i层权重阵列的列数为cols[i]、对应的偏置最小行数为bias[i];
目标一体芯片的硬件参数中,用于写入权重阵列的闪存单元阵列的行最大值为row_size,列最大值为col_size、用于写入偏置的闪存单元阵列的行最大值为bias_size。模型输出为:x[i],y[i],bx[i],by[i],bias[i],其中,x[i]为第i层权重阵列在用于写入权重阵列的闪存单元阵列中的行起始地址,y[i]为第i层权重阵列在用于写入权重阵列的闪存单元阵列中的列起始地址,bx[i]为第i层偏置在用于写入偏置的闪存单元阵列中的行起始地址,by[i]为第i层偏置在用于写入偏置的闪存单元阵列中的列起始地址,bias[i]为经过扩展排布后第i层偏置在用于写入偏置的闪存单元阵列中的行数;最大运算块的行数为P,举例来说,假设一存内计算芯片固设的最大运算块的规模时512*128,即单次运算最大的规模,此时,P=512;
在一个可选的实施例中,该线性规划求解模型的约束条件包括:
1、各层权重的行起始地址位于0和用于写入权重阵列的闪存单元阵列的行最大值之间;即:0≤x[i]≤rowsize-rows[i]);
2、各层权重的列起始地址位于0和用于写入权重阵列的闪存单元阵列的列最大值之间;即:0≤y[i]≤colsize-cals[i];
3、各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;即:(0≤bx[i]≤biassize-bias[i]);
4、各层偏置的列起始地址与对应层的权重的列起始地址相等;即:by[i]=y[i];
5、各层权重的排布,两两之间互相不重叠;即:x[i]≥x[j]+rows[j]or x[j]≥x[i]+rows[i]or y[i]≥y[j]+cols[j]or y[j]≥y[i]+cols[i];
6、各层偏置的排布,两两之间互相不重叠。即:bx[i]≥bx[j]+bias[j]or bx[j]≥bx[i]+bias[i];
线性规划求解模型的目标函数包括:
1、各层偏置的排布行数位于各层偏置最小行数与所述用于写入偏置的闪存单元阵列的行最大值之间,且所有层的偏置的排布行数总和最大,即:(max∑bias[i]);
2、将用于写入权重阵列的闪存单元阵列按纵向均分成Y个区,各区的宽度均为X列,排布后各层权重所跨越的分区之和最小,即min∑across[i],
Figure BDA0003536409530000081
Figure BDA0003536409530000082
其中,X为最小运算块的列数,Y=当前层权重阵列的列数除以X,即X*Y=闪存单元阵列的列宽度,across[i]表示第i层神经网络的权重矩阵映射到闪存单元阵列后跨越的分区数量;由于单次运算的最大运算规模存在限制,在排布时,希望当前层权重阵列的运算次数越少越好,若将闪存单元阵列按照最大运算块进行分区,希望当前层权重阵列跨越的分区数越少,运算所消耗的功率越低。
通过采用上述技术方案,优化了约束条件和求解目标,基于上述约束条件和求解目标进行线性求解后,能够得到神经网络模型权重矩阵和偏置矩阵的最优排布。
在一个可选的实施例中,还可以支持权重阵列和Bias阵列空间余量,预留前M行、后N行、前J列以及后K列预留空间(将第1、2条的0和最大值基于这一限制相应更改即可);
线性规划求解模型的约束条件包括:
1、各层权重的行起始地址位于M和用于写入权重阵列的闪存单元阵列的行最大值减去对应层权重阵列的行数再减去N的差值之间;即M≤x[i]≤rawsize-rows[i]-N;
2、各层权重的列起始地址位于J和用于写入权重阵列的闪存单元阵列的列最大值减去对应层权重阵列的行数再减去K的差值之间;即:J≤y[i]≤colsize-cals[i]-K;
3、各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;即:(0≤bx[i]≤biassize-bias[i])
4、各层偏置的列起始地址与对应层的权重的列起始地址相等;即:by[i]=y[i];
5、各层权重的排布,两两之间互相不重叠;即:x[i]≥x[j]+rows[j]or x[j]≥x[i]+rows[i]or y[i]≥y[j]+cols[j]or y[j]≥y[i]+cols[i];
6、各层偏置的排布,两两之间互相不重叠。即:bx[i]≥bx[j]+bias[j]or bx[j]≥bx[i]+bias[i];
线性规划求解模型的目标函数包括:
1、各层偏置的排布行数位于各层偏置最小行数与所述用于写入偏置的闪存单元阵列的行最大值之间,且所有层的偏置的排布行数总和最大,即:(max∑bias[i]);
2、将用于写入权重阵列的闪存单元阵列按纵向均分成Y个区,各区的宽度均为X列,排布后各层权重所跨越的分区之和最小,即min∑across[i],
Figure BDA0003536409530000091
Figure BDA0003536409530000092
其中,X为最小运算块的列数,Y=当前层权重阵列的列数除以X,即X*Y=闪存单元阵列的列宽度,across[i]表示第i层神经网络的权重矩阵映射到闪存单元阵列后跨越的分区数量;由于单次运算的最大运算规模存在限制,在排布时,希望当前层权重阵列的运算次数越少越好,若将闪存单元阵列按照最大运算块进行分区,希望当前层权重阵列跨越的分区数越少,运算所消耗的功率越低。
在一个可选的实施例中,线性规划求解模型的约束条件还包括:根据用于写入权重阵列的闪存单元阵列的行最大值以及最大运算块的行数将用于写入权重阵列的闪存单元阵列均分成多层,各层权重的行起始地址和行结束地址不能跨层。
具体地,线性规划求解模型的约束条件包括:
1、各层权重的行起始地址位于0和用于写入权重阵列的闪存单元阵列的行最大值之间;即:0≤x[i]≤rowsize-rows[i]);
2、各层权重的列起始地址位于0和用于写入权重阵列的闪存单元阵列的列最大值之间;即:0≤y[i]≤colsize-cols[i];
3、各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;即:(0≤bx[i]≤biassize-bias[i]);
4、各层偏置的列起始地址与对应层的权重的列起始地址相等;即:by[i]=y[i];
5、各层权重的排布,两两之间互相不重叠;即:x[i]≥x[j]+rows[j]or x[j]≥x[i]+rows[i]or y[i]≥y[j]+cols[j]or y[j]≥y[i]+cols[i];
6、各层偏置的排布,两两之间互相不重叠。即:bx[i]≥bx[j]+bias[j]or bx[j]≥bx[i]+bias[i];
7、权重阵列按P对齐均分成Q层,各层权重的行起始地址和行结束地址不能跨层(如将行均分为Q层时,限制是
Figure BDA0003536409530000101
Figure BDA0003536409530000102
Figure BDA0003536409530000103
);
即:将用于写入权重阵列的闪存单元阵列按P对齐均分成Q层;其中,所述P为最大运算块的行数;所述Q为用于写入权重阵列的闪存单元阵列的行最大值除以P后取整。Q=row_size/P,例如对于row_size=1024,P=512时,Q=1024/512=2,即均分为两层。
举例来说,当前的闪存单元阵列的行最大值,分别为1792和2048,都是被分成了2层,每层行数为896和1024,权重分配的时候不能跨层,权重分配可以跨448/512,但不能够跨896/1024,其中,448和512是最大运算块的行数,即:把闪存单元阵列按横向分成4层,每层有448/512行,权重分配的时候1、2层,3、4层可以跨,尽量少跨,禁止跨2、3层。
线性规划求解模型的目标函数包括:
1、各层偏置的排布行数位于各层偏置最小行数与所述用于写入偏置的闪存单元阵列的行最大值之间,且所有层的偏置的排布行数总和最大,即:(max∑bias[i]);
2、将用于写入权重阵列的闪存单元阵列按纵向均分成Y个区,各区的宽度均为X列,排布后各层权重所跨越的分区之和最小,即min∑across[i],
Figure BDA0003536409530000104
Figure BDA0003536409530000105
其中,X为最小运算块的列数,Y=当前层权重阵列的列数除以X,即X*Y=闪存单元阵列的列宽度,across[i]表示第i层神经网络的权重矩阵映射到闪存单元阵列后跨越的分区数量;由于单次运算的最大运算规模存在限制,在排布时,希望当前层权重阵列的运算次数越少越好,若将闪存单元阵列按照最大运算块进行分区,希望当前层权重阵列跨越的分区数越少,运算所消耗的功率越低。
通过采用上述技术方案,能够进一步提高运算精度。
在一个可选的实施例中,线性规划求解模型的约束条件包括:
1、各层权重的行起始地址位于0和用于写入权重阵列的闪存单元阵列的行最大值之间;即:0≤x[i]≤rowsize-rows[i]);
2、各层权重的列起始地址位于0和用于写入权重阵列的闪存单元阵列的列最大值之间;即:0≤y[i]≤colsize-cols[i];
3、各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;即:(0≤bx[i]≤biassize-bias[i]);
4、各层偏置的列起始地址与对应层的权重的列起始地址相等;即:by[i]=y[i];
5、各层权重的排布,两两之间互相不重叠;即:x[i]≥x[j]+rows[j]or x[j]≥x[i]+rows[i]or y[i]≥y[j]+cols[j]or y[j]≥y[i]+cols[i];
6、各层偏置的排布,两两之间互相不重叠。即:bx[i]≥bx[j]+bias[j]or bx[j]≥bx[i]+bias[i];
7、权重阵列按P对齐均分成Q层,各层权重的行起始地址和行结束地址不能跨层(如将行均分为Q层时,限制是
Figure BDA0003536409530000111
Figure BDA0003536409530000112
Figure BDA0003536409530000113
);
即:将用于写入权重阵列的闪存单元阵列按P对齐均分成Q层;其中,所述P为最大运算块的行数;所述Q为用于写入权重阵列的闪存单元阵列的行最大值除以P后取整。Q=row_size/P,例如对于row_size=1024,P=512时,Q=1024/512=2,即均分为两层。
8、各层偏置的排布行数为偶数;即:各层Bias扩充的行数,必须为偶数(bias[i]mod 2=0)
线性规划求解模型的目标函数包括:
1、各层偏置的排布行数位于各层偏置最小行数与所述用于写入偏置的闪存单元阵列的行最大值之间,且所有层的偏置的排布行数总和最大,即:(max∑bias[i]);
2、将用于写入权重阵列的闪存单元阵列按纵向均分成Y个区,各区的宽度均为X列,排布后各层权重所跨越的分区之和最小,即min∑across[i],
Figure BDA0003536409530000121
Figure BDA0003536409530000122
其中,X为最小运算块的列数,Y=当前层权重阵列的列数除以X,即X*Y=闪存单元阵列的列宽度,across[i]表示第i层神经网络的权重矩阵映射到闪存单元阵列后跨越的分区数量;由于单次运算的最大运算规模存在限制,在排布时,希望当前层权重阵列的运算次数越少越好,若将闪存单元阵列按照最大运算块进行分区,希望当前层权重阵列跨越的分区数越少,运算所消耗的功率越低。
通过采用上述技术方案,对各偏置占据的行数进行了扩展,减少单个闪存单元上的存放的偏置的数值大小,降低电流噪声,进一步提高了运算精度。
值得说明的是,神经网络模型确定之后,知道了各层的权重阵列以及偏置数值,根据偏置数值以及目标芯片的参数(每一行Bias的属性)计算出每一层的Bias最小行数。
Bias的最小行数可以由电路方面的工程师根据精度要求事先给定,一般以满足最差精度要求为标准,也可以按照预设规则进行运算,本发明实施例对此不再赘述。
本发明实施例中,Bias排布的目标之一是Bias阵列的空闲行最少。为尽可能减少Bias阵列中全部或部分存算一体单元存储的Bias数值,需要利用Bias阵列中的空闲行对Bias的排布进行扩展,得到最终的排布方案,而后按照最终的排布方案将神经网络参数写入存算一体芯片中。
由于存算一体芯片本质上采用模拟计算,Bias阵列上每个存算一体单元的bias值越大,最终计算产生的噪声就会越大,过大的Bias引入的过大噪声会对计算精度产生决定性影响,因此可以根据阵列大小,尽可能地扩展逻辑上一行Bias占据的实际Bias阵列行数,如占据的实际行数为m,则每一行上存放的Bias大小为逻辑上Bias大小的1/m,从而提高计算精度。
为了使本领域技术更好地理解本申请,下面举例对本发明实施例进行描述:假设目标存算一体芯片的硬件参数如表1所示,待映射神经网络模型的参数如表2所示。
表1:目标存算一体芯片的硬件参数:
Figure BDA0003536409530000123
Figure BDA0003536409530000131
其中,单块权重阵列表示最大运算块,列对齐宽度表示最小运算块的列宽度;
表2:目标神经网络模型参数:
Figure BDA0003536409530000132
其中,待映射神经网络模型有10个运算层,比如,若待映射神经网络为卷积神经网络CNN模型,则卷积层有10个;第1层神经网络的权重行数是440,列数/Bias的列数为112,第1层神经网络的最小Bias行数为2。
表3:映射方案
Figure BDA0003536409530000133
Figure BDA0003536409530000141
表3示出了基于表1和表2的数据,利用本发明实施例中的用于存算一体芯片的基于线性规划的神经网络映射方法,得到的映射方案,将表3所示映射方案映射至目标神经网络之后的结果如图4所示。
其中,1~10层神经网络排布后的序号为0~9,举例来说,第1层神经网络排布后,其行起始地址x[0]=896,列起始地址y[0]=562;对应的Bias的行起始地址为bx[0]=0,列起始地址为by[0]=562;第1层神经网络最小Bias行数为2,扩展后的Bias行数为12行。
本发明实施例还提供了一种存算一体芯片,包括:用于执行神经网络运算的闪存单元阵列,所述闪存单元阵列中映射有所述神经网络的权重阵列和偏置阵列;
所述权重阵列以及对应的偏置阵列的排布方式根据上述的基于线性规划的神经网络映射方法产生。
值得说明的是,本发明实施例提供的存算一体芯片,可以适用于各种电子设备,比如:智能手机、平板电子设备、网络机顶盒、便携式计算机、台式电脑、个人数字助理(PDA)、车载设备、智能穿戴设备、玩具、智能家居控制设备、流水线设备控制器等。其中,所述智能穿戴设备可以包括智能眼镜、智能手表、智能手环等。
基于同一发明构思,本申请实施例还提供了一种用于存算一体芯片的基于线性规划的神经网络映射装置,可以用于实现上述实施例所描述的方法,如下面的实施例所述。由用于存算一体芯片的基于线性规划的神经网络映射装置解决问题的原理与上述方法相似,因此用于存算一体芯片的基于线性规划的神经网络映射装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是本发明实施例中的用于存算一体芯片的基于线性规划的神经网络映射装置的结构框图。该用于存算一体芯片的基于线性规划的神经网络映射装置包括:数据获取模块10、线性求解模块20。
数据获取模块10获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;
线性求解模块20将所述待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,所述映射方案用于将所述待映射神经网络各层的权重阵列以及对应的偏置阵列映射至所述目标存算一体芯片中。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为电子设备,具体的,电子设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中电子设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的用于存算一体芯片的神经网络映射方法的步骤。
下面参考图6,其示出了适于用来实现本申请实施例的电子设备600的结构示意图。
如图6所示,电子设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的用于存算一体芯片的神经网络映射方法的步骤。
在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,包括:
获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;
将所述待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,所述映射方案用于将所述待映射神经网络各层的权重阵列以及对应的偏置阵列映射至所述目标存算一体芯片中。
2.根据权利要求1所述的用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,所述各层的权重阵列以及对应的偏置阵列数据包括:各层权重阵列的行数和列数、对应的偏置最小行数;
所述目标一体芯片的硬件参数包括:用于写入权重阵列的闪存单元阵列的行最大值和列最大值、用于写入偏置的闪存单元阵列的行最大值、最大运算块的行数和最小运算块的列数。
3.根据权利要求2所述的用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,所述线性规划求解模型的约束条件包括:
各层权重的行起始地址位于0和用于写入权重阵列的闪存单元阵列的行最大值之间;
各层权重的列起始地址位于0和用于写入权重阵列的闪存单元阵列的列最大值之间;
各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;
各层偏置的列起始地址与对应层的权重的列起始地址相等;
各层权重的排布,两两之间互相不重叠;
各层偏置的排布,两两之间互相不重叠。
4.根据权利要求2所述的用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,所述输入参数还包括:预留空间的前M行、后N行、前J列以及后K列;
所述线性规划求解模型的约束条件包括:
各层权重的行起始地址位于M和用于写入权重阵列的闪存单元阵列的行最大值减去对应层权重阵列的行数再减去N的差值之间;
各层权重的列起始地址位于J和用于写入权重阵列的闪存单元阵列的列最大值减去对应层权重阵列的列数再减去K的差值之间;
各层偏置的行起始地址位于0和用于写入偏置的闪存单元阵列的行最大值之间;
各层偏置的列起始地址与对应层的权重的列起始地址相等;
各层权重的排布,两两之间互相不重叠;
各层偏置的排布,两两之间互相不重叠。
5.根据权利要求3所述的用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,所述线性规划求解模型的约束条件还包括:
根据用于写入权重阵列的闪存单元阵列的行最大值以及最大运算块的行数将用于写入权重阵列的闪存单元阵列均分成多层,各层权重的行起始地址和行结束地址不能跨层。
6.根据权利要求2所述的用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,所述线性规划求解模型的约束条件还包括:
各层偏置的排布行数为偶数。
7.根据权利要求5至6任一项所述的用于存算一体芯片的基于线性规划的神经网络映射方法,其特征在于,所述线性规划求解模型的目标函数包括:
各层偏置的排布行数位于各层偏置最小行数与所述用于写入偏置的闪存单元阵列的行最大值之间,且所有层的偏置的排布行数总和最大;并且,
将用于写入权重阵列的闪存单元阵列按纵向均分成Y个区,各区的宽度均为X列,排布后各层权重所跨越的分区之和最小;其中,X为最小运算块的列数,Y为闪存单元阵列的列数除X。
8.一种用于存算一体芯片的基于线性规划的神经网络映射装置,其特征在于,包括:
数据获取模块,获取待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数;
线性求解模块,将所述待映射神经网络各层的权重阵列以及对应的偏置阵列数据、目标存算一体芯片的硬件参数输入预建立的线性规划求解模型进行求解得到映射方案,所述映射方案用于将所述待映射神经网络各层的权重阵列以及对应的偏置阵列映射至所述目标存算一体芯片中。
9.一种存算一体芯片,包括:用于执行神经网络运算的闪存单元阵列,所述闪存单元阵列中映射有所述神经网络的权重阵列和偏置阵列;
所述权重阵列以及对应的偏置阵列的排布方式根据权利要求1至7任一项所述的基于线性规划的神经网络映射方法产生。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述的基于线性规划的神经网络映射方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的基于线性规划的神经网络映射方法的步骤。
CN202210227169.5A 2022-03-08 2022-03-08 用于存算一体芯片的基于线性规划的神经网络映射方法 Pending CN114723024A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210227169.5A CN114723024A (zh) 2022-03-08 2022-03-08 用于存算一体芯片的基于线性规划的神经网络映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210227169.5A CN114723024A (zh) 2022-03-08 2022-03-08 用于存算一体芯片的基于线性规划的神经网络映射方法

Publications (1)

Publication Number Publication Date
CN114723024A true CN114723024A (zh) 2022-07-08

Family

ID=82238260

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210227169.5A Pending CN114723024A (zh) 2022-03-08 2022-03-08 用于存算一体芯片的基于线性规划的神经网络映射方法

Country Status (1)

Country Link
CN (1) CN114723024A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306811A (zh) * 2023-02-28 2023-06-23 苏州亿铸智能科技有限公司 一种针对ReRAM部署神经网络的权重分配方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306811A (zh) * 2023-02-28 2023-06-23 苏州亿铸智能科技有限公司 一种针对ReRAM部署神经网络的权重分配方法
CN116306811B (zh) * 2023-02-28 2023-10-27 苏州亿铸智能科技有限公司 一种针对ReRAM部署神经网络的权重分配方法

Similar Documents

Publication Publication Date Title
US11307864B2 (en) Data processing apparatus and method
CN107957989B9 (zh) 基于集群的词向量处理方法、装置以及设备
US20200356905A1 (en) Debugging correctness issues in training machine learning models
CN110546611A (zh) 通过跳过处理操作来减少神经网络处理器中的功耗
CN111241353B (zh) 一种图数据的分区方法、装置以及设备
JP2022018095A (ja) マルチモーダル事前訓練モデル取得方法、装置、電子デバイス及び記憶媒体
KR20190099931A (ko) 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치
CN111587439A (zh) 脉冲宽度调制的乘法器
CN113344170A (zh) 神经网络权重矩阵调整方法、写入控制方法以及相关装置
CN114298329A (zh) 一种模型训练方法、装置、设备及存储介质
CN114723024A (zh) 用于存算一体芯片的基于线性规划的神经网络映射方法
CN114707655A (zh) 一种量子线路转换方法、系统、存储介质和电子设备
CN117786412A (zh) 大型语言模型的弹性训练方法、集群系统、产品及介质
CN112200310B (zh) 智能处理器、数据处理方法及存储介质
KR20220114228A (ko) 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치
CN113988277A (zh) 用于存算一体芯片的神经网络映射方法、装置、设备
CN111645687A (zh) 变道策略确定方法、装置及存储介质
CN108170663A (zh) 基于集群的词向量处理方法、装置以及设备
CN111667060B (zh) 深度学习算法的编译方法、装置及相关产品
CN109272112B (zh) 一种面向神经网络的数据重用指令映射方法、系统及装置
CN117011118A (zh) 模型参数更新方法、装置、计算机设备以及存储介质
CN116933864A (zh) 一种通用高精度分布式算法训练方法及系统
US20230056869A1 (en) Method of generating deep learning model and computing device performing the same
CN114997388A (zh) 存算一体芯片用基于线性规划的神经网络偏置处理方法
US20200104207A1 (en) Data processing apparatus and method

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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: Room 213-175, 2nd Floor, Building 1, No. 180 Kecheng Street, Qiaosi Street, Linping District, Hangzhou City, Zhejiang Province, 311100

Applicant after: Hangzhou Zhicun Computing Technology Co.,Ltd.

Address before: Room 1502, west block, brilliant times building, No. 56, North Fourth Ring West Road, Haidian District, Beijing 100080

Applicant before: BEIJING WITINMEM TECHNOLOGY Co.,Ltd.

Country or region before: China