CN111382852A - 数据处理装置、方法、芯片及电子设备 - Google Patents
数据处理装置、方法、芯片及电子设备 Download PDFInfo
- Publication number
- CN111382852A CN111382852A CN201811625579.5A CN201811625579A CN111382852A CN 111382852 A CN111382852 A CN 111382852A CN 201811625579 A CN201811625579 A CN 201811625579A CN 111382852 A CN111382852 A CN 111382852A
- Authority
- CN
- China
- Prior art keywords
- data
- processing
- circuit
- decompressed
- decompression
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
- H03M7/3064—Segmenting
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)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Advance Control (AREA)
Abstract
本申请提供一种数据处理装置、方法、芯片及电子设备,所述数据处理装置用于执行机器学习计算,所述数据处理装置包括解压电路、主处理电路以及控制电路;所述解压电路的第一输入端与所述控制电路的第一输出端连接,所述主处理电路的第一输入端与所述控制电路的第二输出端连接,所述解压电路的第一输出端与所述主处理电路的第二输入端连接,该装置可以通过单独且逻辑简单的硬件电路(即解压电路)对待解压数据进行解压处理得到分块数据,进而从处理电路可以对分块数据进行不同的运算处理,该过程可以降低数据处理装置中主处理电路与从处理电路之间的数据带宽。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据处理装置、方法、芯片及电子设备。
背景技术
随着数字电子技术的不断发展,各类人工智能(Artificial Intelligence,AI)芯片的快速发展对于高性能数字处理装置的要求也越来越高。神经网络算法作为智能芯片广泛应用的算法之一,通常需要对大量的数据进行不同的运算处理。目前,数据处理装置可以对大量数据压缩后进行运算处理,并且运算处理前需要对压缩数据进行解压后才可以进行正常的运算处理。
但是,现有的数据处理装置是通过其中的一个电路模块对压缩后的数据直接进行解压处理,导致该电路与数据处理装置中的其它电路模块之间的数据带宽较大。
发明内容
基于此,有必要针对上述技术问题,提供一种数据处理装置、方法、芯片及电子设备。
本发明实施例提供一种数据处理装置,所述数据处理装置用于执行机器学习计算,所述数据处理装置包括解压电路、主处理电路以及控制电路;所述解压电路的第一输入端与所述控制电路的第一输出端连接,所述主处理电路的第一输入端与所述控制电路的第二输出端连接,所述解压电路的输出端与所述主处理电路的第二输入端连接;其中,所述控制电路用于解析运算处理指令得到解压处理参数,并将所述解压处理参数输入至所述解压电路,所述解压电路用于接收待解压数据,根据所述解压处理参数获取待解压数据中的信息,并根据所述信息以及所述解压处理参数,对所述待解压数据进行解压处理得到解压数据,所述主处理电路用于根据处理参数对接收到的所述解压数据进行分组处理。
在其中一个实施例中,所述数据处理装置还包括从处理电路、存储电路以及控制电路,所述从处理电路用于对接收到的分组数据进行累加运算以及内积运算,所述存储电路还用于存储原始数据,所述控制电路用于获取计算指令,并解析所述计算指令得到多个运算指令,将多个所述运算指令输入至所述解压电路以及所述主处理电路中。
在其中一个实施例中,所述解压电路的第二输入端与所述存储电路的输出端连接,所述解压电路的第一输出端与所述存储电路的输入端连接;所述主处理电路的第二输出端与所述从处理电路的输入端连接,所述从处理电路的输出端与所述主处理电路的第三输入端连接,所述存储电路的第二输入端与所述控制电路的第三输出端连接,所述存储电路的第二输出端与所述控制电路的输入端连接。
在其中一个实施例中,所述解压电路具体用于接收所述待解压数据,根据所述解压处理参数获取待解压数据中首部数据包含的信息,并根据待解压数据中首部数据包含的所述信息以及所述解压处理参数,对所述待解压数据进行解压处理得到解压数据。
在其中一个实施例中,所述主处理电路包括分组转发模块,所述分组转发模块用于接收所述解压电路输入的所述解压数据,以及所述控制电路输入的分组处理参数,并根据所述分组处理参数对所述解压数据进行分组处理。
本实施例提供的一种数据处理装置,该装置可以通过单独且逻辑简单的硬件电路(即解压电路)对待解压数据进行解压处理得到分块数据,进而从处理电路可以对分块数据进行不同的运算处理,该过程可以降低数据处理装置中主处理电路与从处理电路之间的数据带宽。
本发明实施例提供一种数据处理方法,所述方法包括:
接收待处理数据以及解压处理参数;
根据所述解压处理参数,获取所述待处理数据中的信息;
根据所述解压处理参数以及待处理数据中的所述信息,对所述待处理数据进行解压处理,得到解压数据;
根据处理参数对所述解压数据进行分组处理,得到分组数据。
在其中一个实施例,根据所述解压处理参数,获取所述待处理数据中的信息,包括:根据所述解压处理参数,获取所述待处理数据中包含的首部数据。
在其中一个实施例,所述根据待处理数据中的所述信息以及所述解压处理参数,对所述待处理数据进行解压处理,得到解压数据,包括:根据所述待处理数据中包含的首部数据以及所述解压处理参数,对所述待处理数据进行解压处理,得到解压数据。
在其中一个实施例,所述根据处理参数对所述解压数据进行分组处理,得到分组数据,包括:根据分组处理参数对所述解压数据进行分组处理,得到分组数据。
在其中一个实施例,在根据分组处理参数对所述解压数据进行分组处理,得到分组数据的步骤之后,还包括:通过从处理电路对所述分组数据进行并行运算处理。
本实施例提供的一种数据处理方法,该方法可以通过单独且逻辑简单的硬件电路对待处理的数据进行解压处理,从而可以有效降低数据处理装置中主处理电路与从处理电路之间的数据带宽。
本发明实施例提供的一种机器学习运算装置,该机器学习运算装置包括一个或者多个所述的数据处理装置;该机器学习运算装置用于从其它处理装置中获取待运算数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述数据处理装置间可以通过特定的结构进行链接并传输数据;
其中,多个所述数据处理装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
本发明实施例提供的一种组合处理装置,该组合处理装置包括如所述的机器学习处理装置、通用互联接口,和其它处理装置;该机器学习运算装置与上述其它处理装置进行交互,共同完成用户指定的操作;该组合处理装置还可以包括存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
本发明实施例提供的一种神经网络芯片,该神经网络芯片包括上述所述的数据处理装置、上述所述的机器学习运算装置或者上述所述的组合处理装置。
本发明实施例提供的一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述所述的神经网络芯片。
本发明实施例提供的一种板卡,该板卡包括上述所述的神经网络芯片封装结构。
本发明实施例提供了一种电子装置,该电子装置包括上述所述的神经网络芯片或者上述所述的板卡。
本发明实施例提供的一种芯片,包括至少一个如上述任一项所述的数据处理装置。
本发明实施例提供的一种电子设备,包括如所述的芯片。
附图说明
图1为一实施例提供的一种数据处理装置的结构示意图;
图2为另一实施例提供的一种数据处理装置的具体结构示意图;
图3为另一实施例提供的一种二维待解压数据进行解压处理的具体结构示意图;
图4为一实施例提供的一种对数据进行解压处理的方法流程示意图;
图5为一实施例提供的一种组合处理装置的结构图;
图6为一实施例提供的另一种组合处理装置的结构图;
图7为一实施例提供的一种板卡的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据处理装置可应用于AI芯片、现场可编程门阵列FPGA(Field-Programmable Gate Array,FPGA)芯片、或者是其它的硬件电路设备中对数据进行解压处理,其具体结构示意图如图1所示。
如图1所示为一实施例提供的一种数据处理装置的结构示意图。如图1所示,该数据处理装置用于执行机器学习计算;所述数据处理装置包括解压电路11、主处理电路12以及控制电路13;所述解压电路11的第一输入端与所述控制电路13的第一输出端连接,所述主处理电路12的第一输入端与所述控制电路13的第二输出端连接,所述解压电路11的第一输出端与所述主处理电路12的第二输入端连接。其中,所述控制电路13用于解析运算处理指令得到解压处理参数,并将所述解压处理参数输入至所述解压电路11,所述解压电路11用于接收待解压数据,根据所述解压处理参数获取待解压数据中的信息,并根据所述信息以及所述解压处理参数,对所述待解压数据进行解压处理得到解压数据,所述主处理电路12用于根据处理参数对接收到的所述解压数据进行分组处理。
可选的,所述机器学习计算包括:人工神经网络运算。可选的,如图2所示,所述数据处理装置还包括从处理电路14以及存储电路15,所述从处理电路14用于对接收到的分组数据进行累加运算以及内积运算,所述存储电路15用于存储原始数据;所述控制电路13还用于获取计算指令,并解析所述计算指令得到多个运算指令,将多个所述运算指令输入至所述解压电路11以及所述主处理电路12中。
可选的,所述解压电路11的第二输入端与所述存储电路15的第一输出端连接,所述解压电路11的第一输出端与所述存储电路15的第一输入端连接。所述主处理电路12的第二输出端与所述从处理电路14的输入端连接,所述从处理电路14的输出端与所述主处理电路12的第三输入端连接,所述存储电路15的第二输入端与所述控制电路13的第三输出端连接,所述存储电路15的第二输出端与所述控制电路13的输入端连接。
可选的,所述解压电路11具体用于接收所述待解压数据,根据所述解压处理参数获取待解压数据中首部数据包含的信息,并根据待解压数据中首部数据包含的所述信息以及所述解压处理参数,对所述待解压数据进行解压处理得到解压数据。
具体的,数据处理装置中的解压电路11可以接收存储电路15输入的待解压数据,以及控制电路13输入的解压处理参数,并根据解压处理参数获取待解压数据中的信息,根据待解压数据中的信息以及解压处理参数,对待解压数据进行解压处理得到解压数据,并将这些解压数据输入至主处理电路12,主处理电路12可以接收控制电路13输入的处理参数,并根据处理参数对接收到的解压数据再进行分组处理,可以得到多组分组数据。可选的,主处理电路12可以接收控制电路13输入的处理参数,该处理参数可以包括分组处理参数。可选的,待解压数据可以为压缩格式的数据,该压缩格式的数据可以包括两部分,分别为首部数据和尾部数据,该尾部数据包含的信息可以为压缩的具体数据,首部数据包含的信息可以包括数据块的大小以及尾部数据的起始地址等信息。可选的,上述解压处理参数可以包括压缩格式数据中尾部数据的起始地址,尾部数据的长度以及解压所需的参数等。可选的,上述解压所需的参数可以包括哈夫曼解码表,游程解码表以及基于字典的解码表等等。一般,解压电路11可以根据待解压数据中的信息以及解压所需的参数,对待解压数据进行解压处理,得到解压数据,也就是待解压数据中的尾部数据,该尾部数据可以为分块数据,即为解压数据。可选的,解压数据可以为分块数据,也就是待解压数据未进行压缩处理前的数据。
需要说明的是,数据处理装置可以包括多个从处理电路14。可选的,控制电路13可以接收解压运算指令,该指令可以是存储电路15输入的,该控制电路13还可以解析运算指令得到解压处理参数,并将解压处理参数输入至主处理电路12。可选的,解压电路11可以接收控制电路13输入解压处理参数,对存储电路15输入的待解压数据,进行解压处理得到对应数量的分块数据,也就是说,每一个待解压数据可以得到一个分块数据。可选的,压缩格式数据中的尾部数据的分布类型可以为一维紧密型,二维紧密型,三维紧密型,还可以为其它任意维度紧密型。
示例性的,若尾部数据中包含多个压缩格式的数据,一个压缩格式的数据后连续相接下一个压缩格式的数据,依次类推,连续分布多个压缩格式的数据,该种分布形式可以为一维紧密型;若多个压缩格式的数据分布的形式是固定位宽大小,即可以为8比特位宽的矩阵分布形式,并且第一个压缩格式的数据为6比特位宽的数据“010100”,第二个压缩格式数据可以为6比特位宽的数据“101101”,则第二个压缩格式数据的高2位数值“10”可以连续相接第一个压缩数据后,即“01010010”这8个数值位于同一行,第二个压缩格式的数据的低4位数值“1101”可以分布于第二行,然后相连第三个压缩数据,依次类推,每一行存储的数值位数是固定的,多余的数值可以分布于下一行,该种分布形式可以称为二维紧密型;若多个压缩格式的数据分布的形式可以为多个固定大小的矩阵分布,即分别可以为8位*8位的多个矩阵分布形式,若第一个压缩格式的数据为6比特位宽的数据“010100”,第二个压缩格式数据可以为6比特位宽的数据“101101”,则第二个压缩格式数据的高2位数值“10”可以连续相接第一个压缩格式的数据后,即“01010010”这8个数值位于同一行,第二个压缩格式的数据的低4位数值“1101”分布于第二行,然后相连第三个压缩数据,依次类推,每一行存储的数值位数是固定的,多余的数值可以分布于下一行,当压缩格式的数据将第一个固定大小的矩阵框分布完后,可以继续将压缩格式的数据分布于第二个固定大小的矩阵框,依次类推,直到将所有压缩格式的数据全部分布完为止,该种分布形式可以称为三维紧密型。
可选的,解压电路11可以将解压数据输入至主处理电路12进行后续的不同运算处理,还可以将解压数据返回至存储电路15写入外部存储,等待后续读入。可选的,上述控制电路13还可以对接收到的分组指令进行解析,得到分组处理参数。
另外,继续参见图2,上述数据处理装置还可以包括直接内存访问单元。可选的,上述数据处理装置中的存储电路15可以包括:寄存器、缓存中任意组合。缓存可以存储输入数据,寄存器可以存储输入数据中标量数据,缓存可以包括高速暂存缓存。可选的,控制电路13可以包括:指令缓存单元131、指令处理单元132以及存储队列单元133,其中,指令缓存单元131可以存储人工神经网络运算关联的计算指令,指令处理单元132可以对计算指令解析得到多个运算指令,存储队列单元133可以存储指令队列,该指令队列可以包括:按该队列的前后顺序待执行的多个运算指令或计算指令。
可选的,上述控制电路13还可以包括依赖关系处理单元134,该依赖关系处理单元134用于在具有多个运算指令时,确定第一运算指令与所述第一运算指令之前的第零运算指令是否存在关联关系,如所述第一运算指令与所述第零运算指令存在关联关系,则将所述第一运算指令缓存在所述指令存储单元内,在所述第零运算指令执行完毕后,从所述指令存储单元提取所述第一运算指令传输至所述运算单元。
所述确定该第一运算指令与第一运算指令之前的第零运算指令是否存在关联关系包括:依据所述第一运算指令提取所述第一运算指令中所需数据(例如矩阵)的第一存储地址区间,依据所述第零运算指令提取所述第零运算指令中所需矩阵的第零存储地址区间,如所述第一存储地址区间与所述第零存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第零运算指令具有关联关系,如所述第一存储地址区间与所述第零存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第零运算指令不具有关联关系。
本实施例提供的一种数据处理装置,该装置包括主处理电路以及解压电路,在对待解压数据进行不同的运算处理前,该装置可以通过单独且逻辑简单的硬件电路(即解压电路),根据解压处理参数对待解压数据进行解压处理得到解压数据,进而从处理电路可以对解压数据进行不同的运算处理,该过程可以降低数据处理装置中主处理电路与从处理电路之间的数据带宽。
如图2所示为另一个实施例提供的一种数据处理装置中主从处理电路的具体结构示意图,其中,数据处理装置包括所述主处理电路12,该主处理电路12包括分组转发模块121,所述分组转发模块121用于接收所述解压电路11输入的所述解压数据,以及所述控制电路13输入的分组处理参数,并根据所述分组处理参数对所述解压数据进行分组处理。
具体的,主处理电路12可以接收解压电路11输入的解压数据,还可以接收控制电路13输入的分组处理参数。可选的,分组处理参数可以包括分组的数量以及分组的方法等信息,该分组的方法可以为基于步长的划分法,随机划分法以及聚类划分法等等。可选的,解压电路11可以根据分块数据的具体分布以及功耗、面积、压缩率等实际需求,确定神经网络中一般采用基于步长的划分方式对解压数据进行分组处理。可选的,基于步长的划分方式可以表征为,根据数据的特性按照固定大小的矩形框对数据进行划分,该特性可以为空间相似性,稀疏性或者满足具体的概率分布,还可以为其它特性,对此本实施例不做任何限定。可选的,具体的概率分布可以为高斯分布,还可以为其它概率分布。
需要说明的是,主处理电路12可以对接收到的解压数据进行分组处理得到多组分组数据,并通过多个从处理电路14对多组分组数据进行并行运算处理。
示例性的,参见图3所示,若待解压数据为二维数据,并且解压电路11对8个待解压数据进行解压处理后得到8个解压数据,即8个分块数据,可以表示为数据块0,数据块1,数据块2,数据块3,数据块4,数据块5,数据块6,数据块7,并对这8个数据块进行分组处理后可以得到两组分组数据,其中,每一个待解压数据进行解压处理可以得到一个解压数据,即待解压数据0进行解压处理可以得到一个解压数据0,该待解压数据0包括首部(head)数据0以及尾部(data)数据0,依次类推,其它待解压数据也可以得到对应的解压数据,并将这8个解压数据进行分组处理,可以得到两组分组数据,即group1和group2,最后数据处理装置可以将这两组分组数据分别发送至两个从处理单元进行并行运算处理。
本实施例提供的一种数据处理装置,该装置中的主处理电路包括分组转发模块,通过分组转发模块可以对解压数据进行分组处理,得到多组分组数据,并将多组分组数据发送至多个从处理单元,对多组分组数据进行并行运算处理,从而提高数据处理装置的运算效率;另外,数据处理装置还可以根据不同的特性对解压数据进行分组,能够到达最优的带宽效率。
图4为一实施例提供的数据处理方法的流程示意图,该方法可以通过图1所示的数据处理装置进行处理,本实施例涉及的是对数据进行解压的过程。如图4所示,该方法包括:
S101、接收待处理数据。
具体的,数据处理装置中的解压电路可以接收存储电路输入的待处理数据。其中,待处理的数据格式可以为压缩格式的数据。
S102、根据解压处理参数,获取所述待处理数据中的信息。
可选的,上述S102中根据解压处理参数,获取所述待处理数据中的信息包括:根据所述解压处理参数,获取所述待处理数据中首部数据包含的信息。
具体的,上述解压处理参数可以包括压缩格式数据中尾部数据的起始地址,尾部数据的长度以及解压所需的参数等。可选的,数据处理装置中的解压电路可以根据解压处理参数包含的待处理参数中首部数据的地址,以及首部数据的大小,获取待处理数据中对应首部数据中包含的尾部数据的地址,以及尾部数据的大小。可选的,上述解压处理参数可以是解压电路预先存储的。
S103、根据所述解压处理参数以及待处理数据中的所述信息,对所述待处理数据进行解压处理,得到解压数据。
可选的,所述根据待处理数据中的所述信息以及所述解压处理参数,对所述待处理数据进行解压处理,得到解压数据,包括:根据所述待处理数据中首部数据包含的信息以及所述解压处理参数,对所述待处理数据进行解压处理,得到解压数据。
具体的,数据处理装置中的解压电路可以根据接收到的解压处理参数包含的解压所需的参数,以及待处理数据中对应首部数据中,包含的尾部数据的地址和尾部数据的大小,提取解压数据。可选的,解压数据可以为待解压数据在压缩处理前得到的分块数据。可选的,上述解压所需的参数可以为哈夫曼解码表,游程解码表或基于字典的解码表等等。可选的,解压电路可以根据尾部数据的地址和尾部数据的大小,按照解压所需的参数中解码表中数据的顺序,查找正确分布的分块数据。
S104、根据处理参数对所述解压数据进行分组处理,得到分组数据。
具体的,上述处理参数可以包括分组处理参数以及分块处理参数等等。可选的,上述处理参数可以是分组转发模块预先存储的。
本实施例提供的一种数据处理方法,数据处理装置接收待处理数据以及解压处理参数,根据所述解压处理参数,获取所述待处理数据中的信息,根据所述解压处理参数以及待处理数据中的所述信息,对所述待处理数据进行解压处理,得到解压数据,根据处理参数对所述解压数据进行分组处理,得到分组数据,并将分组后的多组分组数据输入至多个从处理电路,从而通过多个从处理电路对待处理数据可以进行并行运算处理,以提高数据处理装置的运算效率;另外,该方法还可以根据不同的特性对压缩数据进行分组,能够到达最优的带宽效率。
在其中一个实施例中,所述处理参数可以包括分组处理参数,所述根据所述处理参数对所述解压数据进行分组处理,得到分组数据,包括:根据分组处理参数对所述解压数据进行分组处理,得到分组数据。
可选的,所述根据分组处理参数对所述解压数据进行分组处理,得到分组数据的步骤之后,还包括:通过从处理电路对所述分组数据进行并行运算处理。
具体的,上述分组处理参数可以包括分组的数量以及分组的方法等信息,该分组的方法可以为基于步长的划分法,随机划分法以及聚类划分法等等。可选的,分组转发模块可以根据解压数据的具体分布以及功耗、面积、压缩率等实际需求,确定神经网络中一般采用基于步长的划分方式对解压数据进行分组处理。可选的,分组转发模块可以根据接收到的分组处理参数对解压数据进行分组处理,得到多组分组数据,并将这多组分组数据发送至多个从处理电路,该多组从处理电路可以对多组分组数据进行并行运算处理。可选的,上述不同运算处理可以包括向量累加运算,向量内积运算,向量比较运算以及矩阵转置处理等。另外,分组处理参数还可以是分组转发模块预先存储的分组处理参数。
需要说明的是,主处理电路中的分组转发模块可以根据分组处理参数将解压数据进行分组处理,得到多组分组数据,并可以将多组分组数据并行发送给多个从处理电路中,其中,每组分组数据可以发送给一个从处理电路,多个从处理电路可以对多组分组数据进行并行运算处理得到运算结果,并可以将该运算结果返回至主处理电路,主处理电路还可以对该运算结果进行一些后续运算处理,并将后续运算处理的结果返回至分块压缩电路,最后分块压缩电路可以对后续运算处理的结果进行分块处理以及压缩处理后,将压缩后的结果发送至存储电路,存储电路还可以对压缩后的结果进行下一阶段的运算处理。
另外,若从处理电路可以对解压数据进行乘法运算,则可以将乘法运算的结果返回至主处理电路,并且上述主处理电路可以对该乘法运算结果进行一些后续处理,该后续处理可以包括累加以及激活运算处理。
本实施例提供的一种数据处理方法,数据处理装置还可以根据处理参数对解压数据进行分组处理,得到多组分组数据,并将分组后的多组分组数据输入至多个从处理电路,从而通过多个从处理电路对待处理数据可以进行并行运算处理,以提高数据处理装置的运算效率;另外,该方法还可以根据不同的特性对压缩数据进行分组,能够到达最优的带宽效率。
本申请实施例还提供了一个机器学习运算装置,其包括一个或多个在本申请中提到的数据处理装置,用于从其它处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上数据处理装置时,数据处理装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。
该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
本申请实施例还提供了一个组合处理装置,其包括上述的机器学习运算装置,通用互联接口,和其它处理装置。机器学习运算装置与其它处理装置进行交互,共同完成用户指定的操作。图5为组合处理装置的示意图。
其它处理装置,包括中央处理器CPU、图形处理器GPU、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其它处理装置所包括的处理器数量不做限制。其它处理装置作为机器学习运算装置与外部数据和控制的接口,包括数据搬运,完成对本机器学习运算装置的开启、停止等基本控制;其它处理装置也可以和机器学习运算装置协作共同完成运算任务。
通用互联接口,用于在所述机器学习运算装置与其它处理装置间传输数据和控制指令。该机器学习运算装置从其它处理装置中获取所需的输入数据,写入机器学习运算装置片上的存储装置;可以从其它处理装置中获取控制指令,写入机器学习运算装置片上的控制缓存;也可以读取机器学习运算装置的存储模块中的数据并传输给其它处理装置。
可选的,该结构如图6所示,还可以包括存储装置,存储装置分别与所述机器学习运算装置和所述其它处理装置连接。存储装置用于保存在所述机器学习运算装置和所述其它处理装置的数据,尤其适用于所需要运算的数据在本机器学习运算装置或其它处理装置的内部存储中无法全部保存的数据。
该组合处理装置可以作为手机、机器人、无人机、视频监控设备等设备的SOC片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。此情况时,该组合处理装置的通用互联接口与设备的某些部件相连接。某些部件譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口。
在一些实施例里,还申请了一种芯片,其包括了上述机器学习运算装置或组合处理装置。
在一些实施例里,申请了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,申请了一种板卡,其包括了上述芯片封装结构。如图7所示,图7提供了一种板卡,上述板卡除了包括上述芯片389以外,还可以包括其它的配套部件,该配套部件包括但不限于:存储器件390、接收装置391和控制器件392;
所述存储器件390与所述芯片封装结构内的芯片通过总线连接,用于存储数据。所述存储器件可以包括多组存储单元393。每一组所述存储单元与所述芯片通过总线连接。可以理解,每一组所述存储单元可以是DDR SDRAM(英文:Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,所述存储装置可以包括4组所述存储单元。每一组所述存储单元可以包括多个DDR4颗粒(芯片)。在一个实施例中,所述芯片内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组所述存储单元中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组所述存储单元包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在所述芯片中设置控制DDR的控制器,用于对每个所述存储单元的数据传输与数据存储的控制。
所述接收装置与所述芯片封装结构内的芯片电连接。所述接收装置用于实现所述芯片与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,所述接收装置可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至所述芯片,实现数据转移。优选的,当采用PCIE 3.0 X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,所述接收装置还可以是其它的接口,本申请并不限制上述其它的接口的具体表现形式,所述接口单元能够实现转接功能即可。另外,所述芯片的计算结果仍由所述接收装置传送回外部设备(例如服务器)。
所述控制器件与所述芯片电连接。所述控制器件用于对所述芯片的状态进行监控。具体的,所述芯片与所述控制器件可以通过SPI接口电连接。所述控制器件可以包括单片机(Micro Controller Unit,MCU)。如所述芯片可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,所述芯片可以处于多负载和轻负载等不同的工作状态。通过所述控制装置可以实现对所述芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一些实施例里,申请了一种电子设备,其包括了上述板卡。
电子设备可以为数据处理器、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的电路组合,但是本领域技术人员应该知悉,本申请并不受所描述的电路组合方式的限制,因为依据本申请,某些电路可以采用其它方式或者结构实现。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的器件和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (17)
1.一种数据处理装置,其特征在于,所述数据处理装置用于执行机器学习计算,所述数据处理装置包括解压电路、主处理电路以及控制电路;所述解压电路的第一输入端与所述控制电路的第一输出端连接,所述主处理电路的第一输入端与所述控制电路的第二输出端连接,所述解压电路的第一输出端与所述主处理电路的第二输入端连接;其中,所述控制电路用于解析运算处理指令得到解压处理参数,并将所述解压处理参数输入至所述解压电路,所述解压电路用于接收待解压数据,根据所述解压处理参数获取待解压数据中的信息,并根据所述信息以及所述解压处理参数,对所述待解压数据进行解压处理得到解压数据,所述主处理电路用于根据处理参数对接收到的所述解压数据进行分组处理。
2.根据权利要求1中所述的数据处理装置,其特征在于,所述数据处理装置还包括从处理电路、存储电路以及控制电路,所述从处理电路用于对接收到的分组数据进行累加运算以及内积运算,所述存储电路用于存储原始数据;所述控制电路还用于获取计算指令,并解析所述计算指令得到多个运算指令,将多个所述运算指令输入至所述解压电路以及所述主处理电路中。
3.根据权利要求2中所述的数据处理装置,其特征在于,所述解压电路的第二输入端与所述存储电路的输出端连接,所述解压电路的第二输出端与所述存储电路的输入端连接;所述主处理电路的第二输出端与所述从处理电路的输入端连接,所述从处理电路的输出端与所述主处理电路的第三输入端连接,所述存储电路的第二输入端与所述控制电路的第三输出端连接,所述存储电路的第二输出端与所述控制电路的输入端连接。
4.根据权利要求1中所述的数据处理装置,其特征在于,所述解压电路具体用于接收所述待解压数据,根据所述解压处理参数获取待解压数据中首部数据包含的信息,并根据待解压数据中首部数据包含的所述信息以及所述解压处理参数,对所述待解压数据进行解压处理得到解压数据。
5.根据权利要求1中所述的数据处理装置,其特征在于,所述主处理电路包括分组转发模块,所述分组转发模块用于接收所述解压电路输入的所述解压数据,以及所述控制电路输入的分组处理参数,并根据所述分组处理参数对所述解压数据进行分组处理。
6.一种数据处理方法,其特征在于,所述方法,包括:
接收待处理数据以及解压处理参数;
根据所述解压处理参数,获取所述待处理数据中的信息;
根据所述解压处理参数以及待处理数据中的所述信息,对所述待处理数据进行解压处理,得到解压数据;
根据处理参数对所述解压数据进行分组处理,得到分组数据。
7.根据权利要求6中所述的方法,其特征在于,所述根据所述解压处理参数,获取所述待处理数据中的信息,包括:根据所述解压处理参数,获取所述待处理数据中首部数据包含的信息。
8.根据权利要求7中所述的方法,其特征在于,所述根据待处理数据中的所述信息以及所述解压处理参数,对所述待处理数据进行解压处理,得到解压数据,包括:根据所述待处理数据中首部数据包含的信息以及所述解压处理参数,对所述待处理数据进行解压处理,得到解压数据。
9.根据权利要求6中所述的方法,其特征在于,所述根据处理参数对所述解压数据进行分组处理,得到分组数据,包括:根据分组处理参数对所述解压数据进行分组处理,得到分组数据。
10.根据权利要求9中所述的方法,其特征在于,在根据分组处理参数对所述解压数据进行分组处理,得到分组数据的步骤之后,还包括:通过从处理电路对所述分组数据进行并行运算处理。
11.一种机器学习运算装置,其特征在于,所述机器学习运算装置包括一个或多个如权利要求1-5任一项所述的数据处理装置,用于从其它处理装置中获取待运算输入数据和控制信息,并执行指定的机器学习运算,将执行结果通过I/O接口传递给其它处理装置;
当所述机器学习运算装置包含多个所述数据处理装置时,所述多个所述计算装置间可以通过特定的结构进行连接并传输数据;
其中,多个所述数据处理装置通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算;多个所述数据处理装置共享同一控制系统或拥有各自的控制系统;多个所述数据处理装置共享内存或者拥有各自的内存;多个所述数据处理装置的互联方式是任意互联拓扑。
12.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求11所述的机器学习运算装置,通用互联接口和其它处理装置;
所述机器学习运算装置与所述其它处理装置进行交互,共同完成用户指定的计算操作。
13.根据权利要求12所述的组合处理装置,其特征在于,还包括:存储装置,该存储装置分别与所述机器学习运算装置和所述其它处理装置连接,用于保存所述机器学习运算装置和所述其它处理装置的数据。
14.一种神经网络芯片,其特征在于,所述机器学习芯片包括如权利要求11所述的机器学习运算装置或如权利要求12所述的组合处理装置或如权利要求12所述的组合处理装置。
15.一种电子设备,其特征在于,所述电子设备包括如所述权利要求14所述的芯片。
16.一种板卡,其特征在于,所述板卡包括:存储器件、接收装置和控制器件以及如权利要求14所述的神经网络芯片;
其中,所述神经网络芯片与所述存储器件、所述控制器件以及所述接收装置分别连接;
所述存储器件,用于存储数据;
所述接收装置,用于实现所述芯片与外部设备之间的数据传输;
所述控制器件,用于对所述芯片的状态进行监控。
17.根据权利要求16所述的板卡,其特征在于,
所述存储器件包括:多组存储单元,每一组所述存储单元与所述芯片通过总线连接,所述存储单元为:DDR SDRAM;
所述芯片包括:DDR控制器,用于对每个所述存储单元的数据传输与数据存储的控制;
所述接收装置为:标准PCIE接口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625579.5A CN111382852B (zh) | 2018-12-28 | 2018-12-28 | 数据处理装置、方法、芯片及电子设备 |
PCT/CN2019/121056 WO2020114283A1 (zh) | 2018-12-07 | 2019-11-26 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625579.5A CN111382852B (zh) | 2018-12-28 | 2018-12-28 | 数据处理装置、方法、芯片及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382852A true CN111382852A (zh) | 2020-07-07 |
CN111382852B CN111382852B (zh) | 2022-12-09 |
Family
ID=71216416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811625579.5A Active CN111382852B (zh) | 2018-12-07 | 2018-12-28 | 数据处理装置、方法、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111382852B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257859A (zh) * | 2020-10-30 | 2021-01-22 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5097261A (en) * | 1989-11-22 | 1992-03-17 | International Business Machines Corporation | Data compression for recording on a record medium |
CN103384884A (zh) * | 2012-12-11 | 2013-11-06 | 华为技术有限公司 | 一种文件压缩方法、文件解压缩方法、装置及服务器 |
CN104753540A (zh) * | 2015-03-05 | 2015-07-01 | 华为技术有限公司 | 数据压缩方法、数据解压方法和装置 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
-
2018
- 2018-12-28 CN CN201811625579.5A patent/CN111382852B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5097261A (en) * | 1989-11-22 | 1992-03-17 | International Business Machines Corporation | Data compression for recording on a record medium |
CN103384884A (zh) * | 2012-12-11 | 2013-11-06 | 华为技术有限公司 | 一种文件压缩方法、文件解压缩方法、装置及服务器 |
CN104753540A (zh) * | 2015-03-05 | 2015-07-01 | 华为技术有限公司 | 数据压缩方法、数据解压方法和装置 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
Non-Patent Citations (1)
Title |
---|
伍东等: "海量数据并行压缩算法研究", 《山西电子技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257859A (zh) * | 2020-10-30 | 2021-01-22 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111382852B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522052B (zh) | 一种计算装置及板卡 | |
CN110163363B (zh) | 一种计算装置及方法 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN110909870B (zh) | 训练装置及方法 | |
US11775808B2 (en) | Neural network computation device and method | |
US20200242468A1 (en) | Neural network computation device, neural network computation method and related products | |
CN109740729B (zh) | 运算方法、装置及相关产品 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
CN110059809B (zh) | 一种计算装置及相关产品 | |
CN111124995A (zh) | 通过人工智能处理器处理一维复数数组的方法和设备 | |
CN111382852B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111382856B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN109711538B (zh) | 运算方法、装置及相关产品 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
CN111381882B (zh) | 数据处理装置及相关产品 | |
CN111382853B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111260070B (zh) | 运算方法、装置及相关产品 | |
CN111382855B (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN111381878A (zh) | 数据处理装置、方法、芯片及电子设备 | |
CN112232498B (zh) | 一种数据处理装置、集成电路芯片、电子设备、板卡和方法 | |
CN111381806A (zh) | 数据比较器、数据处理方法、芯片及电子设备 | |
CN111384944B (zh) | 全加器、半加器、数据处理方法、芯片及电子设备 | |
CN118277305A (zh) | 降低运算耗时的设备与方法 | |
CN115237370A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |