CN109902811A - 神经网络运算设备和方法 - Google Patents
神经网络运算设备和方法 Download PDFInfo
- Publication number
- CN109902811A CN109902811A CN201711343478.4A CN201711343478A CN109902811A CN 109902811 A CN109902811 A CN 109902811A CN 201711343478 A CN201711343478 A CN 201711343478A CN 109902811 A CN109902811 A CN 109902811A
- Authority
- CN
- China
- Prior art keywords
- connection relationship
- data
- relationship data
- input
- weight
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
-
- 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/04—Architecture, e.g. interconnection topology
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Machine Translation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Image Processing (AREA)
- Control Of Electric Motors In General (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Electrotherapy Devices (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Image Analysis (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种神经网络处理模块,其映射单元接收到输入神经元和权值后,对该输入神经元和权值进行处理,以得到处理后的输入神经元和处理后的权值;神经网络处理模块的运算单元对处理后的输入神经元和处理后的权值进行人工神经网络运算。采用本发明实施例可减少装置的额外开销,并减小访问量,提高了神经网络运算效率。
Description
技术领域
本发明涉及神经网络领域,尤其涉及一种神经网络运算设备和方法。
背景技术
人工神经网络(Artificial Neural Networks,ANNs)简称为神经网络(NeuralNetworks,NNs)。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间的相互连接关系,从而达到处理信息的目的。
神经网络是一个高计算量和高访存的算法,权值越多,计算量和访存量。都会增大。为了减小计算量和权值数量,从而降低访存量,因此提出了稀疏神经网络。稀疏神经网络的定义为:在神经网络中,值为0的权值的数目很多,并且值为非0的权值分布没有规律,则称该神经网络为稀疏神经网络。定义权值为0的元素数量与神经网络所有权值元素数量的比值为神经网络的稀疏度,如图1a所示。
现有技术中,GPU在执行图形图像运算以及科学计算时会涉及稀疏神经网络的计算,但是由于GPU是专门用来执行图形图像运算以及科学计算的设备,没有对稀疏的卷积神经网络运算的专门支持,仍然需要大量的前端译码工作才能执行稀疏的人工神经网络运算,带来了大量的额外开销。另外GPU只有较小的片上缓存,多层人工神经网络的模型数据(权值)需要反复从片外搬运,片外带宽成为了主要性能瓶颈,同时带来了巨大的功耗开销。
发明内容
本发明实施例提供一种神经网络运算设备及方法,通过对神经网络数据进行处理,减小了在进行人工神经网络运算之前译码的工作量,进而减小了额外的开销,并且提高了运算速率。
第一方面,本发明实施例提供了一种神经网络运算模块,包括:
存储单元,用于存储输入数据、神经网络指令和运算结果,所述输入数据包括至少一个输入神经元和至少一个权值;
直接存储访问单元,用于在所述存储单元与指令缓存单元、映射单元和输出缓存单元进行数据的读写;
映射单元,用于通过所述直接存储访问单元获取所述输入数据后,对所述输入数据进行处理,以得到处理后的输入数据,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,并将所述处理后的输入神经元和所述处理后的权值存储到第一输入缓存单元和第二输入缓存单元中;
所述第一输入缓存单元,用于缓存第一缓存数据,所述第一缓存数据为所述处理后的输入神经元或处理后的权值;
所述第二输入缓存单元,用于缓存第二缓存数据,所述第二缓存数据为所述处理后的输入神经元或处理后的权值,且所述第二缓存数据与所述第一缓存数据不一致;
所述指令缓存单元,用于缓存所述直接存储访问单元读取神经网络指令;
指令控制单元,用于从所述指令缓存单元中获取所述神经网络指令,并将所述神经网络指令译码成运算单元执行的微指令;
所述运算单元,用于从所述第一输入缓存单元和所述第二输入缓存单元中获取所述处理后的输入神经元和所述处理后的权值后,根据所述微指令对所述处理后的输入神经元和所述处理后的权值进行人工神经网络运算,以得到所述运算结果;
所述输出缓存单元,用于缓存所述运算结果。
第二方面,本发明实施例提供了一种神经网络运算方法,包括:
对输入数据进行处理,以得到处理后的输入数据;
获取神经运算指令,将所述神经运算指令译码成微指令;
根据所述微指令对所述处理后的输入数据进行人工神经网络运算,以得到运算结果。
第三方面,本发明实施例提供了一种神经网络运算装置,该神经网络运算装置包括一个或者多个第一方面所述的神经网络运算模块。该神经网络运算装置用于从其他处理装置中获取待运算数据和控制信息,并执行指定的神经网络运算,将执行结果通过I/O接口传递给其他处理装置;
当所述神经网络运算装置包含多个所述神经网络运算模块时,所述多个所述神经网络运算模块间可以通过特定的结构进行连接并传输数据;
其中,多个所述神经网络运算模块通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算;多个所述神经网络运算模块共享同一控制系统或拥有各自的控制系统;多个所述神经网络运算模块共享内存或者拥有各自的内存;多个所述神经网络运算模块的互联方式是任意互联拓扑。
第四方面,本发明实施例提供了一种组合处理装置,该组合处理装置包括如第五方面所述的神经网络处理装置、通用互联接口,和其他处理装置。该神经网络运算装置与上述其他处理装置进行交互,共同完成用户指定的操作。
第五方面,本发明实施例提供了一种神经网络芯片,该神经网络芯片包括上述第一方面所述的神经网络运算模块、上述第三方面所述的神经网络运算装置或者上述第四方面所述的组合处理装置。
第六方面,本发明实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述第五方面所述的神经网络芯片;
第七方面,本发明实施例提供了一种板卡,该板卡包括上述第六方面所述的神经网络芯片封装结构。
第八方面,本发明实施例提供了一种电子装置,该电子装置包括上述第五方面所述的神经网络芯片或者上述第七方面所述的板卡。
可以看出,在本发明实施例的方案中,映射单元对输入神经元和权值进行处理,以得到处理后的输入神经元和处理后的权值,运算单元根据指令控制单元对神经网络指令进行译码得到的微指令对处理后的输入神经元和处理后的权值进行人工神经网络运算。与现有技术相比,采用本发明实施例减小了在进行人工神经网络运算之前译码的工作量,进而减小了额外的开销,并且提高了运算速率。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为本发明实施例提供的一种稀疏神经网络结构示意图;
图1b为本发明实施例提供的一种神经网络运算模块的结构示意图;
图2为本发明实施例提供的一种神经网络运算模块的局部结构示意图;
图3为本发明实施例提供的一种神经网络结构示意图;
图4a为本发明实施例提供的一种组合处理装置的结构示意图;
图4b为本发明实施例提供的另一种组合处理装置的结构示意图;
图5为本发明实施例提供的一种板卡的结构示意图;
图6为本发明实施例提供的一种神经网络芯片封装结构的示意图;
图7a为本发明实施例提供的另一种神经网络芯片封装结构的示意图;
图7b为本发明实施例提供的另一种神经网络芯片封装结构的示意图;
图8为本发明实施例提供的一种神经网络运算方法的流程示意图。
具体实施方式
以下分别进行详细说明。
本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
参见图1b,图1b为本发明实施例提供的另一种神经网络运算模块的结构示意图,如图1b所示,该神经网络运算模块包括存储单元102、直接存储访问单元103、映射单元101、指令缓存单元104、第一输入缓存单元105、第二输入缓存单元106、指令控制单元107、运算单元108和输出缓存单元109。
上述存储单元102,用于存储输入数据、神经网络指令和运算结果,所述输入数据包括至少一个输入神经元和至少一个权值。
上述直接存储访问单元103,用于在所述存储单元102与指令缓存单元104、映射单元101和输出缓存单元109之间进行数据的读写。
具体地,上述直接存储访问单元从上述存储单元102中读取神经网络指令,并将该神经网络指令写入上述指令缓存单元104中。上述直接存储访问单元103从上述存储单元102读取上述输入神经元和权值,并将该输入神经元和权值写入上述映射单元101。上述直接存储访问单元103从上述输出缓存单元109读取上述运算结果后,将该运算结果写入上述存储单元102中。
上述映射单元101,用于通过所述直接存储访问单元103获取所述输入数据后,对所述输入数据进行处理,以得到处理后的输入数据,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,并将所述处理后的输入神经元和所述处理后的权值存储到第一输入缓存单元105和第二输入缓存单元106中。
具体的,上述映射单元101将上述处理后的输入神经元和上述处理后的权值分别存储到上述第一输入缓存单元105和第二输入缓存单元106中,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105。
其中,如图2所示,上述映射单元101包括:
第一稀疏处理单元1011,用于接收到第一输入数据后,根据所述第一输入数据以得到第一连接关系数据,并将该第一连接关系数据传输至连接关系处理单元1013;
第二稀疏处理单元1012,用于接收到第二输入数据后,根据所述第二输入数据以得到第二连接关系数据,并将该第二连接关系数据传输至所述连接关系处理单元1013;
所述连接关系处理单元1013,用于根据所述第一连接关系数据和所述第二连接关系数据,以得到第三连接关系数据,并将该第三连接关系数据传输至数据处理单元1014;
所述数据处理单元1014,用于在接收到所述第一输入数据,所述第二输入数据和所述第三连接关系数据后,根据所述第三连接关系数据对所述第一输入数据和所述第二输入数据进行处理,以得到第一输出数据和第二输出数据;
其中,当所述第一输入数据包括至少一个输入神经元,第二输入数据包括至少一个权值时,所述第一连接关系数据为输入神经元的连接关系数据,所述第二连接关系数据为权值的连接关系数据,所述第一输出数据为处理后的输入神经元,所述第二输出数据为处理后的权值;当所述第一输入数据包括至少一个权值,所述第二输入数据包括至少一个输入神经元时,所述第一连接关系数据为权值的连接关系数据,所述第二连接关系数据为输入神经元的连接关系数据,所述第一输出数据为处理后的权值,所述第二输出数据为处理后的输入神经元。
当上述第一输入数据包括至少一个输入神经元时,上述第一连接关系数据为用于表示该至少一个输入神经元中绝对值大于第一阈值的输入神经元的位置的字符串;当上述第一输入数据包括至少一个权值时,上述第一连接关系数据为用于表示输入神经元与输出神经元之间是否有连接的字符串。
当上述第二输入数据包括至少一个输入神经元时,上述第二连接关系数据为用于表示该至少一个输入神经元中绝对值大于第一阈值的输入神经元的位置的字符串;当上述第二输入数据包括至少一个权值时,上述第二连接关系数据为用于表示输入神经元与输出神经元之间是否有连接的字符串。
可选地,上述第一阈值可为0.1、0.08、0.05、0.02、0.01、0或者其他值。
可选地,上述第二阈值可为0.1、0.08、0.06、0.05、0.02、0.01、0或者其他值。
需要指出的是,上述第一阈值和上述第二阈值可以一致,也可以不一致。
其中,上述第一连接关系数据、第二连接关系数据和第三连接关系数据均可以步长索引或者直接索引的形式表示。
具体地,以直接索引形式表示的连接关系数据为由0和1组成的字符串。当上述连接关系数据为权值的连接关系数据时,0表示该权值的绝对值小于或者等于上述第一阈值,即该权值对应的输入神经元与输出神经元之间没有连接,1表示该权值的绝对值大于上述第一阈值,即该权值对应的输入神经元与输出神经元之间有连接。以直接索引形式表示的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示权值的连接关系;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示权值的连接关系。当上述连接关系数据为输入神经元的连接关系数据时,0表示该输入神经元的绝对值小于或者等于上述第一阈值,1表示该输入神经元的绝对值大于上述第一阈值。
以步长索引形式表示的权值的连接关系数据为与输出神经元有连接的输入神经元与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串;以步长索引表示的输入神经元的连接关系数据以当前绝对值大于上述第一阈值的输入神经元与上一个绝对值大于上述第一阈值的输入神经元之间的距离值组成的字符串表示。
举例说明,假设上述第一阈值为0.01,参见图3,图3为本发明实施例提供的一种稀疏神经网络的示意图。如图3中的a图所示,上述第一输入数据为输入神经元,包括输入神经元i1、i2、i3和i4,上述第二输入数据为权值。对于输出神经元o1,权值为w11,w21,w31和w41;对于输出神经元o2,权值w12,w22,w32和w42,其中权值w21,w12和w42的值为0,其绝对值均小于上述第一阈值0.01,稀疏处理单元(即第一稀疏处理单元1011或第二稀疏处理单元1012)确定上述输入神经元i2和输出神经元o1没有连接,上述输入神经元i1和i4与输出神经元o2没有连接,上述输入神经元i1、i3和i4与上述输出神经元o1有连接,上述输入神经元i2和i3与输出神经元o2有连接。以每个输出神经元与所有输入神经元的连接状态表示上述连接关系数据,则上述输出神经元o1的连接关系数据为“1011”,输出神经元o2的连接关系数据为“0110”(即上述连接关系数据为“10110110”);以每个输入神经元与所有输出神经元的连接关系,则输入神经元i1的连接关系数据为“10”,输入神经元i2的连接关系数据为“01”,输入神经元i3的连接关系数据为“11”,输入神经元i4的连接关系数据为“10”(即上述连接关系数据为“10011110”)。
对于上述输出神经元o1,上述映射单元101将上述i1、i3与i4,w11、w31和w41分别存储到上述第一输入缓存单元105和第二输入缓存单元106,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105中;对于输出神经元o2,上述映射单元101将上述i2与i3,和w22与w32,分别存储到上述第一输入缓存单元105和第二输入缓存单元106,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105中。
针对上述输出神经元o1,上述第二输出数据为w11,w31和w41;针对上述输出神经元o2,上述第二输出数据为w22和w32。
当输入神经元i1、i2、i3和i4的值分别为1,0,3,5则上述输入神经元的连接关系数据为“1011”,上述输出的神经元为i1(1),i3(3),i4(5)。
如图3中的b图所示,上述第一输入数据为输入神经元,包括输入神经元i1、i2、i3和i4,上述第二输入数据为权值。对于输出神经元o1,权值为w11,w21,w31和w41;对于输出神经元o2,权值w12,w22,w32和w42,其中权值w21,w12和w42的值为0,稀疏处理单元(即第一稀疏处理单元1011或第二稀疏处理单元1012)确定上述输入神经元i1、i3和i4与上述输出神经元o1有连接,上述输入神经元i2和i3与输出神经元o2有连接。上述输出神经元o1与输入神经元之间的连接关系数据为“021”。其中,该连接关系数据中第一个数字“0”表示第一个与输出神经元o1有连接的输入神经元与第一个输入神经元之间的距离为0,即第一个与输出神经元o1有连接的输入神经元为输入神经元i1;上述连接关系数据中第二个数字“2”表示第二个与输出神经元o1有连接的输入神经元与第一个与输出神经元o1有连接的输入神经元(即输入神经元i1)之间的距离为2,即第二个与输出神经元o1有连接的输入神经元为输入神经元i3;上述连接关系数据中第三个数字“1”表示第三个与输出神经元o1有连接的输入神经元与第二个与该输出神经元o1有连接的输入神经元之间的距离为1,即第三个与输出神经元o1有连接的输入神经元为输入神经元i4。
上述输出神经元o2与输入神经元之间的连接关系数据为“11”。其中,该连接关系数据中的第一数字“1”表示第一个与输出神经元o2有连接的输入神经元与第一个输入神经元(即输入神经元i1)之间的距离为,即该第一个与输出神经元o2有连接关系的输入神经元为输出神经元i2;上述连接关系数据中的第二数字“1”表示第二个与输出神经元o2有连接的输入神经元与第一个与输出神经元o2有连接的输入神经元的距离为1,即第二个与输出神经元o2有连接的输入神经元为输入神经元i3。
对于上述输出神经元o1,上述映射单元101将上述i1、i3与i4,w11、w31和w41分别存储到上述第一输入缓存单元105和第二输入缓存单元106,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105中;对于输出神经元o2,上述映射单元101将上述i2与i3,和w22与w32,分别存储到上述第一输入缓存单元105和第二输入缓存单元106,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105中。
针对上述输出神经元o1,上述处理后的权值为w11,w31和w41;针对上述输出神经元o2,上述处理后的权值为w22和w32。
当输入神经元i1、i2、i3和i4的值分别为1,0,3,5则上述输入神经元的连接关系数据为“021”,上述处理后的输入神经元为i1(1)、i3(3)和i4(5)。
上述连接关系处理单元1013对上述第一连接关系数据和上述第二连接关系数据进行处理,以得到第三连接关系数据。该第三连接关系数据可以直接索引或者步长索引的形式表示。
具体地,上述当上述第一连接关系数据和上述第二连接关系数据均以直接索引的形式表示时,上述连接关系处理单元1013对上述第一连接关系数据和上述第二连接关系数据进行与操作,以得到第三连接关系数据,该第三连接关系数据是以直接索引的形式表示的。
需要说明的是,表示上述第一连接关系数据和第二连接关系数据的字符串在内存中是按照物理地址高低的顺序存储的,可以是由高到低的顺序存储的,也可以是由低到高的顺序存储的。
当上述第一连接关系数据和上述第二连接关系数据均以步长索引的形式表示,且表示上述第一连接关系数据和第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,上述连接关系处理单元1013将上述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,上述连接关系处理单元1013对上述第二连接关系数据的字符串进行同样的处理,得到第五连接关系数据。然后上述连接关系处理单元1013从上述第四连接关系数据的字符串和上述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成一个新的字符串。上述连接关系处理单元1013将上述新的字符串中将每一个元素与其相邻且值小于该元素值的元素进行相减,以得到一个新的元素。按照该方法,对上述新的字串中的每个元素进行相应的操作,以得到上述第三连接关系数据。
举例说明,假设以步长索引的形式表示上述第一连接关系数据和上述第二连接关系数据,上述第一连接关系数据的字符串为“01111”,上述第二连接关系数据的字符串为“022”,上述连接关系处理单元1013将上述第一连接关系数据的字符串中的每个元素与其相邻的前一个元素相加,得到第四连接关系数据“01234”;同理,上述连接关系处理单元1013对上述第二连接关系数据的字符串进行相同的处理后得到的第五连接关系数据为“024”。上述连接关系处理单元1013从上述第四连接关系数据“01234”和上述第五连接关系数据“024”选组相同的元素,以得到新的字符串“024”。上述连接关系处理单元1013将该新的字符串中的每个元素与其相邻的前一个元素进行相减,即0,(2-0),(4-2),以得到上述第三连接数据“022”。
当上述第一连接关系数据和上述第二连接关系数据中的任意一个以步长索引的形式表示,另一个以直接索引的形式表示时,上述连接关系处理单元1013将上述以步长索引表示的连接关系数据转换成以直接索引的表示形式或者将以直接索引表示的连接关系数据转换成以步长索引表示的形式。然后上述连接关系处理单元1013按照上述方法进行处理,以得到上述第三连接关系数据(即上述第二输出数据)。
可选地,当上述第一连接关系数据和上述第二连接关系数据均以直接索引的形式表示时,上述连接关系处理单元1013将上述第一连接关系数据和上述第二连接关系数据均转换成以步长索引的形式表示的连接关系数据,然后按照上述方法对上述第一连接关系数据和上述第二连接关系数据进行处理,以得到上述第三连接关系数据。
具体地,上述第一输入数据可为输入神经元或者权值,第二输入数据可为输入神经元或者权值,且上述第一输入数据和第二输入数据不一致。上述数据处理单元1014根据上述第三连接关系数据从上述第一输入数据(即输入神经元或者权值)中选取与该第三连接关系数据相关的数据,作为第一输出数据;上述数据处理单元1014根据上述第三连接关系数据从上述第二输入数据中选取与该第三连接关系数据相关的数据,作为第二输出数据。
进一步地,上述数据处理单元1014将上述处理后的输入神经元中的每个处理后的输入神经元与其对应的处理后的权值作为一个数据集,将该数据集存储出上述存储单元102中。
举例说明,假设上述第一输入数据包括输入神经元i1,i2,i3和i4,上述第二输入数据包括权值w11,w21,w31和w41,上述第三连接关系数据以直接索引方式表示,为“1010”,则上述数据处理单元1014输出的第一输出数据为输入神经元i1和i3,输出的第二输出数据为权值w11和w31。对于上述输出神经元o1,上述数据处理单元1014将上述i1、i3与i4,w11、w31和w41分别存储到上述第一输入缓存单元105和第二输入缓存单元106,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105中;对于输出神经元o2,上述数据处理单元1014将上述i2与i3,和w22与w32,分别存储到上述第一输入缓存单元105和第二输入缓存单元106,或者分别存储到上述第二输入缓存单元106和第一输入缓存单元105中。
可选地,所述映射单元101对所述输入数据进行处理之前,所述映射单元101还用于:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
可选地,上述第三阈值可为0.5,0.2,0.1,0.05,0.025,0.01,0或者其他值。
其中,上述第四阈值与上述一组输入神经元中输入神经元的个数相关。可选地,该第四阈值=一组输入神经元中的输入神经元个数-1或者该第四阈值为其他值。
可选地,上述第五阈值可为0.5,0.2,0.1,0.05,0.025,0.01,0或者其他值。
其中,上述第六阈值与上述一组权值中的权值个数相关。可选地,该第六阈值=一组权值中的权值个数-1或者该第六阈值为其他值。
需要说明的是,上述第六阈值和上述第四阈值可相同或者不同,上述第三阈值和上述第五阈值可相同或者不同。
上述第一输入缓存单元105,用于缓存第一缓存数据,所述第一缓存数据为所述处理后的输入神经元或处理后的权值。
上述第二输入缓存单元106,用于缓存第二缓存数据,所述第二缓存数据为所述处理后的输入神经元或处理后的权值,且所述第二缓存数据与所述第一缓存数据不一致。
需要说明的是,当上述第一输入缓存单元105用于缓存处理后的输入神经元时,则上述第二输入缓存单元106用于缓存处理后的权值;当上述第二输入缓存单元105用于缓存处理后的权值时,则上述第一输入缓存单元106用于缓存处理后的输入神经元。
需要说明的是,第一阈值、第二阈值、第三阈值、第四阈值、第五阈值和第六阈值可均存储在上述存储单元102、第一输出缓存单元105或者第二输入缓存单元106中;上述第一阈值、第二阈值、第三阈值、第四阈值、第五阈值和第六阈值中部分阈值存储在上述存储单元102、部分阈值存储在上述第一输出缓存单元105中,部分阈值存储在上述第二输出缓存单元106中。
上述指令缓存单元104,用于缓存所述直接存储访问单元103读取神经网络指令。
上述指令控制单元107,用于从所述指令缓存单元104中获取所述神经网络指令,并将所述神经网络指令译码成运算单元108执行的微指令。
上述运算单元108,用于从所述第一输入缓存单元105和所述第二输入缓存单元106中获取所述处理后的输入神经元和所述处理后的权值后,根据所述微指令对所述处理后的输入神经元和所述处理后的权值进行人工神经网络运算,以得到所述运算结果。
上述输出缓存单元109,用于缓存所述运算结果。该输出缓存单元109通过上述直接存储访问单元103将上述运算结果存储到上述存储单元102中。
需要指出的是,上述指令缓存单元104、上述第一输入缓存单元105、上述第二输入缓存单元106和上述输出缓存单元109均可为片上缓存。
其中,片上缓存是位于神经网络运算模块和内存之间的临时存储器,它的容量比内存小,但是交换速度快。片上缓存中的数据是内存中数据的一小部分,这一小部分数据是神经网络运算模块即将要访问的数据,当神经网络运算模块需要读写数据时,就可以直接访问片上缓存,从而加快读写数据的速度。
进一步地,上述运算单元108包括但不限定于三个部分,分别为乘法器、一个或多个加法器(可选地,多个加法器组成加法树)和激活函数单元/激活函数运算器。上述乘法器将第一输入数据(in1)和第二输入数据(in2)相乘得到第一输出数据(out1),过程为:out1=in1*in2;上述加法树将第一输入数据(in3)通过加法树逐级相加得到第二输出数据(out2),其中in3是一个长度为N的向量,N大于1,过称为:out2=in3[1]+in3[2]+...+in3[N],和/或将第一输入数据(in3)通过加法树累加之后得到的结果和第二输入数据(in4)相加得到第二输出数据(out2),过程为:out2=in3[1]+in3[2]+...+in3[N]+in4,或者将第一输入数据(in3)和第二输入数据(in4)相加得到第二输出数据(out2),过称为:out2=in3+in4;上述激活函数单元将第五输入数据(in5)通过激活函数(active)运算得到第三输出数据(out3),过程为:out3=active(in5),激活函数active可以是sigmoid、tanh、relu、softmax等函数,除了做激活操作,激活函数单元可以实现其他的非线性函数运算,可将输入数据(in)通过函数(f)运算得到输出数据(out),过程为:out=f(in)。
上述运算单元108还可以包括池化单元,池化单元将输入数据(in)通过池化运算得到池化操作之后的输出数据(out),过程为out=pool(in),其中pool为池化操作,池化操作包括但不限于:平均值池化,最大值池化,中值池化,输入数据in是和输出out相关的一个池化核中的数据。
需要说明的是,图1b所示的实施例中相关的连接关系数据(包括权值的连接关系数据和输入神经元的连接关系数据)可以采用高维动态数组,可以用链表等等表示。
可以看出,在本发明实施例的方案中,映射单元中的第一稀疏处理单元和第二稀疏处理单元分别对输入神经元和权值进行处理,以分别得到第一连接关系数据和第二连接关系数据。连接关系处理单元对上述第一连接关系数据和第二连接关系数据进行处理,得到第三连接关系数据。数据处理单元根据第三连接关系数据对上述第一输入数据进行处理以得到第一输出数据并输出,同理,根据第三连接关系数据对上述第二输入数据进行处理以得到第二输出数据并输出。通过对输入神经元和权值进行处理,得到处理后的输入神经元和权值,减小了输入数据的数据量,进而减小了总的运算量,提高了运算速度,同时也减小了额外的开销。
需要说明的是,上述神经网络运算模块不仅可以进行稀疏神经网络运算,还可以进行稠密神经网络运算。上述神经网络运算模块特别适用于稀疏神经网络的运算,是因为稀疏神经网络里0值数据或者绝对值很小的数据非常多。通过映射单元可以提出这些数据,在保证运算精度的情况下,可提高运算的效率。
需要指出的是,本发明实施例中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中的神经元和输出层中的神经元,而是对于神经网络中任意相邻的两层神经元,处于网络前馈运算下层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经网络为例,假设一个卷积神经网络有L层,K=1,2,3…L-1,对于第K层和第K+1层来说,第K层被称为输入层,该层中的神经元为上述输入神经元,第K+1层被称为输入层,该层中的神经元为上述输出神经元,即除了顶层之外,每一层都可以作为输入层,其下一层为对应的输出层。
上述各单元可以是硬件电路包括数字电路,模拟电路等等。硬件电路的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器等等。上述神经网络运算模块中的运算单元可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。上述存储单元、指令缓存单元,第一输入缓存单元、第二输入缓存单元和输出缓存单元均可以是任何适当的磁存储介质或者磁光存储介质,比如RRAM,DRAM,SRAM,EDRAM,HBM,HMC等等。
在一种可行的实施例中,本发明实施例提供了一种神经网络运算装置,该神经网络运算装置包括一个或多个如图1b所示实施例所述的神经网络运算模块,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的神经网络运算,将执行结果通过I/O接口传递给其他处理装置;
当所述神经网络运算装置包含多个所述神经网络运算模块时,所述多个所述神经网络运算模块间可以通过特定的结构进行连接并传输数据;
其中,多个所述神经网络运算模块通过PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算;多个所述神经网络运算模块共享同一控制系统或拥有各自的控制系统;多个所述神经网络运算模块共享内存或者拥有各自的内存;多个所述神经网络运算模块的互联方式是任意互联拓扑。
该神经网络运算装置具有较高的兼容性,可通过pcie接口与各种类型的服务器相连接。
在一种可行的实施例中,本发明实施例提供了一种组合处理装置,该组合装置包括如上述神经网络运算装置,通用互联接口和其他处理装置。
上述神经网络运算装置与上述其他处理装置进行交互,共同完成用户指定的操作。参见图4a,图4a为本发明实施例提供的一种整合处理装置的结构示意图。如图4a所示,该组合处理装置包括上述神经网络运算装置401、通用互联接口402和其他处理装置403。
其中,上述其他处理装置403包括中央处理器(Central Processing Unit)、图形处理器(Graphics Processing Unit,GPU)、神经网络处理器等通用/专用处理器中的一种或以上的处理器类型。其他处理装置403所包括的处理器数量不做限制。其他处理装置403作为神经网络运算装置401与外部数据和控制的接口,包括数据搬运,完成对本神经网络运算装置的开启、停止等基本控制;其他处理装置403也可以和神经网络运算装置401协作共同完成运算任务。
上述通用互联接口402,用于在所述神经网络运算装置401与其他处理装置403间传输数据和控制指令。该神经网络运算装置401从其他处理装置403中获取所需的输入数据,写入神经网络运算装置401片上的存储装置;可以从其他处理装置403中获取控制指令,写入神经网络运算装置401片上的控制缓存;也可以读取神经网络运算装置401的存储模块中的数据并传输给其他处理装置403。
可选的,如图4b所示,上述组合处理装置还包括存储装置404,用于保存在本运算单元/运算装置或其他运算单元所需要的数据,尤其适用于所需要运算的数据在本神经网络运算装置401或其他处理装置403的内部存储中无法全部保存的数据。
上述组合装置可以作为手机、机器人、无人机等智能设备的片上系统,有效降低控制部分的核心面积,提高处理速度,降低整体功耗。
在一种可行的实施例中,本发明实施例提供了一种神经网络芯片,该神经网络芯片包括如图1b所示实施例所述的神经网络运算模块,或者上述神经网络运算装置或者上述组合处理装置。
在一种可行的实施例中,本发明实施例提供了一种神经网络芯片封装结构,该神经网络芯片封装结构包括上述神经网络芯片。
在一种可行的实施例中,本发明实施例提供了一种板卡,该板卡包括上述神经网络芯片封装结构。该板卡可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、智能家居、家电、多处理器系统、基于微处理器的系统、机器人、可编程的消费电子设备、网络个人计算机(personalcomputer,PC)、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
请参照图5,图5为本发明实施例提供的一种板卡的结构示意图。如图5所示,上述板卡10包括神经网络芯片封装结构11、第一电气及非电气连接装置12和第一基板(substrate)13。
对于神经网络芯片封装结构11的具体结构不作限定,可选的,如图6所示,上述神经网络芯片封装结构11包括:神经网络芯片111、第二电气及非电气连接装置112、第二基板113。
本发明所涉及的神经网络芯片111的具体形式不作限定,上述的神经网络芯片111包含但不限于将神经网络处理器集成的神经网络晶片上,上述晶片可以由硅材料、锗材料、量子材料或分子材料等制成。根据实际情况(例如:较严苛的环境)和不同的应用需求可将上述神经网络晶片进行封装,以使神经网络晶片的大部分被包裹住,而将神经网络晶片上的引脚通过金线等导体连到封装结构的外边,用于和更外层进行电路连接。
本发明对于第一基板13和第二基板113的类型不做限定,可以是印制电路板(printed circuit board,PCB)或(printed wiring board,PWB),还可能为其它电路板。对PCB的制作材料也不做限定。
本发明所涉及的第二基板113用于承载上述神经网络芯片111,通过第二电气及非电气连接装置112将上述的神经网络芯片111和第二基板113进行连接得到的神经网络芯片封装结构11,用于保护神经网络芯片111,便于将神经网络芯片封装结构11与第一基板13进行进一步封装。
对于上述具体的第二电气及非电气连接装置112的封装方式和封装方式对应的结构不作限定,可根据实际情况和不同的应用需求选择合适的封装方式并进行简单地改进,例如:倒装芯片球栅阵列封装(Flip Chip Ball Grid Array Package,FCBGAP),薄型四方扁平式封装(Low-profile Quad Flat Package,LQFP)、带散热器的四方扁平封装(QuadFlat Package with Heat sink,HQFP)、无引脚四方扁平封装(Quad Flat Non-leadPackage,QFN)或小间距四方扁平式封装(Fine-pitch Ball Grid Package,FBGA)等封装方式。
倒装芯片(Flip Chip),适用于对封装后的面积要求高或对导线的电感、信号的传输时间敏感的情况下。除此之外可以用引线键合(Wire Bonding)的封装方式,减少成本,提高封装结构的灵活性。
球栅阵列(Ball Grid Array),能够提供更多引脚,且引脚的平均导线长度短,具备高速传递信号的作用,其中,封装可以用引脚网格阵列封装(Pin Grid Array,PGA)、零插拔力(Zero Insertion Force,ZIF)、单边接触连接(Single Edge Contact Connection,SECC)、触点阵列(Land Grid Array,LGA)等来代替。
可选的,采用倒装芯片球栅阵列(Flip Chip Ball Grid Array)的封装方式对神经网络芯片111和第二基板113进行封装,具体的神经网络芯片封装结构11的示意图可参照图7a。如图7a所示,上述神经网络芯片封装结构包括:神经网络芯片21、焊盘22、焊球23、第二基板24、第二基板24上的连接点25、引脚26。
其中,焊盘22与神经网络芯片21相连,通过在焊盘22和第二基板24上的连接点25之间焊接形成焊球23,将神经网络芯片21和第二基板24连接,即实现了神经网络芯片21的封装。
引脚26用于与封装结构的外部电路(例如,神经网络处理器的板卡10上的第一基板13)相连,可实现外部数据和内部数据的传输,便于神经网络芯片21或神经网络芯片21对应的神经网络处理器对数据进行处理。对于引脚的类型和数量本发明也不作限定,根据不同的封装技术可选用不同的引脚形式,并遵从一定规则进行排列。
可选的,上述神经网络芯片封装结构还包括绝缘填充物,置于焊盘22、焊球23和连接点25之间的空隙中,用于防止焊球与焊球之间产生干扰。
其中,绝缘填充物的材料可以是氮化硅、氧化硅或氧氮化硅;干扰包含电磁干扰、电感干扰等。
可选的,上述神经网络芯片封装结构还包括散热装置,用于散发神经网络芯片21运行时的热量。其中,散热装置可以是一块导热性良好的金属片、散热片或散热器,例如,风扇。
举例来说,如图7b所示,上述神经网络芯片封装结构11包括:神经网络芯片21、焊盘22、焊球23、第二基板24、第二基板24上的连接点25、引脚26、绝缘填充物27、散热膏28和金属外壳散热片29。其中,散热膏28和金属外壳散热片29用于散发神经网络芯片21运行时的热量。
可选的,上述神经网络芯片封装结构11还包括补强结构,与焊盘22连接,且内埋于焊球23中,以增强焊球23与焊盘22之间的连接强度。
其中,补强结构可以是金属线结构或柱状结构,在此不做限定。
本发明对于第一电气及非电气装置12的具体形式也不作限定,可参照第二电气及非电气装置112的描述,即通过焊接的方式将神经网络芯片封装结构11进行封装,也可以采用连接线连接或插拔方式连接第二基板113和第一基板13的方式,便于后续更换第一基板13或神经网络芯片封装结构11。
可选的,第一基板13包括用于扩展存储容量的内存单元的接口等,例如:同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)、双倍速率同步动态随机存储器(Double Date Rate SDRAM,DDR)等,通过扩展内存提高了神经网络处理器的处理能力。
第一基板13上还可包括快速外部设备互连总线(Peripheral ComponentInterconnect-Express,PCI-E或PCIe)接口、小封装可热插拔(Small Form-factorPluggable,SFP)接口、以太网接口、控制器局域网总线(Controller Area Network,CAN)接口等等,用于封装结构和外部电路之间的数据传输,可提高运算速度和操作的便利性。
将神经网络处理器封装为神经网络芯片111,将神经网络芯片111封装为神经网络芯片封装结构11,将神经网络芯片封装结构11封装为板卡10,可填补目前神经网络的空缺,通过板卡上的接口(插槽或插芯)与外部电路(例如:计算机主板)进行数据交互,即直接通过使用板卡18实现神经网络处理器的功能,并保护神经网络芯片111。且板卡10上还可添加其他模块,提高了神经网络处理器的应用范围和运算效率。
在一种可行的实施例中,本发明实施例提供了一种电子装置,该电子装置包括上述板卡。
其中,该电子装置包括:数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
上述交通工具包括飞机、轮船和/或车辆;上述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
参见图8,图8为本发明实施例提供的一种神经网络运算方法的流程示意图。如图8所示,该方法包括:
S801、神经网络运算模块对输入数据进行处理,以得到处理后的输入数据。
其中,所述输入数据包括至少一个输入神经元和/或至少一个权值,所述对输入数据进行处理之前,所述方法还包括:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
可选地,所述输入数据包括输入神经元和权值,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,所述对输入数据进行处理,以得到处理后的输入数据,包括:
根据所述输入神经元和所述权值获取所述输入神经元的连接关系数据和所述权值的连接关系数据;
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,
根据所述第二连接关系数据对所述输入神经元和所述权值进行处理,以得到所述处理后的输入神经元和所述处理后的权值。
可选地,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引的形式表示,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行与操作,以得到所述第三连接关系数据。
可选地,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
当所述输入神经元的连接关系数据以直接索引的形式表示,所述权值的连接关系数据以步长索引的形式表示时,将所述权值的连接关系数据转换成以直接索引的形式表示的连接关系数据;
当所述权值的连接关系数据以直接索引的形式表示,所述输入神经元的连接关系数据以步长索引的形式表示时,将所述输入神经元的连接关系数据转换成以直接索引的形式表示的连接关系数据;
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行与操作,以得到所述第三连接关系数据。
可选地,当所述输入神经元的连接关系数据和所述权值的连接关系数均以步长的形式表,且表示所述输入神经元的连接关系数据和所述权值的连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
可选地,当表示所述输入神经元的连接关系数据和所述权值的连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
当所述输入神经元的关系数据是以步长索引的形式表示,所述权值的连接关系数据是以直接索引的形式表示时,将所述权值的连接关系数据转换成以步长索引的形式表示的连接关系数据;
当所述权值的关系数据是以步长索引的形式表示,所述输入神经元的连接关系数据是以直接索引的形式表示时,将所述输入神经元的连接关系数据转换成以步长索引的形式表示的连接关系数据;
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
其中,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引或者步长索引的形式表示;
当所述输入神经元的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述输入神经元的绝对值小于或者等于第一阈值,1表示所述输入神经元的绝对值大于所述第一阈值;
当所述输入神经元的连接关系数据以步长索引形式表示时,该连接关系数据为绝对值大于上述第一阈值的输入神经元与上一个绝对值大于上述第一阈值的输入神经元之间的距离值组成的字符串;
当所述权值的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述权值的绝对值小于或者等于第二阈值,即所述权值对应的输入神经元与输出神经元之间没有连接,1表示所述权值的绝对值大于所述第二阈值,即所述权值对应的输入神经元与输出神经元之间有连接;以直接索引形式表示权值的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;
当所述权值的连接关系数据以步长索引的形式表示时,该连接关系数据为与输出神经元有连接的输入神经元的与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串。
S802、神经网络运算模块获取神经运算指令,将所述神经运算指令译码成微指令。
S803、神经网络运算模块根据所述微指令对所述处理后的输入数据进行人工神经网络运算,以得到运算结果。
需要说明的是,上述步骤S801-S803的描述可参见上述图1b所示实施例的相关描述,在此不再叙述。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种神经网络运算方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。
Claims (23)
1.一种神经网络运算模块,其特征在于,包括:
存储单元,用于存储输入数据、神经网络指令和运算结果,所述输入数据包括至少一个输入神经元和至少一个权值;
映射单元,用于通过直接存储访问单元获取所述输入数据后,对所述输入数据进行处理,以得到处理后的输入数据,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,并将所述处理后的输入神经元和所述处理后的权值存储到第一输入缓存单元和第二输入缓存单元中;
指令控制单元,用于从指令缓存单元中获取所述神经网络指令,并将所述神经网络指令译码成运算单元执行的微指令;
所述运算单元,用于从所述第一输入缓存单元和所述第二输入缓存单元中获取所述处理后的输入神经元和所述处理后的权值后,根据所述微指令对所述处理后的输入神经元和所述处理后的权值进行人工神经网络运算,以得到所述运算结果;
输出缓存单元,用于缓存所述运算结果。
2.根据权利要求1所述的神经网络运算模块,其特征在于,所述神经网络运算模块还包括:
所述直接内存访问单元,用于在所述存储单元与所述指令缓存单元、所述映射单元和所述输出缓存单元之间进行数据的读写;
所述第一输入缓存单元,用于缓存第一缓存数据,所述第一缓存数据为所述处理后的输入神经元或处理后的权值;
所述第二输入缓存单元,用于缓存第二缓存数据,所述第二缓存数据为所述处理后的输入神经元或处理后的权值,且所述第二缓存数据与所述第一缓存数据不一致;
所述指令缓存单元,用于缓存所述直接存储访问单元读取所述神经网络指令。
3.根据权利要求1或2所述的神经网络运算模块,其特征在于,所述映射单元包括:
第一稀疏处理单元,用于接收到第一输入数据后,根据所述第一输入数据以得到第一连接关系数据,并将该第一关系数据传输至连接关系处理单元;
第二稀疏处理单元,用于接收到第二输入数据后,根据所述第二输入数据以得到第二连接关系数据,并将该第二关系数据传输至所述连接关系处理单元;
所述连接关系处理单元,用于根据所述第一连接关系数据和所述第二连接关系数据,以得到第三连接关系数据,并将该第三连接关系数据传输至数据处理单元;
所述数据处理单元,用于在接收到所述第一输入数据,所述第二输入数据和所述第三连接关系数据后,根据所述第三连接关系数据对所述第一输入数据和所述第二输入数据进行处理,以得到第一输出数据和第二输出数据;
其中,当所述第一输入数据包括至少一个输入神经元,第二输入数据包括至少一个权值时,所述第一连接关系数据为输入神经元的连接关系数据,所述第二连接关系数据为权值的连接关系数据,所述第一输出数据为处理后的输入神经元,所述第二输出数据为处理后的权值;当所述第一输入数据包括至少一个权值,所述第二输入数据包括至少一个输入神经元时,所述第一连接关系数据为权值的连接关系数据,所述第二连接关系数据为输入神经元的连接关系数据,所述第一输出数据为处理后的权值,所述第二输出数据为处理后的输入神经元。
4.根据权利要求3所述的神经网络运算模块,其特征在于,所述输入神经元的连接关系数据和所述权值的连接关系数据均以直接索引或者步长索引的形式表示;
当所述输入神经元的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述输入神经元的绝对值小于或者等于第一阈值,1表示所述输入神经元的绝对值大于所述第一阈值;
当所述输入神经元的连接关系数据以步长索引形式表示时,该连接关系数据为绝对值大于所述第一阈值的输入神经元与上一个绝对值大于所述第一阈值的输入神经元之间的距离值组成的字符串;
当所述权值的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述权值的绝对值小于或者等于第二阈值,即该权值对应的输入神经元与输出神经元之间没有连接,1表示所述权值的绝对值大于所述第二阈值,即该权值对应的输入神经元与输出神经元之间有连接;以直接索引形式表示权值的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;
当所述权值的连接关系数据以步长索引的形式表示时,该连接关系数据为与输出神经元有连接的输入神经元的与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串。
5.根据权利要求4所述的神经网络运算模块,其特征在于,当所述第一连接关系数据和所述第二连接关系数据均以步长索引的形式表示,且表示所述第一连接关系数据和所述第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述连接关系处理单元具体用于:
将所述第一连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第四连接关系数据;同理,对所述第二连接关系数据的字符串进行同样的处理,得到第五连接关系数据;
从所述第四连接关系数据的字符串和所述第五连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
6.根据权利要求4所述的神经网络运算模块,其特征在于,所述第一连接关系数据和所述第二连接关系数据均以直接索引的形式表示,所述连接关系处理单元具体用于:
对所述第一连接关系数据和所述第二连接关系数据进行与操作,以得到第三连接关系数据。
7.根据权利要求4所述的神经网络运算模块,其特征在于,所述第一连接关系数据与所述第二连接关系数据中任意一个以步长索引的形式表示,另一个以直接索引的形式表示,所述连接关系处理单元具体用于:
若所述第一关系数据是以步长索引的形式表示,将所述第一连接关系数据转换成以直接索引的形式表示的连接关系数据;
若所述第二关系数据是以步长索引的形式表示,将所述第二连接关系数据转换成以直接索引的形式表示的连接关系数据;
对所述第一连接关系数据和所述第二连接关系数据进行与操作,以得到所述第三连接关系数据。
8.根据权利要求7所述的神经网络运算模块,其特征在于,所述第一连接关系数据与所述第二连接关系数据中任意一个以步长索引的形式表示,另一个以直接索引的形式表示,当表示所述第一连接关系数据和所述第二连接关系数据的字符串是按照物理地址由低到高的顺序存储时所述连接关系处理单元还具体用于:
若所述第一关系数据是以步长索引的形式表示,将所述第二连接关系数据转换成以步长索引的形式表示的连接关系数据;
若所述第二关系数据是以步长索引的形式表示,将所述第一连接关系数据转换成以步长索引的形式表示的连接关系数据;
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
9.根据权利要求1或3所述的神经网络运算模块,其特征在于,所述映射单元对所述输入数据进行处理之前,所述映射单元还用于:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
10.根据权利要求1-9任一项所述的神经网络运算模块,其特征在于,所述神经网络运算模块用于稀疏神经网络运算或者稠密神经网络运算。
11.一种神经网络运算装置,其特征在于,所述神经网络运算装置包括一个或多个如权利要求1-10任一项所述的神经网络运算模块,用于从其他处理装置中获取待运算数据和控制信息,并执行指定的神经网络运算,将执行结果通过I/O接口传递给其他处理装置;
当所述神经网络运算装置包含多个所述神经网络运算模块时,所述多个所述神经网络运算模块间可以通过特定的结构进行连接并传输数据;
其中,多个所述神经网络运算模块通过快速外部设备互连总线PCIE总线进行互联并传输数据,以支持更大规模的神经网络的运算;多个所述神经网络运算模块共享同一控制系统或拥有各自的控制系统;多个所述神经网络运算模块共享内存或者拥有各自的内存;多个所述神经网络运算模块的互联方式是任意互联拓扑。
12.一种组合处理装置,其特征在于,所述组合处理装置包括如权利要求11所述的神经网络运算装置,通用互联接口和其他处理装置;
所述神经网络运算装置与所述其他处理装置进行交互,共同完成用户指定的操作。
13.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求10所述的神经网络运算装置或如权利要求12所述的组合处理装置。
14.一种板卡,其特征在于,所述板卡包括如权利要求13所述的神经网络芯片。
15.一种电子装置,其特征在于,所述电子装置包括如权利要求13所述的神经网络芯片或者如权利要求14所述的板卡。
16.一种神经网络运算方法,其特征在于,包括:
对输入数据进行处理,以得到处理后的输入数据;
获取神经运算指令,将所述神经运算指令译码成微指令;
根据所述微指令对所述处理后的输入数据进行人工神经网络运算,以得到运算结果。
17.根据权利要求16所述的方法,其特征在于,所述输入数据包括至少一个输入神经元和/或至少一个权值,所述对输入数据进行处理之前,所述方法还包括:
对所述至少一个输入神经元进行分组,以得到M组输入神经元,所述M为大于或者等于1的整数;
判断所述M组输入神经元的每一组输入神经元是否满足第一预设条件,所述第一预设条件包括一组输入神经元中绝对值小于或者等于第三阈值的输入神经元的个数小于或者等于第四阈值;
当所述M组输入神经元任意一组输入神经元不满足所述第一预设条件时,将该组输入神经元删除;
对所述至少一个权值进行分组,以得到N组权值,所述N为大于或者等于1的整数;
判断所述N组权值的每一组权值是否满足第二预设条件,所述第二预设条件包括一组权值中绝对值小于或者等于第五阈值的权值的个数小于或者等于第六阈值;
当所述N组权值任意一组权值不满足所述第二预设条件时,将该组权值删除。
18.根据权利要求16所述的方法,其特征在于,所述输入数据包括输入神经元和权值,所述处理后的输入数据包括处理后的输入神经元和处理后的权值,所述对输入数据进行处理,以得到处理后的输入数据,包括:
根据所述输入神经元和所述权值获取所述输入神经元的连接关系数据和所述权值的连接关系数据;
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,
根据所述第二连接关系数据对所述输入神经元和所述权值进行处理,以得到所述处理后的输入神经元和所述处理后的权值。
19.根据权利要求18所述的方法,其特征在于,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引的形式表示,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行与操作,以得到所述第三连接关系数据。
20.根据权利要求18所述的方法,其特征在于,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
当所述输入神经元的连接关系数据以直接索引的形式表示,所述权值的连接关系数据以步长索引的形式表示时,将所述权值的连接关系数据转换成以直接索引的形式表示的连接关系数据;
当所述权值的连接关系数据以直接索引的形式表示,所述输入神经元的连接关系数据以步长索引的形式表示时,将所述输入神经元的连接关系数据转换成以直接索引的形式表示的连接关系数据;
对所述输入神经元的连接关系数据和所述权值的连接关系数据进行与操作,以得到所述第三连接关系数据。
21.根据权利要求18所述的方法,其特征在于,当所述输入神经元的连接关系数据和所述权值的连接关系数均以步长的形式表,且表示所述输入神经元的连接关系数据和所述权值的连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
22.根据权利要求18所述的方法,其特征在于,当表示所述输入神经元的连接关系数据和所述权值的连接关系数据的字符串是按照物理地址由低到高的顺序存储时,所述对所述输入神经元的连接关系数据和所述权值的连接关系数据进行处理,以得到第二连接关系数据,包括:
当所述输入神经元的关系数据是以步长索引的形式表示,所述权值的连接关系数据是以直接索引的形式表示时,将所述权值的连接关系数据转换成以步长索引的形式表示的连接关系数据;
当所述权值的关系数据是以步长索引的形式表示,所述输入神经元的连接关系数据是以直接索引的形式表示时,将所述输入神经元的连接关系数据转换成以步长索引的形式表示的连接关系数据;
将所述输入神经元的连接关系数据的字符串中的每一个元素与存储物理地址低于该元素存储的物理地址的元素进行累加,得到的新的元素组成第三连接关系数据;同理,对所述权值的连接关系数据的字符串进行同样的处理,得到第四连接关系数据;
从所述第三连接关系数据的字符串和所述第四连接关系数据的字符串中,选取相同的元素,按照元素值从小到大的顺序排序,组成新的字符串;
将所述新的字符串中每一个元素与其相邻且值小于该元素值的元素进行相减,得到的元素组成所述第三连接关系数据。
23.根据权利要求18-22任一项所述的方法,其特征在于,所述输入神经元的连接关系数据和所述权值的连接关系数据以直接索引或者步长索引的形式表示;
当所述输入神经元的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述输入神经元的绝对值小于或者等于第一阈值,1表示所述输入神经元的绝对值大于所述第一阈值;
当所述输入神经元的连接关系数据以步长索引形式表示时,该连接关系数据为绝对值大于所述第一阈值的输入神经元与上一个绝对值大于所述第一阈值的输入神经元之间的距离值组成的字符串;
当所述权值的连接关系数据以直接索引的形式表示时,该连接关系数据为由0和1组成的字符串,0表示所述权值的绝对值小于或者等于二阈值,即所述权值对应的输入神经元与输出神经元之间没有连接,1表示所述权值的绝对值大于所述第二阈值,即所述权值对应的输入神经元与输出神经元之间有连接;以直接索引形式表示权值的连接关系数据有两种表示顺序:以每个输出神经元与所有输入神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;或者每个输入神经元与所有输出神经元的连接状态组成一个0和1的字符串来表示所述权值的连接关系数据;
当所述权值的连接关系数据以步长索引的形式表示时,该连接关系数据为与输出神经元有连接的输入神经元的与上一个与该输出神经元有连接的输入神经元之间的距离值组成的字符串。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711343478.4A CN109902811B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
TW107144031A TWI771539B (zh) | 2017-12-11 | 2018-12-07 | 神經網絡運算設備和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711343478.4A CN109902811B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
CN201711315639.9A CN109902810B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711315639.9A Division CN109902810B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902811A true CN109902811A (zh) | 2019-06-18 |
CN109902811B CN109902811B (zh) | 2020-03-10 |
Family
ID=66819989
Family Applications (9)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010526360.0A Active CN111738431B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
CN201711343478.4A Active CN109902811B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
CN201711371889.4A Active CN109902817B (zh) | 2017-12-11 | 2017-12-11 | 板卡和神经网络运算方法 |
CN201711371887.5A Active CN109902812B (zh) | 2017-12-11 | 2017-12-11 | 板卡和神经网络运算方法 |
CN201711343477.XA Active CN109902815B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
CN201810042043.4A Active CN109902813B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算模块和方法 |
CN201810042283.4A Active CN109902814B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算模块和方法 |
CN201711371888.XA Active CN109902816B (zh) | 2017-12-11 | 2017-12-11 | 板卡和神经网络运算方法 |
CN201711315639.9A Active CN109902810B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010526360.0A Active CN111738431B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711371889.4A Active CN109902817B (zh) | 2017-12-11 | 2017-12-11 | 板卡和神经网络运算方法 |
CN201711371887.5A Active CN109902812B (zh) | 2017-12-11 | 2017-12-11 | 板卡和神经网络运算方法 |
CN201711343477.XA Active CN109902815B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
CN201810042043.4A Active CN109902813B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算模块和方法 |
CN201810042283.4A Active CN109902814B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算模块和方法 |
CN201711371888.XA Active CN109902816B (zh) | 2017-12-11 | 2017-12-11 | 板卡和神经网络运算方法 |
CN201711315639.9A Active CN109902810B (zh) | 2017-12-11 | 2017-12-11 | 神经网络运算设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (4) | US11803735B2 (zh) |
EP (3) | EP3671573A1 (zh) |
CN (9) | CN111738431B (zh) |
TW (3) | TWI791569B (zh) |
WO (1) | WO2019114649A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597756A (zh) * | 2019-08-26 | 2019-12-20 | 光子算数(北京)科技有限责任公司 | 一种计算电路以及数据运算方法 |
CN111260051A (zh) * | 2020-02-01 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 神经网络运算方法及相关装置 |
CN111930671A (zh) * | 2020-08-10 | 2020-11-13 | 中国科学院计算技术研究所 | 异构智能处理器、处理方法及电子设备 |
CN111930672A (zh) * | 2020-08-10 | 2020-11-13 | 中国科学院计算技术研究所 | 异构智能处理器及电子设备 |
CN111930674A (zh) * | 2020-08-10 | 2020-11-13 | 中国科学院计算技术研究所 | 乘累加运算装置及方法、异构智能处理器及电子设备 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112437930A (zh) * | 2018-07-12 | 2021-03-02 | 华为技术有限公司 | 以熟练的推理速度和功耗,生成神经网络的压缩表示 |
US10963390B2 (en) * | 2018-08-21 | 2021-03-30 | Neuchips Corporation | Memory-adaptive processing method for convolutional neural network and system thereof |
JP6852141B2 (ja) * | 2018-11-29 | 2021-03-31 | キヤノン株式会社 | 情報処理装置、撮像装置、情報処理装置の制御方法、および、プログラム |
CN112749782A (zh) * | 2019-10-31 | 2021-05-04 | 上海商汤智能科技有限公司 | 数据处理方法及相关产品 |
KR20210084123A (ko) * | 2019-12-27 | 2021-07-07 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
CN111553471A (zh) * | 2020-07-13 | 2020-08-18 | 北京欣奕华数字科技有限公司 | 一种数据分析处理方法及装置 |
CN112272074B (zh) * | 2020-10-27 | 2022-11-25 | 国网内蒙古东部电力有限公司电力科学研究院 | 一种基于神经网络的信息传输速率控制方法及系统 |
US20220318604A1 (en) * | 2021-03-30 | 2022-10-06 | Amazon Technologies, Inc. | Sparse machine learning acceleration |
CN115150614A (zh) * | 2021-03-30 | 2022-10-04 | 中国电信股份有限公司 | 图像特征的传输方法、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130204818A1 (en) * | 2012-02-02 | 2013-08-08 | Chen-Sen Ouyang | Modeling method of neuro-fuzzy system |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
CN105874477A (zh) * | 2014-01-23 | 2016-08-17 | 高通股份有限公司 | 配置稀疏神经网络 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
CN107316078A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278945A (en) * | 1992-01-10 | 1994-01-11 | American Neuralogical, Inc. | Neural processor apparatus |
US7367503B2 (en) * | 2002-11-13 | 2008-05-06 | Sandisk Corporation | Universal non-volatile memory card used with various different standard cards containing a memory controller |
CN101625759B (zh) * | 2009-07-30 | 2011-10-12 | 重庆医科大学 | 图像质量评价方法 |
US8385192B2 (en) * | 2009-08-11 | 2013-02-26 | International Business Machines Corporation | Deduplicated data processing rate control |
US8983885B1 (en) * | 2012-09-10 | 2015-03-17 | FEM, Inc. | Prospective media content generation using neural network modeling |
EP3090329A4 (en) * | 2013-10-20 | 2017-10-11 | Pneuron, Corp. | Event-driven data processing system |
JP6204168B2 (ja) * | 2013-11-27 | 2017-09-27 | 株式会社日立製作所 | 転送装置、サーバ、および経路変更方法 |
US9460384B2 (en) * | 2013-12-11 | 2016-10-04 | Qualcomm Incorporated | Effecting modulation by global scalar values in a spiking neural network |
CN103929210B (zh) * | 2014-04-25 | 2017-01-11 | 重庆邮电大学 | 一种基于遗传算法与神经网络的硬判决译码方法 |
US10394851B2 (en) * | 2014-08-07 | 2019-08-27 | Cortical.Io Ag | Methods and systems for mapping data items to sparse distributed representations |
CN104346607B (zh) * | 2014-11-06 | 2017-12-22 | 上海电机学院 | 基于卷积神经网络的人脸识别方法 |
CN104598971A (zh) * | 2015-01-15 | 2015-05-06 | 宁波大学 | 基于径向基函数神经网络的单位脉冲响应函数提取方法 |
CN104679868B (zh) * | 2015-03-06 | 2017-09-26 | 四川深度信息技术有限责任公司 | 一种基于数据间关联关系的遗漏数据填补方法 |
US20160358075A1 (en) * | 2015-06-08 | 2016-12-08 | The Regents Of The University Of Michigan | System for implementing a sparse coding algorithm |
CN105488565A (zh) * | 2015-11-17 | 2016-04-13 | 中国科学院计算技术研究所 | 加速深度神经网络算法的加速芯片的运算装置及方法 |
CN106250939B (zh) * | 2016-07-30 | 2020-07-24 | 复旦大学 | 基于fpga+arm多层卷积神经网络的手写体字符识别方法 |
CN109478139B (zh) * | 2016-08-13 | 2024-01-23 | 英特尔公司 | 用于共享存储器中的访问同步的装置、方法和系统 |
TWI607387B (zh) * | 2016-11-25 | 2017-12-01 | 財團法人工業技術研究院 | 字符辨識系統及其字符辨識方法 |
CN106779068A (zh) * | 2016-12-05 | 2017-05-31 | 北京深鉴智能科技有限公司 | 调整人工神经网络的方法和装置 |
CN108734279B (zh) * | 2017-04-20 | 2021-04-23 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
US20180330235A1 (en) * | 2017-05-15 | 2018-11-15 | National Taiwan University | Apparatus and Method of Using Dual Indexing in Input Neurons and Corresponding Weights of Sparse Neural Network |
CN107729990B (zh) * | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN109697507B (zh) | 2017-10-24 | 2020-12-25 | 安徽寒武纪信息科技有限公司 | 处理方法及装置 |
CN109993291B (zh) * | 2017-12-30 | 2020-07-07 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
-
2017
- 2017-12-11 CN CN202010526360.0A patent/CN111738431B/zh active Active
- 2017-12-11 CN CN201711343478.4A patent/CN109902811B/zh active Active
- 2017-12-11 CN CN201711371889.4A patent/CN109902817B/zh active Active
- 2017-12-11 CN CN201711371887.5A patent/CN109902812B/zh active Active
- 2017-12-11 CN CN201711343477.XA patent/CN109902815B/zh active Active
- 2017-12-11 CN CN201810042043.4A patent/CN109902813B/zh active Active
- 2017-12-11 CN CN201810042283.4A patent/CN109902814B/zh active Active
- 2017-12-11 CN CN201711371888.XA patent/CN109902816B/zh active Active
- 2017-12-11 CN CN201711315639.9A patent/CN109902810B/zh active Active
-
2018
- 2018-07-25 TW TW107125682A patent/TWI791569B/zh active
- 2018-12-07 TW TW107144032A patent/TWI775998B/zh active
- 2018-12-07 TW TW107144031A patent/TWI771539B/zh active
- 2018-12-10 WO PCT/CN2018/120047 patent/WO2019114649A1/zh unknown
- 2018-12-10 EP EP19214548.0A patent/EP3671573A1/en active Pending
- 2018-12-10 EP EP18889924.9A patent/EP3633557A4/en active Pending
- 2018-12-10 EP EP19214536.5A patent/EP3657400A1/en active Pending
-
2019
- 2019-11-27 US US16/697,191 patent/US11803735B2/en active Active
- 2019-11-27 US US16/697,189 patent/US12099917B2/en active Active
- 2019-11-27 US US16/697,198 patent/US12099918B2/en active Active
- 2019-11-27 US US16/697,196 patent/US11657258B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130204818A1 (en) * | 2012-02-02 | 2013-08-08 | Chen-Sen Ouyang | Modeling method of neuro-fuzzy system |
CN105874477A (zh) * | 2014-01-23 | 2016-08-17 | 高通股份有限公司 | 配置稀疏神经网络 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
CN107316078A (zh) * | 2016-04-27 | 2017-11-03 | 北京中科寒武纪科技有限公司 | 用于执行人工神经网络自学习运算的装置和方法 |
CN107239825A (zh) * | 2016-08-22 | 2017-10-10 | 北京深鉴智能科技有限公司 | 考虑负载均衡的深度神经网络压缩方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110597756A (zh) * | 2019-08-26 | 2019-12-20 | 光子算数(北京)科技有限责任公司 | 一种计算电路以及数据运算方法 |
CN111260051A (zh) * | 2020-02-01 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 神经网络运算方法及相关装置 |
CN111260051B (zh) * | 2020-02-01 | 2024-05-14 | 上海寒武纪信息科技有限公司 | 神经网络运算方法及相关装置 |
CN111930671A (zh) * | 2020-08-10 | 2020-11-13 | 中国科学院计算技术研究所 | 异构智能处理器、处理方法及电子设备 |
CN111930672A (zh) * | 2020-08-10 | 2020-11-13 | 中国科学院计算技术研究所 | 异构智能处理器及电子设备 |
CN111930674A (zh) * | 2020-08-10 | 2020-11-13 | 中国科学院计算技术研究所 | 乘累加运算装置及方法、异构智能处理器及电子设备 |
CN111930672B (zh) * | 2020-08-10 | 2024-03-01 | 中国科学院计算技术研究所 | 异构智能处理器及电子设备 |
CN111930674B (zh) * | 2020-08-10 | 2024-03-05 | 中国科学院计算技术研究所 | 乘累加运算装置及方法、异构智能处理器及电子设备 |
CN111930671B (zh) * | 2020-08-10 | 2024-05-14 | 中国科学院计算技术研究所 | 异构智能处理器、处理方法及电子设备 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902811A (zh) | 神经网络运算设备和方法 | |
US11907844B2 (en) | Processing method and accelerating device | |
TW201928794A (zh) | 神經網絡訓練方法及相關產品 | |
TWI791725B (zh) | 神經網絡運算方法、集成電路芯片裝置及相關產品 | |
CN110175673B (zh) | 处理方法及加速装置 | |
TW201928793A (zh) | 神經網絡正向運算方法及相關產品 | |
TWI767097B (zh) | 集成電路芯片裝置及相關產品 | |
CN111382864B (zh) | 一种神经网络训练方法及装置 | |
WO2019165946A1 (zh) | 集成电路芯片装置、板卡及相关产品 | |
TWI768160B (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 | ||
CB02 | Change of applicant information |
Address after: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant after: Zhongke Cambrian Technology Co., Ltd Address before: 100000 room 644, No. 6, No. 6, South Road, Beijing Academy of Sciences Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |