CN109389213B - 存储装置及方法、数据处理装置及方法、电子装置 - Google Patents

存储装置及方法、数据处理装置及方法、电子装置 Download PDF

Info

Publication number
CN109389213B
CN109389213B CN201710653834.6A CN201710653834A CN109389213B CN 109389213 B CN109389213 B CN 109389213B CN 201710653834 A CN201710653834 A CN 201710653834A CN 109389213 B CN109389213 B CN 109389213B
Authority
CN
China
Prior art keywords
data
storage space
control unit
storage
neural network
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.)
Active
Application number
CN201710653834.6A
Other languages
English (en)
Other versions
CN109389213A (zh
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.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information 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 Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to CN201710653834.6A priority Critical patent/CN109389213B/zh
Publication of CN109389213A publication Critical patent/CN109389213A/zh
Application granted granted Critical
Publication of CN109389213B publication Critical patent/CN109389213B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

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

Abstract

本公开提供了一种存储装置及方法、数据处理装置及方法、电子装置,包括非易失性内存和内存控制单元。

Description

存储装置及方法、数据处理装置及方法、电子装置
技术领域
本公开属于数据处理技术领域,更具体地涉及存储装置及方法、数据处理装置及方法、电子装置。
背景技术
神经网络(neural network)已经获得了非常成功的应用。但是神经网络的大规模参数成为神经网络应用的一个巨大挑战。一方面,大规模的权值对存储容量提出了很高的要求,另一方面,大规模权值会导致巨大的访存能耗。
用传统的DRAM(Dynamic Random Access Memory)存储神经网络权值已经无法满足神经网络应用的需求,一方面,DRAM存储容量有限,需要不断在外存与DRAM之间传输数据,从而导致访存延迟增大,片外访存能耗增加,性能下降;另一方面,DRAM访存能耗大,大规模权值会带来密集的访存操作,从而导致巨大的访存能耗。因此,如何存储神经网络的参数成为一个亟待解决的问题。
公开内容
(一)要解决的技术问题
有鉴于此,本公开提供了存储装置及方法、数据处理装置及方法、电子装置,以期解决上述问题。
(二)技术方案
一种存储装置,包括:非易失性内存,包括至少两个存储空间,不同存储空间用于存储不同类型的数据;内存控制单元,用于控制非易失性内存的读写。
在本公开一些示例性实施例中,所述内存控制单元包括与存储空间相同数量的子控制单元,每一子控制单元对应控制一个存储空间的读写。
在本公开一些示例性实施例中,根据数据的读写特点划分所述不同类型的数据。
在本公开一些示例性实施例中,所述不同类型的数据包括:第一类数据,被读取的次数多于被写入的次数;第二类数据,被读取的次数约等于被写入的次数;第三类数据,被读取的次数少于被写入的次数。
在本公开一些示例性实施例中,所述非易失性内存包括:第一存储空间,用于存储第一类数据;第二存储空间,用于存储第二类数据;第三存储空间,用于存储第三类数据。
在本公开一些示例性实施例中,所述内存控制单元包括:第一子控制单元,用于控制第一存储空间的读写;第二子控制单元,用于控制第二存储空间的读写;第三子控制单元,用于控制第三存储空间的读写。
在本公开一些示例性实施例中,所述第一子控制单元用于在读取第一存储空间中的第一类数据时,调高时钟的频率,加速第一类数据读取速度;所述第二子控制单元用于在第二类数据被写入第二存储空间时,调高时钟的频率,加速第二类数据写入速度;所述第三子控制单元用于在第三类数据被写入第三存储空间时,将时钟频率调到最高频率,在读取第三存储空间中的第三类数据时,将时钟频率调到最低工作频率。
在本公开一些示例性实施例中,非易失性内存包括ReRAM、STT-RAM或PCM。
一种数据处理装置,包括运算装置和上述的存储装置;所述非易失性内存用于接收指令序列和运算参数,并将指令序列和运算参数存储于不同的存储空间中;所述运算装置用于从所述非易失性内存读取指令序列和运算参数并进行运算。
在本公开一些示例性实施例中,所述非易失性内存的第二存储空间用于存储指令序列。
在本公开一些示例性实施例中,所述运算装置为神经网络处理器。
在本公开一些示例性实施例中,所述指令序列包括神经网络专用指令,所述神经网络专用指令包括控制指令、数据传输指令、运算指令和逻辑指令。
在本公开一些示例性实施例中,所述运算参数为神经网络参数,包括输入神经元、权值和输出神经元;非易失性内存的第一存储空间用于存储权值;非易失性内存的第二存储空间用于存储输入神经元;非易失性内存的第三存储空间用于存储输出神经元。
在本公开一些示例性实施例中,所述运算装置为通用运算处理器。
在本公开一些示例性实施例中,所述神经网络处理器包括控制单元和运算单元;所述控制单元用于接收指令序列,经过译码生成控制信息控制运算单元执行运算;所述运算单元用于执行神经网络运算。
在本公开一些示例性实施例中,所述神经网络处理器还包括缓存,所述缓存连接非易失性内存与控制单元、运算单元,用于缓存指令序列和神经网络参数。
在本公开一些示例性实施例中,所述缓存包括指令缓存、输入神经元缓存、权值缓存和输出神经元缓存;所述指令缓存用于缓存指令序列;所述输入神经元缓存用于缓存输入神经元;所述权值缓存用于缓存权值;所述输出神经元缓存用于缓存计算结果。
在本公开一些示例性实施例中,还包括硬盘,所述硬盘连接非易失性内存,用于将运算参数和指令序列传输至非易失性内存。
在本公开一些示例性实施例中,所述运算单元包括:乘法器,用于将第一输入数据和第二输入数据进行相乘运算得到输出数据;和/或,加法器,多个所述加法器组成加法树,用于将第一输入数据通过加法树逐级相加,或者将第一输入数据通过加法树累加之后和第二输入数据相加得到输出数据;和/或,激活函数单元,用于将输入数据通过激活函数运算得到激活输出数据;和/或,池化单元,将输入数据通过池化运算得到池化操作之后的输出数据。
在本公开一些示例性实施例中,池化操作包括平均值池化,最大值池化或中值池化。
在本公开一些示例性实施例中,激活函数包括sigmoid、tanh、relu或softmax。
在本公开一些示例性实施例中,所述激活函数单元用于非线性函数运算。
在本公开一些示例性实施例中,运算单元包括多个处理单元和至少一个算数逻辑运算单元;所述处理单元包含乘法器、加法器、比较器、寄存器或寄存器组,用于完成数据的相乘、累加、比较和存储操作;所述算数逻辑运算单元用于完成激活操作、基本运算或非线性运算操作。
在本公开一些示例性实施例中,当运算单元处理卷积或全连接运算时,所述处理单元用于:将第一输入数据和第二输入数据相乘得到相乘之后的输出;将寄存器中的数据取出和所述相乘后的输出结果累加,得到累加结果;所述累加结果被写回寄存器或寄存器组,同时将其中一个输入数据向水平方向或竖直方向传递。
在本公开一些示例性实施例中,当运算单元处理向量内积时,所述处理单元用于:将第一输入数据和第二输入数据相乘得到相乘之后的输出;将从其他处理单元传入来的数据和所述相乘后的结果累加,得到累加结果;将累加结果向水平方向或竖直方向传递。
在本公开一些示例性实施例中,当运算单元处理池化运算时,所述处理单元用于:利用加法器或比较器完成池化运算,中间产生的临时数据保存在寄存器中。
一种电子装置,包括上述的数据处理装置。
一种存储方法,包括:将不同类型的数据存储至非易失性内存的至少两个存储空间;内存控制单元控制所述非易失性内存进行读写。
在本公开一些示例性实施例中,将内存控制单元分为与存储空间数量相同的子控制单元;每一子控制单元对应控制一个存储空间进行读写。
在本公开一些示例性实施例中,根据数据的读写特点划分所述不同类型的数据。
在本公开一些示例性实施例中,根据数据读写特点,将数据分为:第一类数据,被读取的次数多于被写入的次数;第二类数据,被读取的次数约等于被写入的次数;第三类数据,被读取的次数少于被写入的次数。
在本公开一些示例性实施例中,在非易失性内存中,第一存储空间存储第一类数据;第二存储空间存储第二类数据;第三存储空间存储第三类数据。
在本公开一些示例性实施例中,在内存控制单元中,第一子控制单元控制第一存储空间的读写;第二子控制单元控制第二存储空间的读写;第三子控制单元控制第三存储空间的读写。
在本公开一些示例性实施例中,当读取第一存储空间中的第一类数据时,所述第一子控制单元调高时钟的频率,加速第一类数据读取速度;当第二类数据被写入第二存储空间时,所述第二子控制单元调高时钟的频率,加速第二类数据写入速度;当第三类数据被写入第三存储空间时,所述第三子控制单元将时钟频率调到最高频率,当读取第三存储空间中的第三类数据时,所述第三子控制单元将时钟频率调到最低工作频率。
在本公开一些示例性实施例中,非易失性内存包括ReRAM、STT-RAM或PCM。
一种数据处理方法,包括:非易失性内存接收指令序列和运算参数,并将指令序列和运算参数存储于不同的存储空间中;运算装置从所述非易失性内存读取指令序列和运算参数,并进行运算。
在本公开一些示例性实施例中,将指令序列存储于非易失性内存的第二存储空间。
在本公开一些示例性实施例中,所述运算装置为神经网络处理器。
在本公开一些示例性实施例中,所述指令序列包括神经网络专用指令,所述神经网络专用指令包括控制指令、数据传输指令、运算指令和/或逻辑指令。
在本公开一些示例性实施例中,所述运算参数为神经网络参数,包括输入神经元、权值和输出神经元;将所述权值存储于非易失性内存的第一存储空间;将输入神经元存储于非易失性内存的第二存储空间;将输出神经元存储于非易失性内存的第三存储空间。
在本公开一些示例性实施例中,所述运算装置为通用运算处理器。
在本公开一些示例性实施例中,所述神经网络处理器包括控制单元和运算单元;
控制单元接收指令序列,译码生成控制信息并控制运算单元执行运算;
运算单元执行神经网络运算。
在本公开一些示例性实施例中,所述神经网络处理器还包括缓存,所述缓存连接非易失性内存与控制单元、运算单元,并缓存指令序列和神经网络参数。
在本公开一些示例性实施例中,所述缓存包括指令缓存,输入神经元缓存,权值缓存和输出神经元缓存;所述控制单元接收指令缓存中的指令序列,译码生成控制信息;所述运算单元接收输入神经元缓存和权值缓存中的输入神经元和权值,进行神经网络运算,并将计算结果传输给输出神经元缓存。
在本公开一些示例性实施例中,所述数据处理装置还包括硬盘,非易失性内存接收并存储硬盘传输的神经网络参数和指令序列。
在本公开一些示例性实施例中,所述神经网络运算包括乘法运算、加法运算、激活函数运算和池化运算;乘法运算将第一输入数据和第二输入数据进行相乘运算得到输出数据;多个加法运算形成加法树运算,将第一输入数据通过加法树逐级相加,或者将第一输入数据通过加法树累加之后和第二输入数据相加得到输出数据;激活函数运算将输入数据通过激活函数得到激活输出数据;池化运算对输入数据进行池化操作。
在本公开一些示例性实施例中,池化操作包括平均值池化,最大值池化或中值池化。
在本公开一些示例性实施例中,激活函数包括sigmoid、tanh、relu或softmax。
在本公开一些示例性实施例中,所述激活函数运算为非线性函数运算,将输入数据通过线性运算得到输出数据。
在本公开一些示例性实施例中,神经网络运算包括数据处理和算数逻辑运算;所述数据处理包含乘法运算、加法运算、比较运算和寄存,完成数据的相乘、累加、比较和存储操作;所述算数逻辑运算完成激活操作、基本运算或非线性运算操作。
在本公开一些示例性实施例中,当运算单元处理卷积或全连接运算时,数据处理进行如下操作:将第一输入数据和第二输入数据相乘得到相乘之后的输出;将寄存器中的数据取出和所述相乘后的输出结果累加,得到累加结果;所述累加结果被写回寄存器或寄存器组,同时将其中一个输入数据向水平方向或竖直方向传递。
在本公开一些示例性实施例中,当运算单元处理向量内积时,数据处理进行如下操作:将第一输入数据和第二输入数据相乘得到相乘之后的输出;将从其他处理单元传入来的数据和所述相乘后的结果累加,得到累加结果;将累加结果向水平方向或竖直方向传递。
在本公开一些示例性实施例中,当运算单元处理池化运算时,数据处理进行如下操作:利用加法器或比较器完成池化运算,将中间产生的临时数据保存在寄存器中。
(三)有益效果
本公开提供了存储装置、数据处理装置以及存储方法和数据处理方法,采用非易失性内存和内存控制单元存储神经网络的参数。非易失性内存相比于传统的DRAM,有更高的存储密度,从而降低与外存之间的数据传输,降低与外存之间访存能耗;同时非易失内存读写能耗更小,能够降低神经网络参数的访存能耗。进一步的,内存控制单元能够充分挖掘神经网络特点和非易失性内存读速度快于写速度的特点,降低非易失性内存访存能耗。
附图说明
图1是本公开实施例的数据处理装置结构示意图。
图2是本公开实施例的存储装置内部结构示意图
图3是本公开实施例的数据处理装置结构示意图。
图4是本公开实施例的包括缓存的数据处理装置结构示意图。
图5是本公开实施例的包括硬盘和缓存的数据处理装置结构示意图。
图6是本公开实施例的存储方法流程图。
图7是本公开实施例的数据处理方法流程图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。
本公开一实施例提供了一种存储装置,图1是本公开实施例的存储装置结构示意图,如图1所示,存储装置包括非易失性内存和内存控制单元。内存控制单元用于控制非易失性内存对数据的读写操作。非易失性内存包含至少两个存储空间,根据数据读写特点的不同将数据归为不同类别,将不同类别的数据分别存储到非易失性内存不同的存储空间中。图2为本公开一实施例的存储装置内部结构示意图,如图2所示,在一个示例中,非易失性内存包括三个不同的存储区间,分别是第一存储区间、第二存储区间和第三存储区间,不同的存储区间存储不同类别的数据。对应三个不同的存储空间,内存控制单元包括三个不同的子控制单元,分别是第一子控制单元、第二子控制单元和第三子控制单元。
第一存储空间用于存储第一类数据,第一类数据被读取的次数多于被写入的次数。
第二存储空间用于存储第二类数据,第二类数据被读取的次数约等于被写入的次数。
第三存储空间用于存储第三类数据,第三类数据被读取的次数少于被写入的次数。
第一子控制单元用来控制第一存储空间的读写。当读取第一存储空间中的第一类数据时,第一子控制单元调高时钟的频率,加速数据读取速度。
第二子控制单元用来控制第二存储空间的读写。当第二类数据被写入第二存储空间时,第二子控制单元会调高时钟的频率,加速第二类数据写的速度,弥补非易失性内存写数据速度慢的不足。
第三子控制单元用来控制第三存储空间的读写。当第三类数据被写入第三存储空间时,第三子控制单元会将时钟频率调到最高频率,并且当读取第三存储空间中的第三类数据时,第三子控制单元会将时钟频率调到最低工作频率,弥补非易失性内存写数据速度慢的不足,同时减少读数据的能耗。
非易失性内存例如但不限于ReRAM、STT-RAM或PCM。
以上仅是示例性说明,并不用于限制本公开,在本公开其他实施例中,非易失性内存可以包括两个或多于三个存储区间,根据数据被读写特点可将数据分为两种或多于三种类别,不同类别的数据存储到对应数量的存储空间中,相应的,内存控制单元也可以包括两个或多于三个子控制单元,每个子控制单元对应控制一个存储空间的读写。
本公开另一实施例提供一种数据处理装置,包括上述存储装置和神经网络处理器,组成神经网络加速装置,神经网络处理器能够充分挖掘非易失性内存的特点,减少访存能耗。
图3为本公开实施例的数据处理装置结构示意图,如图3所示,数据处理装置包括非易失性内存,内存控制单元和神经网络处理器。
非易失性内存接收外存的指令序列和神经网络参数,并将指令序列和神经网络参数按照不同特点存储于三个不同的存储空间中,内存控制单元用来控制非易失性内存读写。
神经网络处理器连接非易失性内存,从非易失性内存读取指令序列和神经网络参数,进行译码及运算。神经网络处理器包括控制单元和运算单元。
神经网络参数包括输入神经元、权值和输出神经元等。指令序列被存储于非易失性内存的第二存储空间;神经网络的输入神经元存储于第二存储空间;神经网络的权值存储于第一存储空间;神经网络的输出神经元存储于第三存储空间。控制单元连接非易失性内存,接收指令序列,经过译码后生成控制信息控制运算单元进行神经网络计算操作。
运算单元连接非易失性内存和控制单元,根据控制信息,接收非易失性内存传输的神经网络参数,执行运算神经网络计算,并将运算结果传输给非易失性内存。
本公开另一实施例的数据处理装置,神经网络处理器还可以包括缓存,图4为本公开实施例的包括缓存的数据处理装置结构示意图,如图4所示,缓存连接非易失性内存、控制单元和运算单元,用于高速缓存指令序列和神经网络参数。缓存可以包括指令缓存,输入神经元缓存,权值缓存和输出神经元缓存。控制单元接收指令缓存中的指令序列,译码生成控制信息,运算单元接收输入神经元缓存和权值缓存中的输入神经元和权值,进行神经网络运算,并将计算结果传输给输出神经元缓存。
本公开另一实施例的数据处理装置,数据处理装置还可以包括硬盘,图5为本公开实施例的包括硬盘和缓存的数据处理装置结构示意图,如图5所示,硬盘中存储了神经网络处理器的指令序列和神经网络的所有参数,包括权值、输入神经元、输出神经元和拓扑结构等,连接非易失性内存,硬盘中存储的指令序列和神经网络参数传输给非易失性内存,或者接收非易失性内存传输来的指令序列和神经网络参数。
在本公开的一些示例中,所述指令序列中的指令可以为神经网络专用指令,所述神经网络专用指令包括控制指令、数据传输指令、运算指令和/或逻辑指令。
所述控制指令用于控制神经网络执行过程;数据传输指令用于完成不同存储介质之间的数据传输,数据格式包括矩阵、向量和/或标量;运算指令用于完成神经网络的算术运算,包括矩阵运算、向量运算和/或标量运算;逻辑指令用于完成神经网络的逻辑运算,包括向量逻辑运算和/或标量逻辑运算。
更具体的,所述指令包括Cambricon指令集。
所述Cambricon指令集中每一条指令长度为64bit,指令由操作码和操作数组成。指令集包含四种类型的指令,分别是控制指令(control instructions),数据传输指令(data transfer instructions),运算指令(computational instructions),逻辑指令(logical instructions)。
进一步的,控制指令用于控制执行过程。控制指令包括跳转(jump)指令和条件分支(conditional branch)指令。
进一步的,数据传输指令用于完成不同存储介质之间的数据传输。数据传输指令包括加载(load)指令,存储(store)指令,搬运(move)指令。load指令用于将数据从主存加载到缓存,store指令用于将数据从缓存存储到主存,move指令用于在缓存与缓存或者缓存与寄存器或者寄存器与寄存器之间搬运数据。数据传输指令支持三种不同的数据组织方式,包括矩阵,向量和标量。
进一步的,运算指令用于完成神经网络算术运算。运算指令包括矩阵运算指令,向量运算指令和标量运算指令。
更进一步的,矩阵运算指令完成神经网络中的矩阵运算,包括矩阵乘向量(matrixmultiply vector),向量乘矩阵(vector multiply matrix),矩阵乘标量(matrixmultiply scalar),外积(outer product),矩阵加矩阵(matrix add matrix),矩阵减矩阵(matrix subtract matrix)。
更进一步的,向量运算指令完成神经网络中的向量运算,包括向量基本运算(vector elementary arithmetics),向量超越函数运算(vector transcendentalfunctions),内积(dot product),向量随机生成(random vector generator),向量中最大/最小值(maximum/minimum of a vector)。其中向量基本运算包括向量加,减,乘,除(add,subtract,multiply,divide),向量超越函数是指那些不满足任何以多项式作系数的多项式方程的函数,包括但不仅限于指数函数,对数函数,三角函数,反三角函数。
更进一步的,标量运算指令完成神经网络中的标量运算,包括标量基本运算(scalar elementary arithmetics)和标量超越函数运算(scalar transcendentalfunctions)。其中标量基本运算包括标量加,减,乘,除(add,subtract,multiply,divide),标量超越函数是指那些不满足任何以多项式作系数的多项式方程的函数,包括但不仅限于指数函数,对数函数,三角函数,反三角函数。
进一步的,逻辑指令用于神经网络的逻辑运算。逻辑运算包括向量逻辑运算指令和标量逻辑运算指令。
更进一步的,向量逻辑运算指令包括向量比较(vector compare),向量逻辑运算(vector logical operations)和向量大于合并(vector greater than merge)。其中向量比较包括但大于,小于,等于,大于等于,小于等于和不等于。向量逻辑运算包括与,或,非。
更进一步的,标量逻辑运算包括标量比较(scalar compare),标量逻辑运算(scalar logical operations)。其中标量比较包括但大于,小于,等于,大于等于,小于等于和不等于。标量逻辑运算包括与,或,非。
在本公开一些示例中,所述运算单元执行的运算包括:
第一部分乘法运算,用于将输入数据1和输入数据2相乘,得到相乘之后的数据;和/或,
第二部分加法运算,将输入数据1通过加法树逐级相加,和/或将所述输入数据1通过和输入数据2相加得到输出数据;和/或,
第三部分激活函数运算,对输入数据通过激活函数(active)运算得到输出数据;和/或,
第四部分池化运算,out=pool(in),其中p pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
以上几个部分的运算可以自由选择一个或多个部分进行不同顺序的组合,从而实现各种不同功能的运算。
相应的,运算单元包括但不仅限于:第一部分乘法器,第二部分加法器,第三部分激活函数单元和第四部分池化单元。
第一部分乘法器用于将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out),过程为:out=in1*in2;
第二部分加法器优选组成加法树,用于将输入数据in1通过加法树逐级相加得到输出数据(out),其中in1是一个长度为N的向量,N大于1,过程为:out=in[1]+in1[2]+...+in1[N],和/或,第二部分加法器将输入数据(in1)通过加法数累加之后和输入数据(in2)相加得到输出数据(out),过程为:out=in1[1]+in1[2]+...+in1[N]+in2,或者,第二部分加法器将输入数据(in1)和输入数据(in2)相加得到输出数据(out),过程为:out=in1+in2;
第三部分激活函数单元用于将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等,除了做激活操作,第三部分还可以实现其他的非线性函数,可将将输入数据(in)通过线性运算(f)得到输出数据(out),过程为:out=f(in);
第四部分池化单元用于将输入数据(in)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
在另一示例中,运算单元执行的运算包括多个PE和一或多个ALU,PE将输入数据1和输入数据2相乘,与寄存器内保存的数据或其他PE中传来的数据进行相加,写回寄存器或写回存储部分中,同时将某个输入数据或者运算结果传递给其他PE中;和/或PE将输入数据1和输入数据2或寄存器内保存的数据进行累加或比较。ALU完成激活运算或非线性运算。
具体的,运算单元包括但不仅限于:多个PE(处理单元)和一或多个ALU(算数逻辑运算单元)。每个PE内包含一个乘法器、一个加法器、一个比较器和一个寄存器/寄存器组。每个PE用于接收来自各个方向的PE传来的数据。每个ALU用于完成激活操作、基本运算(如乘法、加法等)和其他非线性运算操作。在一个示例中,每个PE能够接受来自水平方向(如右边)和/或垂直方向(如下面)的PE传来的数据,同时能够向相反的水平方向(如左边)和/或相反的垂直方向(如上面)的PE传递数据。在另一个示例中,每个PE能够接受来自对角线方向的PE传来的数据,同时能够向相反的水平方向的对角线传递数据。
当运算单元处理卷积、全连接等运算时,对每个PE而言,可以将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out1),过程为:out1=in1*in2。将寄存器中的数据取出(data)和相乘的结果(out1)累加,得到结果(out2)out2=out1+data。Out2可以被写回寄存器/寄存器组或写回存储部分。同时,可以将某个输入数据(in1/in2)向水平方向或竖直方向传递。
当运算单元处理向量内积时,对每个PE而言,可以将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out1),过程为:out1=in1*in2。将从其他PE传入来的数据(data)和相乘的结果(out1)累加,得到结果(out2)out2=out1+data。而后,可以将运算结果(out2)向水平方向或竖直方向传递。
当运算单元处理池化运算时,对每个PE而言,还可以跳过乘法部分,直接利用加法器或比较器完成池化运算,out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。中间产生的临时数据可以保存在寄存器中。
ALU用于完成激活运算、基本运算(如乘法、加法等)或非线性运算,激活操作即为将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等;其他的非线性函数,即可将将输入数据(in)通过运算(f)得到输出数据(out),过程为:out=f(in)。
以上仅是示例性的说明,但本公开并不限于此,数据处理装置可以包括非神经网络处理器,以代替上述神经网络处理器,非神经网络处理器例如是通用运算处理器,通用运算具有相应的通用运算指令和数据,可以是例如标量算数运算、标量逻辑运算等,通用运算处理器例如但不仅限于包括一个或多个乘法器、一个或多个加法器,执行例如加法、乘法等基本运算。
本公开另一实施例提供了一种芯片,其包括了上述实施例的数据处理装置。
本公开另一实施例提供了一种芯片封装结构,其包括了上述实施例的芯片。
本公开另一实施例提供了一种板卡,其包括了上述实施例的芯片封装结构。
本公开另一实施例提供了一种电子装置,其包括了上述实施例的板卡。该电子装置包括、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
在本公开中,所有的单元和模块都可以是硬件结构,硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管、忆阻器、DNA计算机。
本公开提供的神经网络存储装置和神经网络加速装置均采用非易失性内存和内存控制单元存储神经网络的参数。非易失性内存相比于传统的DRAM,有更高的存储密度,从而降低与外存之间的数据传输,降低与外存之间访存能耗;同时非易失内存读写能耗更小,能够降低神经网络参数的访存能耗。进一步的,内存控制单元能够充分挖掘神经网络特点和非易失性内存读速度快于写速度的特点,降低非易失性内存访存能耗。
本公开另一实施例提供了一种存储方法,应用于上述的存储装置,存储装置包括非易失性内存和读写控制系统内存控制单元,图6为本公开另一实施例的存储方法流程图,如图6所示,包括以下步骤:
S1:将不同类型的数据存储至非易失性内存的至少两个存储空间。
根据数据读写特点的不同将数据归为不同类别,在一个示例中,数据包括第一类数据、第二类数据和第三类数据,第一类数据被读取的次数多于被写入的次数,第二类数据被读取的次数约等于被写入的次数,第三类数据写被读取的次数少于被写入的次数。
在一个示例中,非易失性内存包括三个不同的存储区间,分别是第一存储区间,第二存储区间和第三存储区间,不同的存储区间存储不同类别的数据。
将不同类别的数据分别存储到非易失性内存不同的存储空间中,第一存储空间内部存储第一类数据,第二存储空间内部存储第二类数据;第三存储空间内部存储第三类数据。
S2:内存控制单元控制所述非易失性内存的读写。
对应三个不同的存储空间,内存控制单元控制系统包括三个不同的子控制系统单元,分别是第一子控制系统单元,第二子控制单元系统和第三子控制单元系统。
第一子控制单元系统控制第一存储空间的读写。当读取第一存储空间中的第一类数据在进行读操作时,第一子控制单元会调高时钟的频率,加速数据读取速度。
第二子控制单元系统控制第二存储空间的读写。当第二类数据被写入第二存储空间在进行写操作时,第二子控制单元会调高时钟的频率,加速第二类数据写的速度,弥补非易失性内存写数据速度慢的不足。
第三子控制单元系统控制第三存储空间的读写。当第三类数据被写入第三存储空间在进行写操作时,第三子控制单元会将时钟频率调到最高频率,并且当读取第三存储空间中的第三类数据时,在读数据时第三子控制单元会将时钟频率调到最低工作频率,弥补非易失性内存写数据速度慢的不足同时减少读数据的能耗。
非易失性内存例如但不限于可以是ReRAM、STT-RAM或PCM。
以上仅是示例性说明,并不用于限制本公开,在本公开其他实施例中,可将非易失性内存分为两个或多于三个存储区间,根据数据被读写特点可将数据分为两种或多于三种类别,不同类别的数据存储到对应数量的存储空间中,相应的,内存控制单元也可以包括两个或多于三个子控制单元,每个子控制单元对应控制一个存储空间的读写。
本公开另一实施例提供了一种数据处理方法,应用于上述的数据处理装置,数据处理装置包括上述的存储装置和神经网络处理器,组成神经网络加速装置,神经网络处理器能够充分挖掘非易失性内存的特点,减少访存能耗。数据处理装置由非易失性内存,内存控制单元和神经网络处理器三部分组成。图7是本公开实施例的数据处理方法流程图,如图7所示,包括以下步骤:
A1:非易失性内存接收外存的指令序列和神经网络参数,并根据渎写特点,将指令序列和神经网络参数存储于不同的存储空间中;
非易失性内存接收外存的指令序列和神经网络参数,并将指令序列和神经网络参数按照不同特点存储于三个不同的存储空间中,内存控制单元用来控制非易失性内存读写。
神经网络参数包括输入神经元,权值和输出神经元等。指令序列被存储于非易失性内存的第二存储空间;神经网络的输入神经元存储于第二存储空间;神经网络的权值存储于第一存储空间;神经网络的输出神经元存储于第三存储空间。控制单元连接非易失性内存,接收指令序列,经过译码后生成控制信息控制运算单元进行神经网络计算操作。
A2:神经网络处理器从所述非易失性内存读取指令序列和神经网络参数,进行译码及运算。
神经网络处理器连接非易失性内存,从非易失性内存读取指令序列和神经网络参数,进行译码及运算。神经网络处理器包括控制单元和运算单元。
运算单元连接非易失性内存和控制单元,根据控制信息,接收非易失性内存传输的神经网络参数,执行神经网络计算,并将运算结果传输给非易失性内存。
本公开另一实施例的数据处理方法,神经网络处理器还可以包括缓存,缓存连接非易失性内存、控制单元和运算单元,高速缓存指令序列和神经网络参数。缓存可以包括指令缓存,输入神经元缓存,权值缓存和输出神经元缓存,控制单元接收指令缓存中的指令序列,译码生成控制信息,运算单元接收输入神经元缓存和权值缓存中的神经元和权值,进行神经网络运算,并将计算结果传输给输出神经元缓存。
本公开另一实施例的数据处理方法,数据处理装置还可以包括硬盘,硬盘中存储了神经网络处理器的指令序列和神经网络的所有参数,包括权值,输入神经元、输出神经元和拓扑结构等,连接非易失性内存,将硬盘中存储的指令序列和神经网络参数传输给非易失性内存,或者接收非易失性内存传输来的指令序列和神经网络参数。
在本公开一些示例中,运算单元执行的运算包括:
第一部分乘法运算,用于将输入数据1和输入数据2相乘,得到相乘之后的数据;和/或,
第二部分加法运算,将输入数据1通过加法树逐级相加,和/或将所述输入数据1通过和输入数据2相加得到输出数据;和/或,
第三部分激活函数运算,对输入数据通过激活函数(active)运算得到输出数据;和/或,
第四部分池化运算,out=pool(in),其中p pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
以上几个部分的运算可以自由选择一个或多个部分进行不同顺序的组合,从而实现各种不同功能的运算。
相应的,运算单元包括但不仅限于:第一部分乘法器,第二部分加法器,第三部分激活函数单元和第四部分池化单元。
第一部分乘法器用于将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out),过程为:out=in1*in2;
第二部分加法器优选组成加法树,用于将输入数据in1通过加法树逐级相加得到输出数据(out),其中in1是一个长度为N的向量,N大于1,过程为:out=in[1]+in1[2]+...+in1[N],和/或,第二部分加法器将输入数据(in1)通过加法数累加之后和输入数据(in2)相加得到输出数据(out),过程为:out=in1[1]+in1[2]+...+in1[N]+in2,或者,第二部分加法器将输入数据(in1)和输入数据(in2)相加得到输出数据(out),过程为:out=in1+in2;
第三部分激活函数单元用于将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等,除了做激活操作,第三部分还可以实现其他的非线性函数,可将将输入数据(in)通过线性运算(f)得到输出数据(out),过程为:out=f(in);
第四部分池化单元用于将输入数据(in)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
在另一示例中,运算单元执行的运算包括多个PE和一或多个ALU,PE将输入数据1和输入数据2相乘,与寄存器内保存的数据或其他PE中传来的数据进行相加,写回寄存器或写回存储部分中,同时将某个输入数据或者运算结果传递给其他PE中;和/或PE将输入数据1和输入数据2或寄存器内保存的数据进行累加或比较。ALU完成激活运算或非线性运算。
具体的,运算单元包括但不仅限于:多个PE和一或多个ALU。每个PE内包含一个乘法器、一个加法器、一个比较器和一个寄存器/寄存器组。每个PE用于接收来自各个方向的PE传来的数据。每个ALU用于完成激活操作、基本运算(如乘法、加法等)和其他非线性运算操作。在一个示例中,每个PE能够接受来自水平方向(如右边)和/或垂直方向(如下面)的PE传来的数据,同时能够向相反的水平方向(如左边)和/或相反的垂直方向(如上面)的PE传递数据。在另一个示例中,每个PE能够接受来自对角线方向的PE传来的数据,同时能够向相反的水平方向的对角线传递数据。
当运算单元处理卷积、全连接等运算时,对每个PE而言,可以将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out1),过程为:out1=in1*in2。将寄存器中的数据取出(data)和相乘的结果(out1)累加,得到结果(out2)out2=out1+data。Out2可以被写回寄存器/寄存器组或写回存储部分。同时,可以将某个输入数据(in1/in2)向水平方向或竖直方向传递。
当运算单元处理向量内积时,对每个PE而言,可以将输入数据1(in1)和输入数据2(in2)相乘得到相乘之后的输出(out1),过程为:out1=in1*in2。将从其他PE传入来的数据(data)和相乘的结果(out1)累加,得到结果(out2)out2=out1+data。而后,可以将运算结果(out2)向水平方向或竖直方向传递。
当运算单元处理池化运算时,对每个PE而言,还可以跳过乘法部分,直接利用加法器或比较器完成池化运算,out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。中间产生的临时数据可以保存在寄存器中。
ALU用于完成激活运算、基本运算(如乘法、加法等)或非线性运算,激活操作即为将输入数据(in)通过激活函数(active)运算得到激活输出数据(out),过程为:out=active(in),激活函数active可以是sigmoid、tanh、relu、softmax等;其他的非线性函数,即可将将输入数据(in)通过运算(f)得到输出数据(out),过程为:out=f(in)。
以上仅是示例性的说明,但本公开并不限于此,数据处理装置可以包括非神经网络处理器,以代替上述神经网络处理器,数据处理方法执行非神经网络运算。非神经网络处理器例如是通用运算处理器,通用运算具有相应的通用运算指令和数据,可以是例如标量算数运算、标量逻辑运算等,通用运算处理器例如但不仅限于包括一个或多个乘法器、一个或多个加法器,执行例如加法、乘法等基本运算。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

Claims (27)

1.一种存储装置,包括:
非易失性内存,包括至少两个存储空间,不同存储空间用于存储不同类型的数据,其中,所述数据包括神经网络参数,所述神经网络参数根据读写特点被划分为所述不同类型的数据;
内存控制单元,用于控制非易失性内存的读写;
其中,所述不同类型的数据包括第一类数据和第二类数据,所述非易失性内存包括第一存储空间和第二存储空间,所述内存控制单元包括第一子控制单元和第二子控制单元;
所述第一子控制单元用于在读取第一存储空间中的第一类数据时,调高时钟的频率,加速第一类数据读取速度;所述第二子控制单元用于在第二类数据被写入第二存储空间时,调高时钟的频率,加速第二类数据写入速度。
2.如权利要求1所述的存储装置,其中,所述内存控制单元包括与存储空间相同数量的子控制单元,每一子控制单元对应控制一个存储空间的读写。
3.如权利要求2所述的存储装置,其中,所述不同类型的数据包括:
第一类数据,被读取的次数多于被写入的次数;
第二类数据,被读取的次数等于被写入的次数;
第三类数据,被读取的次数少于被写入的次数。
4.如权利要求3所述的存储装置,其中,所述非易失性内存包括:
第一存储空间,用于存储第一类数据;
第二存储空间,用于存储第二类数据;
第三存储空间,用于存储第三类数据。
5.如权利要求4所述的存储装置,其中,所述内存控制单元包括:
第一子控制单元,用于控制第一存储空间的读写;
第二子控制单元,用于控制第二存储空间的读写;
第三子控制单元,用于控制第三存储空间的读写。
6.如权利要求5所述的存储装置,其中,
所述第三子控制单元用于在第三类数据被写入第三存储空间时,将时钟频率调到最高频率,在读取第三存储空间中的第三类数据时,将时钟频率调到最低工作频率。
7.如权利要求1至6中任一项所述的存储装置,其中,非易失性内存包括ReRAM、STT-RAM或PCM。
8.一种数据处理装置,包括运算装置和如权利要求1至7中任一项所述的存储装置;
所述非易失性内存用于接收指令序列和运算参数,并将指令序列和运算参数存储于不同的存储空间中,所述运算参数为神经网络参数;
所述运算装置用于从所述非易失性内存读取指令序列和运算参数并进行运算,所述运算装置为神经网络处理器。
9.如权利要求8所述的数据处理装置,其中,所述非易失性内存的第二存储空间用于存储指令序列。
10.如权利要求9所述的数据处理装置,其中,所述指令序列包括神经网络专用指令,所述神经网络专用指令包括控制指令、数据传输指令、运算指令和逻辑指令。
11.如权利要求8至10中任一项所述的数据处理装置,其中,
所述神经网络参数包括输入神经元、权值和输出神经元;
非易失性内存的第一存储空间用于存储权值;
非易失性内存的第二存储空间用于存储输入神经元;
非易失性内存的第三存储空间用于存储输出神经元。
12.如权利要求8或9所述的数据处理装置,所述运算装置为通用运算处理器。
13.如权利要求8至10中任一项所述的数据处理装置,其中,还包括硬盘,所述硬盘连接非易失性内存,用于将运算参数和指令序列传输至非易失性内存。
14.一种电子装置,包括如权利要求8至13中任一项所述的数据处理装置。
15.一种存储方法,包括:
将不同类型的数据存储至非易失性内存的至少两个存储空间,其中,所述数据包括神经网络参数,所述神经网络参数根据读写特点被划分所述不同类型的数据;
内存控制单元控制所述非易失性内存进行读写;
其中,当读取第一存储空间中的第一类数据时,调高时钟的频率,加速第一类数据读取速度;
当第二类数据被写入第二存储空间时,调高时钟的频率,加速第二类数据写入速度。
16.如权利要求15所述的存储方法,其中,
将内存控制单元分为与存储空间数量相同的子控制单元;
每一子控制单元对应控制一个存储空间进行读写。
17.如权利要求15或16所述的存储方法,其中,根据数据读写特点,将数据分为:
第一类数据,被读取的次数多于被写入的次数;
第二类数据,被读取的次数等于被写入的次数;
第三类数据,被读取的次数少于被写入的次数。
18.如权利要求17所述的存储方法,其中,在非易失性内存中,
第一存储空间存储第一类数据;
第二存储空间存储第二类数据;
第三存储空间存储第三类数据。
19.如权利要求18所述的存储方法,其中,在内存控制单元中,
第一子控制单元控制第一存储空间的读写;
第二子控制单元控制第二存储空间的读写;
第三子控制单元控制第三存储空间的读写。
20.如权利要求19所述的存储方法,其中,
当第三类数据被写入第三存储空间时,所述第三子控制单元将时钟频率调到最高频率,当读取第三存储空间中的第三类数据时,所述第三子控制单元将时钟频率调到最低工作频率。
21.如权利要求15所述的存储方法,其中,非易失性内存包括ReRAM、STT-RAM或PCM。
22.一种数据处理方法,用于权利要求8至13中任一项所述的数据处理装置,包括:
非易失性内存接收指令序列和运算参数,并将指令序列和运算参数存储于不同的存储空间中,所述运算参数为神经网络参数;
运算装置从所述非易失性内存读取指令序列和运算参数,并进行运算,所述运算装置为神经网络处理器。
23.如权利要求22所述的数据处理方法,其中,
将指令序列存储于非易失性内存的第二存储空间。
24.如权利要求22所述的数据处理方法,其中,所述指令序列包括神经网络专用指令,所述神经网络专用指令包括控制指令、数据传输指令、运算指令和/或逻辑指令。
25.如权利要求22所述的数据处理方法,其中,所述神经网络参数包括输入神经元、权值和输出神经元;
将所述权值存储于非易失性内存的第一存储空间;
将输入神经元存储于非易失性内存的第二存储空间;
将输出神经元存储于非易失性内存的第三存储空间。
26.如权利要求22或23所述的数据处理方法,所述运算装置为通用运算处理器。
27.如权利要求22所述的数据处理方法,其中,所述数据处理装置还包括硬盘,非易失性内存接收并存储硬盘传输的神经网络参数和指令序列。
CN201710653834.6A 2017-08-02 2017-08-02 存储装置及方法、数据处理装置及方法、电子装置 Active CN109389213B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710653834.6A CN109389213B (zh) 2017-08-02 2017-08-02 存储装置及方法、数据处理装置及方法、电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710653834.6A CN109389213B (zh) 2017-08-02 2017-08-02 存储装置及方法、数据处理装置及方法、电子装置

Publications (2)

Publication Number Publication Date
CN109389213A CN109389213A (zh) 2019-02-26
CN109389213B true CN109389213B (zh) 2021-03-19

Family

ID=65412773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710653834.6A Active CN109389213B (zh) 2017-08-02 2017-08-02 存储装置及方法、数据处理装置及方法、电子装置

Country Status (1)

Country Link
CN (1) CN109389213B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111722804B (zh) * 2020-06-12 2022-07-08 浪潮电子信息产业股份有限公司 一种非易失内存调度的方法、系统、设备及可读存储介质
CN111651207B (zh) * 2020-08-06 2020-11-17 腾讯科技(深圳)有限公司 一种神经网络模型运算芯片、方法、装置、设备及介质
CN116431082B (zh) * 2023-06-14 2023-11-21 深圳嘉华众力科技有限公司 数据存储的方法、装置、计算机设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100855467B1 (ko) * 2006-09-27 2008-09-01 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
CN201654772U (zh) * 2010-05-10 2010-11-24 中国电子科技集团公司第十一研究所 一种存储介质接口转换装置
US9576214B1 (en) * 2012-01-23 2017-02-21 Hrl Laboratories, Llc Robust object recognition from moving platforms by combining form and motion detection with bio-inspired classification
CN103780426A (zh) * 2014-01-13 2014-05-07 南京邮电大学 云存储数据的一致性维护方法及云存储系统
CN105242874B (zh) * 2015-09-09 2017-03-08 天津瑞发科半导体技术有限公司 一种闪存存储器控制装置及一种闪存移动存储装置

Also Published As

Publication number Publication date
CN109389213A (zh) 2019-02-26

Similar Documents

Publication Publication Date Title
US11531541B2 (en) Processing apparatus and processing method
CN111221578B (zh) 计算装置以及计算方法
KR102492477B1 (ko) 행렬 곱셈기
US11507350B2 (en) Processing apparatus and processing method
CN109240746B (zh) 一种用于执行矩阵乘运算的装置和方法
US20180107630A1 (en) Processor and method for executing matrix multiplication operation on processor
CN110163360B (zh) 一种计算装置及方法
TW201935265A (zh) 一種計算裝置及方法
CN109389213B (zh) 存储装置及方法、数据处理装置及方法、电子装置
WO2023065983A1 (zh) 计算装置、神经网络处理设备、芯片及处理数据的方法
CN111626413A (zh) 一种计算装置及方法
CN110490317B (zh) 神经网络运算装置及运算方法
CN115310037A (zh) 矩阵乘法计算单元、加速单元、计算系统和相关方法
CN107943756A (zh) 一种计算方法及相关产品
CN116796812A (zh) 可编程并行处理装置、神经网络芯片和电子设备
CN115438777A (zh) 对神经元数据执行Winograd卷积正变换的装置
CN115438778A (zh) 执行Winograd卷积的集成电路装置
CN114692850A (zh) 对神经元数据执行Winograd卷积正变换的装置与板卡
CN114692848A (zh) 获得卷积结果的装置与板卡
CN114692811A (zh) 执行Winograd卷积的装置与板卡
CN114692849A (zh) 逆变换Winograd卷积的对位乘数据的逆变换单元、装置与板卡

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