CN111325333A - 数据处理方法、神经网络处理器、存储介质及电子设备 - Google Patents

数据处理方法、神经网络处理器、存储介质及电子设备 Download PDF

Info

Publication number
CN111325333A
CN111325333A CN202010135567.5A CN202010135567A CN111325333A CN 111325333 A CN111325333 A CN 111325333A CN 202010135567 A CN202010135567 A CN 202010135567A CN 111325333 A CN111325333 A CN 111325333A
Authority
CN
China
Prior art keywords
data
coordinates
preset
step length
abscissa
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
CN202010135567.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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010135567.5A priority Critical patent/CN111325333A/zh
Publication of CN111325333A publication Critical patent/CN111325333A/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本申请实施例提供一种数据处理方法、神经网络处理器、存储介质及电子设备,神经网络处理器包括存储单元,存储单元设置有坐标,存储单元内存储的数据均具有对应的坐标,所述方法包括:在存储单元,获取基准位置以及基准位置对应的基准坐标;获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标;获取多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储。通过调整基准坐标、第一步长和第二步长可以调整获取的预设坐标,从而得到多种数据组合,完成数据的多种整形,提高了整形的效率。

Description

数据处理方法、神经网络处理器、存储介质及电子设备
技术领域
本申请涉及电子技术领域,特别涉及一种数据处理方法、神经网络处理器、存储介质及电子设备。
背景技术
神经网络处理器(neural-network processing units,NPU)是一类用于加速神经网络运行的处理芯片。一个神经网络算法中往往有多个不同的算子,每一个算子的计算结果往往都不能直接应用到下一层算子的输入,需要按照下一层算子要求的数据格式进行整形。相关技术中,数据格式进行整形的方式单一,整形效率低。
发明内容
本申请实施例提供一种数据处理方法、神经网络处理器、存储介质及电子设备,可以对数据的数据格式进行多种方式变形,提高了整形的效率。
第一方面,本申请实施例提供一种数据处理方法,其应用于神经网络处理器,所述神经网络处理器包括存储单元,所述存储单元设置有坐标,所述存储单元内存储的数据均具有对应的坐标,所述方法包括:
在所述存储单元,获取基准位置以及所述基准位置对应的基准坐标;
获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;
根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标;以及
获取所述多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储。
第二方面,本申请实施例还提供一种神经网络处理器,其包括:
存储单元,所述存储单元设置有坐标,所述存储单元内存储的数据均具有对应的坐标;以及
处理单元,用于在所述存储单元,获取基准位置以及所述基准位置对应的基准坐标;获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标;获取所述多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储在所述存储单元。
第三方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述所述的数据处理方法。
第四方面,本申请实施例还提供一种电子设备,其包括神经网络处理器和存储器,所述存储器有计算机程序,所述神经网络处理器通过调用所述计算机程序,用于执行上述所述的数据处理方法。
本申请实施例中,得到基准坐标后,基于横坐标的第一步长和第一数量、以及纵坐标的第二步长和第二数量可以从存储单元内选择需要的多个预设坐标,并得到多个预设坐标对应的多个数据,即可以根据需要从存储单元内挑选多个数据,并将多个数据按照预设规则排列得到新的数据格式的数据。通过调整基准坐标、第一步长和第二步长可以调整获取的预设坐标,从而得到多种数据组合,完成数据的多种整形,提高了整形的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的数据处理方法的第一种流程示意图。
图2为本申请实施例提供的数据处理方法的第二种流程示意图。
图3为本申请实施例提供的预设坐标获取的示意图。
图4为本申请实施例提供的数据处理方法的第三种流程示意图。
图5为本申请实施例提供的预设坐标获取的另一示意图。
图6为本申请实施例提供的神经网络处理器的结构示意图。
图7为本申请实施例提供的电子设备的第一种结构示意图。
图8为本申请实施例提供的神经网络处理器的存储单元的坐标示意图。
图9为本申请实施例提供的电子设备的第二种结构示意图。
具体实施方式
以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文不同模块、引擎及服务可看做为在该运算系统上的实施对象。
本申请实施例提供一种数据处理方法,该数据处理方法的执行主体可以是本申请实施例提供的神经网络处理器,或者集成了该神经网络处理器的电子设备。其中,该电子设备可以是智能手机、平板电脑、掌上电脑(PDA,Personal Digital Assistant)等,还可以是游戏设备、AR(Augmented Reality,增强现实)设备、车载装置、数据存储装置、音频播放装置、视频播放装置、笔记本电脑、桌面计算设备等。
以下进行具体分析说明。
本申请实施例提供一种数据处理方法,其应用于神经网络处理器(neural-network processing units,NPU),请参阅图1,图1是本申请实施例提供的数据处理方法的第一种流程示意图,数据处理方法可以包括以下步骤:
101,在存储单元,获取基准位置以及所述基准位置对应的基准坐标。
神经网络处理器包括存储单元,存储单元设置有坐标,存储单元内存储的数据均具有对应的坐标,坐标包括横坐标和纵坐标。
存储单元可以作为神经网络处理器的内部缓存,存储单元可以为静态随机存取存储器(Static Random-Access Memory,SRAM),也可以为其他存储器。存储单元的大小可以根据设计需要以及芯片设计后端限制权衡。为了更好的理解存储单元,下面以存储单元为64x64的8bit元素矩阵为例,其缓存位宽为64x8=256bit,深度为64。SRAM位宽越大,则整形过程越快,但是对应的硬件走线也越复杂,导致后端时序越难收敛。SRAM深度越深,则可整形数据的原始数据范围越大,但是相应的完成一次整形可能需要更长时间。
神经网络处理器将需要整形的原始数据导入到SRAM中,具体可以通过直接内存访问(Direct Memory Access,DMA)或其他数据读写操作完成。
神经网络处理器获取基准位置以及基准位置对应的基准坐标。
102,获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量。
神经网络处理器得到基准坐标后,还获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量。第一步长为要挑选的一行数据中两个相邻数据之间的间隔距离,第一数量为要挑选的一行数据的数量。第二步长为要挑选的一列数据中两个相邻数据之间的间隔距离,第二数量为要挑选的一列数据的数量。
103,根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标。
得到第一步长、第一数量、第二步长和第二数量后,基于基准坐标(即以基准坐标为起始坐标)可以得到要挑选的多个预设坐标。
104,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储。
选出多个预设坐标后,获取多个预设坐标对应的多个数据,多个数据按照预设排列方式存储,从而得到整形后的数据。其中,预设排列方式可以为根据挑选数据的先后顺序排列,或者根据挑选数据的先后顺序的逆序排列。
可以理解的,根据需要可以通过调整基准坐标、第一步长和第二步长中的至少一项调整获取的预设坐标,从而可以挑选出多种预设坐标组合,以及多种数据组合,完成数据的多种不同方式的整形,提高了整形的效率。还可以调整第一数量和第二数量中的至少一项调整挑选出来的数据的数量,得到多种数据。需要说明的是,神经网络算法更新时,神经网络算法的算子也经常对应更新,算子更新后,更新后的算子对应的数据整形方式也需要更新,通过本申请实施例的数据处理方法可以实现更新后的数据整形方式,不需要大规模调整硬件设计满足更新后的数据整形方式,可以快速响应算法更改数据整形方式的需求。数据整形不再受限于硬件,可以实现支持多种数据整形的需求,快速响应神经网络算法更新需求。
需要说明的是,在一些实施例中,基准位置的坐标可以为0_0,第一步长和第二步长都可以为1,从而实现存储单元存储的数据的逆向存储。在其他一些实施例中,第一步长和第二步长中的至少一个可以大于2,基准位置也根据需要选择其他坐标。
根据上一个实施例所描述的方法,以下将举例作进一步详细说明。
请参阅图2,图2为本申请实施例提供的数据处理方法的第二种流程示意图。其中,该数据处理方法具体可以包括:
201,在存储单元,获取基准位置以及基准位置对应的基准坐标。
神经网络处理器将需要整形的原始数据导入到SRAM中,具体可以通过直接内存访问(Direct Memory Access,DMA)或其他数据读写操作完成。
神经网络处理器获取基准位置以及基准位置对应的基准坐标。
202,获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量。
神经网络处理器得到基准坐标后,还获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量。第一步长为要挑选的一行数据中两个相邻数据之间的间隔距离,第一数量为要挑选的一行数据的数量。第二步长为要挑选的一列数据中两个相邻数据之间的间隔距离,第二数量为要挑选的一列数据的数量。
203,获取基准坐标的第一横坐标和第一纵坐标。
基准坐标包括第一横坐标和第一纵坐标。
204,基于第一横坐标、第一纵坐标、第二步长和第二数量,得到多个行起始纵坐标。
得到基准坐标的第一横坐标和第一纵坐标后,基于第一横坐标、第一纵坐标、第二步长和第二数量,可以得到多个行起始纵坐标。多个行起始纵坐标为横坐标相同,纵坐标不同的多个坐标。通过多个行起始纵坐标和第一横坐标可以得到需要挑选的多个数据的每一行的起始坐标。
205,基于多个行起始纵坐标、第一步长和第一数量,得到多行的多个预设坐标,其中,多个预设坐标包括对应每一行起始纵坐标的多行预设坐标。
得到多个行起始纵坐标后,基于第一横坐标、多个行起始纵坐标、第一步长和第一数量,得到多行的多个预设坐标。具体的,通过多个行起始纵坐标和第一横坐标可以得到需要挑选的多个数据的每一行的起始坐标,然后再根据第一步长和第一数量得到每一行的多个预设坐标。每一行的多个预设坐标为纵坐标相同、横坐标不同的多个预设坐标。每一行的多个预设坐标都是基于该行对应的行起始纵坐标和第一横坐标计算得到的。
206,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储。
选出多个预设坐标后,获取多个预设坐标对应的多个数据,多个数据按照预设排列方式存储,从而得到整形后的数据。其中,预设排列方式可以为根据挑选数据的先后顺序排列,或者根据挑选数据的先后顺序的逆序排列。
可以理解的,根据需要可以通过调整基准坐标、第一步长和第二步长中的至少一项调整获取的预设坐标,从而可以挑选出多种预设坐标组合,以及多种数据组合,完成数据的多种不同方式的整形,提高了整形的效率。还可以调整第一数量和第二数量中的至少一项调整挑选出来的数据的数量,得到多种数据。需要说明的是,神经网络算法更新时,神经网络算法的算子也经常对应更新,算子更新后,更新后的算子对应的数据整形方式也需要更新,通过本申请实施例的数据处理方法可以实现更新后的数据整形方式,不需要大规模调整硬件设计满足更新后的数据整形方式,可以快速响应算法更改数据整形方式的需求。数据整形不再受限于硬件,可以实现支持多种数据整形的需求,快速响应神经网络算法更新需求。
为了方便理解上述数据处理方法,下面结合图3举例说明。
基准坐标Xstart_Ystart为0_0,基于横坐标的第一步长Xstride为3,基于纵坐标的第二步长Ystride为4,基于横坐标挑选数据个数即第一数量Xnum为4,基于纵坐标挑选数据个数即第二数量Ynum为2。数据处理方法可以包括:
根据基准坐标的第一纵坐标位置,得出SRAM起始读地址为0,根据纵坐标的步长,得出地址递增的规律,Addr_next=Addr_curr+4。
根据Xstride获取当前行所有有效的数据,该有效数据对所有行都有效,在该图中,读取的每行数据有效数据为1001001001。
将每一行读取的数据中有效数据取出,放到寄存器中,每个数据在寄存器中的位置由当前配置及行位置相关,如第一行的4个元素,位于寄存器的前4个,第二行的4个元素位于寄存器的后四个:{4_9,4_6,4_3,4_0,0_9,0_6,0_3,0_0}。
请参阅图4,图4为本申请实施例提供的数据处理方法的第三种流程示意图。其中,该数据处理方法具体可以包括:
301,在存储单元,获取基准位置以及基准位置对应的基准坐标。
神经网络处理器将需要整形的原始数据导入到SRAM中,具体可以通过直接内存访问(Direct Memory Access,DMA)或其他数据读写操作完成。
神经网络处理器获取基准位置以及基准位置对应的基准坐标。
302,获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量。
神经网络处理器得到基准坐标后,还获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量。第一步长为要挑选的一行数据中两个相邻数据之间的间隔距离,第一数量为要挑选的一行数据的数量。第二步长为要挑选的一列数据中两个相邻数据之间的间隔距离,第二数量为要挑选的一列数据的数量。
303,获取基准坐标的第一横坐标和第一纵坐标。
基准坐标包括第一横坐标和第一纵坐标。
304,基于第一横坐标、第一纵坐标、第一步长和第一数量,得到多个列起始横坐标。
得到基准坐标的第一横坐标和第一纵坐标后,基于第一横坐标、第一纵坐标、第一步长和第一数量,可以得到多个列起始横坐标。多个列起始横坐标为纵坐标相同,横坐标不同的多个坐标。通过多个列起始横坐标和第一纵坐标可以得到需要挑选的多个数据的每一列的起始坐标。
305,基于多个列起始横坐标、第二步长和第二数量,得到多列的多个预设坐标,其中,多个预设坐标包括对应每一列起始横坐标的多列预设坐标。
得到多个列起始横坐标后,基于第一纵坐标、多个列起始横坐标、第二步长和第二数量,得到多列的多个预设坐标。具体的,通过多个列起始横坐标和第一纵坐标可以得到需要挑选的多个数据的每一列的起始坐标,然后再根据第二步长和第二数量得到每一列的多个预设坐标。每一列的多个预设坐标为横坐标相同、纵坐标不同的多个预设坐标。每一列的多个预设坐标都是基于该列对应的列起始横坐标和第一纵坐标计算得到的。
306,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储。
选出多个预设坐标后,获取多个预设坐标对应的多个数据,多个数据按照预设排列方式存储,从而得到整形后的数据。其中,预设排列方式可以为根据挑选数据的先后顺序排列,或者根据挑选数据的先后顺序的逆序排列。
在一些实施例中,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储可以包括:
获取多列预设坐标对应的多列数据,并将多列数据按列顺序依次存储。
挑选数据时按列获取数据,即每次获取一列数据,从而得到多列数据,后续存储数据时也是将多列数据按列顺序依次存储,获取的每列数据都依次存储。
在一些实施例中,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储还可以包括:
获取多列预设坐标对应的多列数据;
将每一列数据中相邻的两个数据间隔第三数量存储位置存储,将相邻的列数据中横坐标相同的两个数据存储在相邻的两个存储位置,第三数量与第二数量的差值为1。
挑选数据时按列获取数据,即获取一列列数据,后续存储数据时是将多列数据按列顺序依次存储,但是每一列数据中相邻的两个数据不是相邻设置,而是预留出第三数量的存储位置,预留出的存储位置用于存储与其中一个数据横坐标相同的多个数据。其中,第三数量比第二数量少1,也可以理解为将得到的多个预设数据存储时,横坐标相同的数据相邻存储。
获取多个预设坐标时,除了可以先沿横坐标方向获取预设坐标,还可以先沿纵坐标获取预设坐标,可以通过多种方式获取预设坐标。还可以按照不同的方式存储预设坐标对应的数据,可以按获取预设坐标的顺序存储预设坐标对应的数据,也可以按照一定的规律间隔存储预设坐标对应的数据。可以理解的,根据需要可以通过调整基准坐标、第一步长和第二步长中的至少一项调整获取的预设坐标,从而可以挑选出多种预设坐标组合,以及多种数据组合,完成数据的多种不同方式的整形,提高了整形的效率。还可以调整第一数量和第二数量中的至少一项调整挑选出来的数据的数量,得到多种数据。
为了方便理解上述数据处理方法,下面结合图5举例说明。
准坐标Xstart_Ystart为1_1,基于横坐标的第一步长Xstride为4,基于纵坐标的第二步长Ystride为2,基于横坐标挑选数据个数即第一数量Xnum为3,基于纵坐标挑选数据个数即第二数量Ynum为5。数据处理方法可以包括:
根据基准坐标的第一纵坐标位置,得出SRAM起始读地址为1,根据纵坐标的步长,得出地址递增的规律,Addr_next=Addr_curr+2。
根据Xstride获取当前行所有有效的元素,该有效数据对所有行都有效,在该图中,读取的每行数据有效元素为100010001。
将每一行读取的数据中有效元素取出,放到寄存器中,由于第一方向为列方向,故元素1_5虽然为第一行第二个元素,但其在寄存器中的位置还需要加上Ynum,即为5,最终输出:{9_9,7_9,5_9,3_9,1_9,9_5,7_5,5_5,3_5,1_5,9_1,7_1,5_1,3_1,1_1}。
为了更好地实施以上方法,本申请实施例还提供了一种神经网络处理器,具体请参阅图6,图6为本申请实施例提供的神经网络处理器的结构示意图。该神经网络处理器400可以包括存储单元401和处理单元402。
存储单元401设置有坐标,存储单元401内存储的数据均具有对应的坐标。
处理单元402用于在存储单元401,获取基准位置以及基准位置对应的基准坐标;获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标;获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储在存储单元401。
在一些实施例中,根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标中,处理单元402还用于获取基准坐标的第一横坐标和第一纵坐标;基于第一横坐标、第一纵坐标、第二步长和第二数量,得到多个行起始纵坐标;基于多个行起始纵坐标、第一步长和第一数量,得到多行的多个预设坐标,其中,多个预设坐标包括对应每一行起始纵坐标的多行预设坐标。
在一些实施例中,根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标中,处理单元402还用于获取基准坐标的第一横坐标和第一纵坐标;基于第一横坐标、第一纵坐标、第一步长和第一数量,得到多个列起始横坐标;基于多个列起始横坐标、第二步长和第二数量,得到多列的多个预设坐标,其中,多个预设坐标包括对应每一列起始横坐标的多列预设坐标。
在一些实施例中,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储中,处理单元402还用于获取多列预设坐标对应的多列数据,并将多列数据按列顺序依次存储。
在一些实施例中,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储中,处理单元402还用于获取多列预设坐标对应的多列数据;将每一列数据中相邻的两个数据间隔第三数量存储位置存储,将相邻列数据中横坐标相同的两个数据存储在相邻的两个存储位置,第三数量与第二数量的差值为1。
在一些实施例中,第一步长和第二步长中至少一个大于2。
本申请实施例还提供一种电子设备,请参阅图7,电子设备500包括神经网络处理器501和存储器502。其中,神经网络处理器501与存储器502电性连接。
存储器502可用于存储软件程序以及数据,神经网络处理器501通过运行存储在存储器502的计算机程序,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储至少一个功能所需的计算机程序等;存储数据区可存储根据神经网络处理器501需要的数据等。
其中,将需要整形的原始数据导入到神经网络处理器的SRAM中,导入过程可由计算机程序主导,通过DMA或其他数据读写操作完成。
计算机程序可以通过寄存器或指令告知神经网络处理器当前数据大小、需要挑选的数据坐标(横坐标、纵坐标)、结束标志等。其中,若通过寄存器配置,则计算机程序还另需要配置一个触发信号,用于触发开始整形。要挑选的数据坐标是根据神经网络算法本身的需要确定,要挑选的数据坐标可以不是多个坐标,而是一个起始坐标结合一定的规律组合对应的多个数据坐标。后续的变形是神经网络处理器根据计算机程序配置的数据坐标,将相应的数据挑选出来即可完成。寄存器配置的时候,因为会涉及到多个寄存器操作,所以神经网络处理器本身无法确定是否配置完成,所以需要计算机程序在完成基本配置之后,再配置一个触发信号,该触发信号可理解为启动整形的信号。在指令模式下,神经网络处理器收到指令的时候,已经获取了所有整形需要的信息,收到指令的时候即可自行开始整形,不需要触发信息。
神经网络处理器在接收到指令或者触发信号的时候,根据横坐标信息产生SRAM读地址。因为所有待整形的数据可以按照行方向存放在SRAM中,数据的横坐标即可认为是该SRAM的读地址等价。
在SRAM读数据有效时,将该数据中纵坐标元素取出,作为挑选结果。从SRAM中读出来的一行数据,包括了数个连续的数据,而纵坐标即该连续数据中希望被挑选出来的数据。
根据当前所取数据的序号,将该挑选结果按照顺序放在内部寄存器中,该寄存器用于缓存一轮挑选完成之前的中间数据。同时数据序号加一,以供下一次数据挑选使用,直到寄存器或指令中结束标志有效,表示完成一轮挑选。该序号在初始状态为0,看到结束标志,即完成一轮挑选之后,该序号归0。
示例性地,图8中数据的坐标为X_Y,X为横坐标,Y为纵坐标,每一个坐标上是一个数据,数据大小可以为8bit也可以为其他大小,数据大小可根据设计需要调整。横坐标X对应SRAM取数据时的读地址,而纵坐标则为该行数据中有效数据的位置。
如指令或寄存器配置的坐标为{15,62},则SRAM读取地址为15,该行数据中第62个数据即为需要取出的元素。
如需要挑选{2,3},{6,7},{27,33},{51,29},{62,63},最终输出结果为{62_63,51_29,27_33,6_7,2_3}。根据需要按照挑选数据的顺序摆放。该顺序可以理解为第一个挑选的数据放在低位,最后一个挑选的数据放在高位,也可以第一个挑选的数据放高位,从高往低依次摆放。考虑到硬件的实现,可以从低位往高位摆放数据。
此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供神经网络处理器501对存储器502的访问。
在本申请实施例中,电子设备500中的神经网络处理器501会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器502中,并由神经网络处理器501运行存储在存储器502中的计算机程序,从而实现各种功能,如下:
在存储单元,获取基准位置以及基准位置对应的基准坐标;
获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;
根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标;
获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储。
请参阅图9,图9为本申请实施例提供的电子设备的第二结构示意图,电子设备600包括:主处理器601、存储器602、摄像组件603、显示器604、音频电路605、射频电路606、电源607以及神经网络处理器608。其中,摄像组件603、显示器604、音频电路605、射频电路606、电源607以及神经网络处理器608分别与主处理器601电性连接。
主处理器601可以为中央处理器(central processing unit,CPU),为电子设备600的控制中心,利用各种接口和线路连接整个电子设备600的各个部分。
存储器602可用于存储软件程序以及模块,主处理器601通过运行存储在存储器602的计算机程序以及数据,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的计算机程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。主处理器601可以通过运行或加载存储在存储器602内的计算机程序,以及调用存储在存储器602内的数据,执行电子设备600的各种功能并处理数据。
摄像组件603可以包括图像处理电路,图像处理电路可以利用硬件和/或软件组件实现,可包括定义图像信号处理(Image Signal Processing)管线的各种处理单元。图像处理电路至少可以包括:多个摄像头、图像信号处理器(Image Signal Processor,ISP处理器)、控制逻辑器以及图像存储器等。其中每个摄像头至少可以包括一个或多个透镜和图像传感器。图像传感器可包括色彩滤镜阵列(如Bayer滤镜)。图像传感器可获取用图像传感器的每个成像像素捕捉的光强度和波长信息,并提供可由图像信号处理器处理的一组原始图像数据。
显示器604可以用于显示由用户输入的信息或提供给用户的信息以及各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
音频电路605可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。
射频电路606可以用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
电源607可以用于给电子设备600的各个部件供电。在一些实施例中,电源607可以通过电源管理系统与主处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
神经网络处理器608可以用于进行神经网络计算。其可以通过与主处理器601和/或存储器602进行数据交互,共同进行神经网络计算。
在本申请实施例中,电子设备600中的神经网络处理器608会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器602中,并由神经网络处理器608运行存储在存储器602中的计算机程序,从而实现各种功能,如下:
在存储单元,获取基准位置以及基准位置对应的基准坐标;
获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;
根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标;
获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储。
在一些实施例中,根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标时,神经网络处理器608可以执行:
获取基准坐标的第一横坐标和第一纵坐标;
基于第一横坐标、第一纵坐标、第二步长和第二数量,得到多个行起始纵坐标;
基于多个行起始纵坐标、第一步长和第一数量,得到多行的多个预设坐标,其中,多个预设坐标包括对应每一行起始纵坐标的多行预设坐标。
在一些实施例中,根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标时,神经网络处理器608可以执行:
获取基准坐标的第一横坐标和第一纵坐标;
基于第一横坐标、第一纵坐标、第一步长和第一数量,得到多个列起始横坐标;
基于多个列起始横坐标、第二步长和第二数量,得到多列的多个预设坐标,其中,多个预设坐标包括对应每一列起始横坐标的多列预设坐标。
在一些实施例中,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储时,神经网络处理器608可以执行:
获取多列预设坐标对应的多列数据,并将多列数据按列顺序依次存储。
在一些实施例中,获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储时,神经网络处理器608可以执行:
获取多列预设坐标对应的多列数据;
将每一列数据中相邻的两个数据间隔第三数量存储位置存储,将相邻列数据中横坐标相同的两个数据存储在相邻的两个存储位置,第三数量与第二数量的差值为1。
在一些实施例中,第一步长和第二步长中至少一个大于2。
本申请实施例还提供一种存储介质,该存储介质存储有计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行上述任一实施例中的数据处理方法,比如:在存储单元,获取基准位置以及基准位置对应的基准坐标;获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;根据基准坐标、第一步长、第一数量、第二步长和第二数量,得到对应的多个预设坐标;获取多个预设坐标对应的多个数据,并将多个数据按照预设排列方式存储。
在本申请实施例中,存储介质可以是磁碟、光盘、只读存储器(Read Only Memory,ROM)、或者随机存取记忆体(Random Access Memory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对本申请实施例的数据处理方法而言,本领域普通测试人员可以理解实现本申请实施例的数据处理方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的神经网络处理器执行,在执行过程中可包括如数据处理方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
对本申请实施例的数据处理装置而言,其各功能模块可以集成在一个神经网络处理器中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,该存储介质譬如为只读存储器,磁盘或光盘等。
在本申请的描述中,需要理解的是,诸如“第一”、“第二”等术语仅用于区分类似的对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
以上对本申请实施例提供的数据处理方法、装置、存储介质及电子设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请。同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据处理方法,应用于神经网络处理器,其特征在于,所述神经网络处理器包括存储单元,所述存储单元设置有坐标,所述存储单元内存储的数据均具有对应的坐标,所述方法包括:
在所述存储单元,获取基准位置以及所述基准位置对应的基准坐标;
获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;
根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标;以及
获取所述多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标包括:
获取所述基准坐标的第一横坐标和第一纵坐标;
基于所述第一横坐标、所述第一纵坐标、所述第二步长和所述第二数量,得到多个行起始纵坐标;以及
基于所述多个行起始纵坐标、所述第一步长和所述第一数量,得到多行的多个预设坐标,其中,所述多个预设坐标包括对应每一行起始纵坐标的多行预设坐标。
3.根据权利要求1所述的数据处理方法,其特征在于,所述根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标包括:
获取所述基准坐标的第一横坐标和第一纵坐标;
基于所述第一横坐标、所述第一纵坐标、所述第一步长和所述第一数量,得到多个列起始横坐标;以及
基于所述多个列起始横坐标、所述第二步长和所述第二数量,得到多列的多个预设坐标,其中,所述多个预设坐标包括对应每一列起始横坐标的多列预设坐标。
4.根据权利要求3所述的数据处理方法,其特征在于,所述获取所述多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储包括:
获取所述多列预设坐标对应的多列数据,并将所述多列数据按列顺序依次存储。
5.根据权利要求3所述的数据处理方法,其特征在于,所述获取所述多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储包括:
获取所述多列预设坐标对应的多列数据;以及
将每一列数据中相邻的两个数据间隔第三数量存储位置存储,将相邻的列数据中横坐标相同的两个数据存储在相邻的两个存储位置,所述第三数量与第二数量的差值为1。
6.根据权利要求1所述的数据处理方法,其特征在于,所述第一步长和所述第二步长中至少一个大于2。
7.一种神经网络处理器,其特征在于,包括:
存储单元,所述存储单元设置有坐标,所述存储单元内存储的数据均具有对应的坐标;以及
处理单元,用于在所述存储单元,获取基准位置以及所述基准位置对应的基准坐标;获取基于横坐标的第一步长和第一数量,以及基于纵坐标的第二步长和第二数量;根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标;获取所述多个预设坐标对应的多个数据,并将所述多个数据按照预设排列方式存储在所述存储单元。
8.根据权利要求7所述的神经网络处理器,其特征在于,在根据所述基准坐标、所述第一步长、所述第一数量、所述第二步长和所述第二数量,得到对应的多个预设坐标中,所述处理单元还用于获取所述基准坐标的第一横坐标和第一纵坐标;基于所述第一横坐标、所述第一纵坐标、所述第二步长和所述第二数量,得到多个行起始纵坐标;基于所述多个行起始纵坐标、所述第一步长和所述第一数量,得到多行的多个预设坐标,其中,所述多个预设坐标包括对应每一行起始纵坐标的多行预设坐标。
9.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序在计算机上运行时,使得所述计算机执行如权利要求1至6任一项所述的数据处理方法。
10.一种电子设备,包括神经网络处理器和存储器,所述存储器有计算机程序,其特征在于,所述神经网络处理器通过调用所述计算机程序,用于执行如权利要求1至6任一项所述的数据处理方法。
CN202010135567.5A 2020-03-02 2020-03-02 数据处理方法、神经网络处理器、存储介质及电子设备 Pending CN111325333A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010135567.5A CN111325333A (zh) 2020-03-02 2020-03-02 数据处理方法、神经网络处理器、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010135567.5A CN111325333A (zh) 2020-03-02 2020-03-02 数据处理方法、神经网络处理器、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN111325333A true CN111325333A (zh) 2020-06-23

Family

ID=71163845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010135567.5A Pending CN111325333A (zh) 2020-03-02 2020-03-02 数据处理方法、神经网络处理器、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN111325333A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236929A1 (zh) * 2022-06-06 2023-12-14 上海寒武纪信息科技有限公司 基于指令读取数据中的目标数据的方法及其设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147963A (ja) * 1994-11-21 1996-06-07 Hitachi Ltd メモリチップ
JP2011259511A (ja) * 2011-09-29 2011-12-22 Seiko Epson Corp 画像処理装置及び画像処理方法
JP2012060447A (ja) * 2010-09-09 2012-03-22 Fujitsu Semiconductor Ltd 画像処理装置、撮像装置、及び画像処理方法
CN105630425A (zh) * 2015-12-31 2016-06-01 深圳市同创国芯电子有限公司 一种数据管理方法、装置及终端
WO2016121998A1 (ja) * 2015-01-31 2016-08-04 井上 克己 情報マッチング装置及びその方法
CN107678979A (zh) * 2017-10-19 2018-02-09 浪潮金融信息技术有限公司 数据存储方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147963A (ja) * 1994-11-21 1996-06-07 Hitachi Ltd メモリチップ
JP2012060447A (ja) * 2010-09-09 2012-03-22 Fujitsu Semiconductor Ltd 画像処理装置、撮像装置、及び画像処理方法
JP2011259511A (ja) * 2011-09-29 2011-12-22 Seiko Epson Corp 画像処理装置及び画像処理方法
WO2016121998A1 (ja) * 2015-01-31 2016-08-04 井上 克己 情報マッチング装置及びその方法
CN105630425A (zh) * 2015-12-31 2016-06-01 深圳市同创国芯电子有限公司 一种数据管理方法、装置及终端
CN107678979A (zh) * 2017-10-19 2018-02-09 浪潮金融信息技术有限公司 数据存储方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023236929A1 (zh) * 2022-06-06 2023-12-14 上海寒武纪信息科技有限公司 基于指令读取数据中的目标数据的方法及其设备

Similar Documents

Publication Publication Date Title
CN110602671B (zh) 蓝牙搜索结果展示方法、装置、终端设备及存储介质
CN111698553B (zh) 视频处理方法、装置、电子设备及可读存储介质
CN109285136B (zh) 一种图像的多尺度融合方法、装置、存储介质及终端
US11189001B2 (en) Image signal processor for generating a converted image, method of operating the image signal processor, and application processor including the image signal processor
US20160342192A1 (en) Variable Precision In Hardware Pipelines For Power Conservation
CN111340835A (zh) 基于fpga的视频图像边缘检测系统
CN114529658A (zh) 一种图形渲染方法及其相关设备
CN116842307A (zh) 数据处理方法、装置、设备、芯片及存储介质
CN110377342B (zh) 基于卷积神经网络的显存处理方法、装置及存储介质
CN106780415B (zh) 一种直方图统计电路及多媒体处理系统
CN111325333A (zh) 数据处理方法、神经网络处理器、存储介质及电子设备
CN107360361B (zh) 一种逆光拍摄人物方法及装置
CN111382831B (zh) 加速卷积神经网络模型前向推理的方法及装置
CN111710315A (zh) 图像显示方法、装置、存储介质及电子设备
CN111079771B (zh) 点读图像的特征提取方法、系统、终端设备及存储介质
CN115714839A (zh) 图像处理电路、装置、方法、芯片及电子设备
CN112416294B (zh) 处理器及其二进制累加方法和计算机可读介质
US10152766B2 (en) Image processor, method, and chipset for increasing intergration and performance of image processing
CN113128673B (zh) 数据处理方法、存储介质、神经网络处理器及电子设备
US11782850B2 (en) Information processing method, server, terminal, and computer storage medium
CN114070892A (zh) 数据传输方法和装置
CN115049529A (zh) 一种图像梯度确定方法、装置、设备及存储介质
US7551776B2 (en) Histogram generation apparatus and method for operating the same
CN113473012A (zh) 虚化处理方法、装置和电子设备
US20220122359A1 (en) Image processing method, apparatus, and storage medium

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