CN109284822A - 一种神经网络运算装置及方法 - Google Patents
一种神经网络运算装置及方法 Download PDFInfo
- Publication number
- CN109284822A CN109284822A CN201710927144.5A CN201710927144A CN109284822A CN 109284822 A CN109284822 A CN 109284822A CN 201710927144 A CN201710927144 A CN 201710927144A CN 109284822 A CN109284822 A CN 109284822A
- Authority
- CN
- China
- Prior art keywords
- data
- power
- instruction
- neural network
- neuron
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 142
- 238000000034 method Methods 0.000 title claims description 40
- 210000002569 neuron Anatomy 0.000 claims abstract description 182
- 238000013527 convolutional neural network Methods 0.000 claims description 57
- 230000004913 activation Effects 0.000 claims description 31
- 238000004364 calculation method Methods 0.000 claims description 28
- 210000002364 input neuron Anatomy 0.000 claims description 23
- 210000004205 output neuron Anatomy 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 20
- 210000004027 cell Anatomy 0.000 claims description 9
- 210000005036 nerve Anatomy 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 8
- 235000013399 edible fruits Nutrition 0.000 claims description 5
- 230000006870 function Effects 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 5
- 210000003900 secondary neuron Anatomy 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 4
- 239000011159 matrix material Substances 0.000 description 71
- 239000010410 layer Substances 0.000 description 48
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 8
- 239000000284 extract Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 210000004218 nerve net Anatomy 0.000 description 3
- 230000001537 neural effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本披露提供了一种神经网络运算装置,包括第一幂次转换单元,用于将神经网络输入数据中的非幂次数据转换为幂次数据;运算单元,用于接收神经网络运算的数据和指令并根据运算指令对其接收的神经元数据及权值数据执行神经网络运算;其中,所述运算单元接收的所述数据包括经第一幂次转换单元转换的幂次数据。本披露提供的技术方案具有计算速度快,效率高的优点。
Description
技术领域
本披露涉及一种神经网络运算装置及方法。
背景技术
数据处理是大部分算法需要经过的步骤或阶段,在计算机引入数据处理领域后,越来越多的数据处理通过计算机来实现,现有的算法中有计算设备在进行神经网络的数据计算时速度慢,效率低。
披露内容
本披露实施例提供了一种神经网络运算装置及方法,可提升计算装置的处理速度,提高效率。
第一方面,提供一种神经网络运算装置,包括:第一幂次转换单元,用于将神经网络输入数据中的非幂次数据转换为幂次数据;运算单元,用于接收神经网络运算的数据和指令并根据运算指令对其接收的神经元数据及权值数据执行神经网络运算;其中,所述运算单元接收的所述数据包括经第一幂次转换单元转换的幂次数据;所述指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。
可选的,还包括:存储单元,用于存储数据和指令;其中,该存储单元与所述第一幂次转换单元连接以接收所述幂次数据。
可选的,还包括:控制单元及输出神经元缓存单元;其中
所述控制单元,与所述存储单元连接,用于控制数据和指令的交互,其接收该存储单元发送的数据和指令,并将指令译码成运算指令;
所述运算单元,与所述控制单元连接,接收该控制单元发送的数据和运算指令,并根据运算指令对其接收的神经元数据及权值数据执行神经网络运算;以及
所述输出神经元缓存单元,与所述运算单元连接,用于接收运算单元输出的神经元数据并发送至所述控制单元作为下一层神经网络运算的输入数据。
可选的,所述控制单元,包括:
数据控制模块,与所述存储单元连接,用于实现存储单元和各缓存模块之间的数据和指令交互;
指令缓存模块,与所述数据控制模块连接,用于接收该数据控制模块发送的指令;
译码模块,与所述指令缓存模块连接,用于从指令缓存模块中读取指令,并将其译码成运算指令;
输入神经元缓存模块,与所述数据控制模块连接,用于从该数据控制模块获取相应的输入神经元数据;
权值缓存模块,与所述数据控制模块连接,用于从数据控制模块获取相应的权值数据;其中,
所述运算单元,分别与所述译码模块、输入神经元缓存模块及权值缓存模块连接,接收各运算指令、神经元数据及权值数据,根据运算指令对其接收的神经元数据和权值数据执行相应的神经网络运算。
可选的,所述第一幂次转换单元用于将神经网络输入数据中的非幂次权值数据转换为幂次权值数据。
可选的,还包括:第二幂次转换单元;其中,
所述第一幂次转换单元用于将神经网络输入数据中的非幂次神经元数据及非幂次权值数据分别转换为幂次神经元数据及幂次权值数据,并发送至所述存储单元;
所述第二幂次转换单元与所述输出神经元缓存单元连接,用于将其接收的神经元数据转换为幂次神经元数据并发送至所述控制单元作为下一层神经网络运算的输入数据。
可选的,若神经网络输入数据为幂次数据则直接存入神经网络运算装置。
可选的,幂次数据包括幂次神经元数据、幂次权值数据;其中,
所述幂次神经元数据表示神经元数据的数值采用其幂指数值形式表示,其中,所述幂次神经元数据包括符号位和幂次位,符号位采用一位或多位比特位表示神经元数据的符号,幂次位采用m 位比特位表示神经元数据的幂次位数据,m为大于1的正整数;
所述幂次权值数据表示权值数据的数值采用其幂指数值形式表示,其中,所述幂次权值数据包括符号位和幂次位,符号位采用一位或多位比特位表示权值数据的符号,幂次位采用m位比特位表示权值数据的幂次位数据,m为大于1的正整数。
可选的,该神经网络运算装置的存储单元预存有编码表,用于提供幂次神经元数据及幂次权值数据的每个幂次位数据对应的指数数值。
可选的,所述编码表设置一个或者多个幂次位数据为置零幂次位数据,其对应的幂次神经元数据及幂次权值数据为0。
可选的,所述卷积神经网络运算指令包括:卷积计算指令,用于将卷积核w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果。
可选的,所述卷积神经网络运算指令包括:COMPUTE指令、CONFIG指令、IO指令、NOP指令、JUMP指令或MOVE指令;
所述COMPUTE指令包括:卷积神经网络sigmoid指令、卷积神经网络TanH指令、卷积神经网络ReLU指令以及卷积神经网络group指令;
所述卷积神经网络sigmoid指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述sigmoid指令将输出结果做sigmoid激活;
所述卷积神经网络TanH指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述TanH指令将输出结果做TanH激活;
所述卷积神经网络ReLU指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述ReLU指令将输出结果做ReLU激活;
所述卷积神经网络group指令,用于装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后根据所述group指令将输出结果做激活。
可选的,所述CONFIG指令,用于指引装置在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
或所述IO指令,用于指引装置实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部存储空间;
或所述NOP指令,用于指引装置清空当前装置内部所有控制信号缓存队列中的控制信号;
或所述JUMP指令,用于指引装置实现控制流的跳转;
或所述MOVE指令,用于指引装置内部地址空间中某一地址的数据搬运至内部地址空间的另一地址。
第二方面,提供一种神经网络运算方法,所述方法包括:
获取指令、幂次神经元数据及幂次权值数据;
根据运算指令对幂次神经元数据及幂次权值数据进行神经网络运算;
所述指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,
所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;
所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。
可选的,所述方法还包括:
将神经网络运算后的神经元数据输出并作为下一层神经网络运算的输入数据;重复神经网络运算步骤直到神经网络最后一层运算结束。
可选的,所述获取指令、权值数据及神经元数据,包括:
将指令、神经元数据及权值数据输入存储单元;
数据控制模块接收该存储单元发送的指令、神经元数据及权值数据;
指令缓存模块、输入神经元缓存模块及权值缓存模块分别接收该数据控制模块发送的指令、神经元数据及权值数据;其中,若输入存储单元的权值数据为非幂次权值数据则经第一幂次转换单元转换为幂次权值数据输入所述存储单元;若输入存储单元的权值数据为幂次权值数据则直接输入所述存储单元;输出神经元缓存单元接收所述计算单元发送的神经网络运算后得到的神经元数据并发送至所述数据控制模块作为下一层神经网络运算的输入数据。
可选的,所述获取指令、权值数据及神经元数据,包括:
将指令、神经元数据及权值数据输入存储单元;
数据控制模块接收该存储单元发送的指令、神经元数据及权值数据;
指令缓存模块、输入神经元缓存模块及权值缓存模块分别接收该数据控制模块发送的指令、神经元数据及权值数据;其中,若输入存储单元的神经元数据及权值数据为非幂次神经元数据及非幂次权值数据则经第一幂次转换单元转换为幂次神经元数据及幂次权值数据输入所述存储单元;若输入存储单元的神经元数据及权值数据为幂次神经元数据及幂次权值数据则直接输入所述存储单元;出神经元缓存单元接收所述计算单元发送的神经网络运算后得到的神经元数据;第二幂次转换单元接收输出神经元缓存单元发送的神经元数据将其转换为幂次神经元数据,并发送至所述数据控制模块作为下一层神经网络运算的输入数据。
可选的,所述方法包括:
译码模块从指令缓存模块中读取指令,并将其译码成各运算指令;
运算单元分别接收所述译码模块、输入神经元缓存模块及权值缓存模块发送的运算指令、神经元数据以及权值数据,并根据运算指令对神经元数据和权值数据进行神经网络运算。
可选的,所述卷积神经网络运算指令包括:卷积计算指令,用于将卷积核w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果。
可选的,所述卷积神经网络运算指令包括:COMPUTE指令、CONFIG指令、IO指令、NOP指令、JUMP指令或MOVE指令;
所述COMPUTE指令包括:卷积神经网络sigmoid指令、卷积神经网络TanH指令、卷积神经网络ReLU指令以及卷积神经网络group指令;
所述卷积神经网络sigmoid指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述sigmoid指令将输出结果做sigmoid激活;
所述卷积神经网络TanH指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述TanH指令将输出结果做TanH激活;
所述卷积神经网络ReLU指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述ReLU指令将输出结果做ReLU激活;
所述卷积神经网络group指令,用于装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后根据所述group指令将输出结果做激活。
可选的,所述CONFIG指令,用于指引装置在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
或所述IO指令,用于指引装置实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部存储空间;
或所述NOP指令,用于指引装置清空当前装置内部所有控制信号缓存队列中的控制信号;
或所述JUMP指令,用于指引装置实现控制流的跳转;
或所述MOVE指令,用于指引装置内部地址空间中某一地址的数据搬运至内部地址空间的另一地址。
可以看出,通过本披露实施例,计算装置设置有寄存器单元了存储介质,其分别存储标量数据以及矩阵数据,并且本披露为两种存储器分配了单位读取方式以及批量读取方式,通过对矩阵数据的特点分配匹配其特征的数据读取方式,能够很好的利用带宽,避免因为带宽的瓶颈对矩阵计算速度的影响,另外,对于寄存器单元来说,由于其存储的为标量数据,设置了标量数据的读取方式,提高了带宽的利用率,所以本披露提供的技术方案能够很好的利用带宽,避免带宽对计算速度的影响,所以其具有计算速度快,效率高的优点。
附图说明
图1A是一种计算装置结构示意图。
图1B是另一种计算装置结构示意图。
图2A是本披露实施例提供的计算装置的另一种结构示意图。
图2B是本披露实施例提供的卷积计算指令的流程示意图。
图3为依据本披露的神经网络运算装置的结构示意图。
图4为依据本披露的神经网络运算装置的结构示意图。
图5为依据本披露的神经网络运算方法流程图。
图5.1为依据本披露的编码表的示意图。
图5.2为依据本披露的编码表的另一示意图。
图5.3为依据本披露的编码表的另一示意图。
图5.4为依据本披露的编码表的另一示意图。
图5.5为依据本披露的幂次数据的表示方法示意图。
图5.6为依据本披露的神经元与幂次权值的乘法操作示意图。
图5.7为依据本披露的神经元与幂次权值的乘法操作示意图。
图6为依据本披露的神经网络运算方法流程图。
图6.1为依据本披露的编码表的示意图。
图6.2为依据本披露的编码表的另一示意图。
图6.3为依据本披露的编码表的另一示意图。
图6.4为依据本披露的编码表的另一示意图。
图6.5为依据本披露的幂次数据的表示方法示意图。
图6.6为依据本披露的幂次神经元与幂次权值的乘法操作示意图。
具体实施方式
本披露提供一种矩阵计算装置,包括存储单元、寄存器单元和矩阵运算单元,存储单元中存储有矩阵,寄存器单元中存储有矩阵存储的地址矩阵运算单元根据矩阵运算指令在寄存器单元中获取矩阵地址,然后,根据该矩阵地址在存储单元中获取相应的矩阵,接着,根据获取的矩阵进行矩阵运算,得到矩阵运算结果。本披露将参与计算的矩阵数据暂存在高速暂存存储器上,使得矩阵运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量矩阵计算任务的执行性能。
需要说明的是,本披露具体实施方式中的矩阵具体可以为m*n矩阵、1*n矩阵或m*1矩阵,其中m、n为大于等于2的整数。当矩阵为1*n矩阵或m*1矩阵时,也可以称为向量,下述矩阵均可以为上述三种类型矩阵中的任意一种,下面不在赘述。以人工神经网络算法为例,多种神经网络算法中都含有大量的矩阵运算。在神经网络中,输出神经元的运算表达式为y=f(wx+b),其中 w是第一矩阵,x是第二矩阵、b是第三矩阵,计算输出矩阵y的过程为矩阵w与矩阵x相乘,加上矩阵b。因此,矩阵运算成为目前各种计算装置在设计时需要考虑的问题,现有的矩阵的计算速度慢,无法满足用户对计算装置的要求,效率低。
参阅图1A,图1A为一种计算装置,在如图1A所示的矩阵的计算装置中,其包含多个通用处理器101(CPU),每个CPU均包含自身的内存,其处理的方法可以为,多个CPU并行处理矩阵的计算,此方案虽在在矩阵的计算中采用并行处理的方式,但是其并不能有效的提高效率,因为对于矩阵运算中,第二矩阵运算的结果可能需要使用第一矩阵运算的结果,具体的,第一矩阵运算为f(1)=A+B,第二矩阵运算为:f(2)=f(1)+C,对于第二矩阵运算来说,其需要提取第一矩阵运算的结果f(1)才能够进行实际的矩阵计算处理,此种情况在神经网络计算中尤为突出,由于多个CPU并行处理矩阵运算,那么在矩阵计算的分配时,很有可能CPU1执行第一矩阵运算, CPU2执行第二矩阵运算,那么对于CPU2来说,其需要从CPU1提取第一矩阵运算的结果f(1),所以对于多CPU并行处理矩阵来说,多个CPU之间的通讯成为矩阵运算的瓶颈,影响矩阵计算的速度。
参阅图1B,图1B为另一种计算装置,在如图1B所示的计算装置中,其包含有图形处理器 (GPU)102,通过GPU102来执行矩阵的运算,对于GPU来说,其本身也包含内存1021,GPU102 在处理矩阵运算时,GPU102需要从内存1021中提取矩阵运算所需的矩阵,矩阵由于其数据量大,单个矩阵所占用的存储空间比标量要大很多,对于GPU102来说,虽然其运算能够非常强,但是 GPU102的内存的容量不够,无法存储大量的矩阵,为了解决这个问题,图1B配置了片外数据库 103,GPU102可以从片外数据库103中读取矩阵,具体的读取方式为,GPU102从片外数据库103 中提取待计算的矩阵,将该矩阵存储在内存1021中,在执行矩阵运算时,进行矩阵指令的译码处理,然后从内存1021中提取该矩阵进行计算。此技术方案在执行矩阵计算中,GPU102进行矩阵指令的译码会占用GPU很大部分的计算能力,,影响矩阵的计算速度,效率低。
本披露中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络前馈运算下层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
参阅图2A,图2A提供了一种计算装置,该计算装置包括:存储介质611(可选的)、寄存器单元612、互联模块613、运算单元614、控制单元615和数据访问单元616;
其中,运算单元614包括:加法计算器、乘法计算器、比较器、激活运算器中至少二种。
互联模块613,用于控制运算单元614中计算器的连接关系使得该至少二种计算器组成不同的计算拓扑结构。
指令存储单元(可以是寄存器单元,指令缓存,高速暂存存储器)612,用于存储该运算指令、数据块的在存储介质的地址、运算指令对应的计算拓扑结构。
该运算指令可以包括:操作域以及操作码,以卷积计算指令为例,如表1所示,其中,寄存器0、寄存器1、寄存器堆2、寄存器3、寄存器4可以为操作域。其中,每个寄存器0、寄存器1、寄存器2、寄存器3、寄存器4可以是一个或者多个寄存器。
存储介质611可以为片外存储器,当然在实际应用中,也可以为片内存储器,用于存储数据块,该数据块具体可以为n维数据,n为大于等于1的整数,例如,n=1时,为1维数据,即向量,如 n=2时,为2维数据,即矩阵,如n=3或3以上时,为多维数据。
控制单元615,用于从寄存器单元612内提取运算指令、该运算指令对应的操作域以及该运算指令对应的第一计算拓扑结构,将该运算指令译码成执行指令,该执行指令用于控制运算单元执行运算操作,将该操作域传输至数据访问单元616,将该计算拓扑结构传输至互联模块613。
数据访问单元616,用于从存储介质611中提取该操作域对应的数据块,并将该数据块传输至互联模块613。
互联模块613、用于接收第一计算拓扑结构和数据块。一个实施例里,互联模块613还根据第一计算拓扑结构对数据块重新摆放。
运算单元614,用于该执行指令调用运算单元614的计算器对该数据块执行运算操作得到运算结果,将该运算结果传输至数据访问单元存储在存储介质内。一个实施例里,运算单元614,用于按第一计算拓扑结构以及该执行指令调用计算器对重新摆放的数据块执行运算操作得到运算结果,将该运算结果传输至数据访问单元存储在存储介质内。
另一个实施例里,互联模块613、用于依据控制运算单元614中计算器的连接关系形成第一计算拓扑结构。
本披露提供的计算装置设置了互联模块,此互联模块能够根据运算指令的需要将运算单元内的计算器组合连接得到与该运算指令对应的计算拓扑结构,进而在后续的运算单元运算时无需对计算的中间数据执行存储或提取操作,此结构实现单一指令即能实现一次输入即能够进行多次计算器的运算得到计算结果的优点,提高了计算效率。
下面通过不同的运算指令来说明如图2A所示的计算装置的具体计算方法,这里的运算指令以卷积计算指令为例,该卷积计算指令可以应用在神经网络中,所以该卷积计算指令也可以称为卷积神经网络。对于卷积计算指令来说,其实际需要执行的公式可以为:s=s(∑wxi+b),其中,即将卷积核w乘以输入数据xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果s。依据该公式即可以得到该计算拓扑结构为,乘法运算器-加法运算器-(可选的)激活运算器。
上述卷积计算指令可以包括指令集,该指令集包含有不同功能的卷积神经网络COMPUTE指令以及CONFIG指令、IO指令、NOP指令、JUMP指令和MOVE指令。在一种实施例中,COMPUTE 指令包括:
卷积神经网络sigmoid指令,根据该指令,装置分别从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,优选的,然后将输出结果做sigmoid激活;
卷积神经网络TanH指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,优选的,然后将输出结果做TanH激活;
卷积神经网络ReLU指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,优选的,然后将输出结果做ReLU激活;以及
卷积神经网络group指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,优选的,然后将输出结果做激活。
CONFIG指令在每层人工神经网络计算开始前配置当前层计算需要的各种常数。
IO指令实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间。
NOP指令负责清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕。NOP指令本身不包含任何操作;
JUMP指令负责控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转;
MOVE指令负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
如图2A所示的计算装置执行卷积计算指令的方法具体可以为:
控制单元615从寄存器单元612内提取卷积计算指令、卷积计算指令对应的操作域以及卷积计算指令对应的第一计算拓扑结构(乘法运算器-加法运算器-加法运算器-激活运算器),控制单元将该操作域传输至数据访问单元,将该第一计算拓扑结构传输至互联模块。
数据访问单元存储介质内提取该操作域对应的卷积核w和偏置b(当b为0时,不需要提取偏置b),将卷积核w和偏置b传输至计算单元。
计算单元的乘法运算器将卷积核w与输入数据Xi执行乘法运算以后得到第一结果,将第一结果输入到加法运算器执行加法运算得到第二结果,将第二结果和偏置b执行加法运算得到第三结果,将第三结果输到激活运算器执行激活运算得到输出结果s,将输出结果s传输至数据访问单元存储至存储介质内。其中,每个步骤后都可以直接输出结果传输到数据访问存储至存储介质内,无需下面的步骤。另外,将第二结果和偏置b执行加法运算得到第三结果这一步骤可选,即当b 为0时,不需要这个步骤。
另外,加法运算和乘法运算的顺序可以调换。
本披露提供的技术方案通过一个指令即卷积计算指令即实现了卷积的计算,在卷积计算的中间数据(例如第一结果、第二结果、第三结果)均无需存储或提取,减少了中间数据的存储以及提取操作,所以其具有减少对应的操作步骤,提高卷积的计算效果的优点。
图2B是本披露实施例提供的卷积神经网络运算装置执行卷积神经网络的流程图,如图2B所示,执行卷积神经网络指令的过程包括:
在步骤S6B1,在指令存储单元的首地址处预先存入一条IO指令。
在步骤S6B2,控制器单元从指令存储单元的首地址读取该条IO指令,根据译出的控制信号,数据访问单元从存储介质读取相应的所有卷积神经网络运算指令,并将其缓存在指令存储单元中。
在步骤S6B3,控制器单元接着从指令存储单元读入下一条IO指令,根据译出的控制信号,数据访问单元从存储介质读取运算单元需要的所有数据块(例如,包括输入数据、用于作快速的激活函数运算的插值表、用于配置运算器件参数的常数表、偏置数据等)。
在步骤S6B4,控制器单元接着从指令存储单元读入下一条CONFIG指令,根据译出的控制信号,装置配置该层神经网络计算需要的各种常数。例如,运算单元根据控制信号里的参数配置单元内部寄存器的值,所述参数包括例如激活函数需要的数据。
在步骤S6B5,控制器单元接着从指令存储单元读入下一条COMPUTE指令,根据译出的控制信号,互连模块将卷积窗口内的输入数据发给计算单元内的各计算器。
在步骤S6B6,根据COMPUTE指令译出的控制信号,互联模块将乘法计算器、加法计算器和激活计算器连接形成第一计算拓扑结构。
在步骤S6B7,乘法运算器将卷积核w与输入数据Xi执行乘法运算以后得到第一结果,将第一结果输入到加法运算器执行加法运算得到第二结果,将第二结果和偏置b执行加法运算得到第三结果,将第三结果输入到激活运算器执行激活运算得到输出结果s,将输出结果s传输至数据访问单元存储至存储介质内。其中,将第二结果和偏置b执行加法运算得到第三结果这一步骤可选,即当b为0时,不需要这个步骤。
本披露还提供了一种神经网络运算装置。图3为依据本实施例神经网络运算装置的示意图。在一种可选实施例中,该神经网络运算装置可以为如图2A所示的计算装置,在如图2A所示的计算装置内,可以添加在幂次转换单元,该幂次转换单元与存储介质连接,用于将神经网络输入数据中非幂次权值数据转换为幂次权值数据。可选的,上述计算装置还可以包括:控制单元以及运算单元等等,控制单元以及运算单元的具体描述可以参见如图2A所示实施例的描述,这里不再赘述,另外,上述如图2A所示的计算装置还可以增加或扩展如图3所示的神经网络运算装置。另一种可选实施例中,神经网络运算装置的结构如图3,包括:
存储单元1,用于存储数据和指令;
控制单元,与所述存储单元连接,用于控制数据和指令的交互,其接收该存储单元发送的数据和指令,并将指令译码成运算指令;
运算单元7,与所述控制单元连接,接收该控制单元发送的数据和运算指令,并根据运算指令对其接收的神经元数据及权值数据执行神经网络运算;
输出神经元缓存单元8,与所述运算单元连接,用于接收运算单元输出的神经元数据;并将其发送至所述控制单元。由此可作为下一层神经网络运算的输入数据;以及
幂次转换单元9,其与所述存储单元连接,用于将神经网络输入数据中非幂次权值数据转换为幂次权值数据,并发送至所述存储单元。而对于神经网络输入数据中的幂次权值数据,则直接存入存储单元。
具体的,所述控制单元包括:
数据控制模块2,与所述存储单元连接,用于存储单元和各缓存模块之间的数据和指令交互;
指令缓存模块3,与所述数据控制模块连接,用于接收数据控制模块发送的指令;
译码模块4,与所述指令缓存模块连接,用于从指令缓存模块中读取指令,并将其译码成各运算指令;
输入神经元缓存模块5,与所述数据控制模块连接,用于接收数据控制模块发送的神经元数据;
权值缓存模块6,与所述数据控制模块连接,用于接收从数据控制模块发送的权值数据。
进一步的,所述运算单元7,分别与所述译码模块、输入神经元缓存模块及权值缓存模块连接,接收各运算指令、神经元数据及权值数据,用于根据各运算指令对其接收的神经元数据和权值数据执行相应的运算。所述输出神经元缓存单元8,与所述运算单元连接,用于接收运算单元输出的神经元数据;并将其发送至所述控制单元的数据控制模块2。由此可作为下一层神经网络运算的输入数据
其中,存储单元从外部地址空间接收数据和指令,该数据包括神经网络权值数据、神经网络输入数据等。
进一步的,幂次转换操作有多种可选方式。下面列举本实施例所采用的三种幂次转换操作:
第一种幂次转换方法:
其中,din为幂次转换单元的输入数据,dout为幂次转换单元的输出数据,sin为输入数据的符号, sout为输出数据的符号,din+为输入数据的正数部分,din+=din×sin,dout+为输出数据的正数部分,dout+=dout×sout,表示对数据x做取下整操作。
第二种幂次转换方法:
dout+=|log2(din+)|
其中,
其中,din为幂次转换单元的输入数据,dout为幂次转换单元的输出数据,sin为输入数据的符号, sout为输出数据的符号,din+为输入数据的正数部分,din+=din×sin,dout+为输出数据的正数部分, dout+=dout×sout,表示对数据x做取上整操作。
第三种幂次转换方法:
其中,
其中,din为幂次转换单元的输入数据,dout为幂次转换单元的输出数据;sin为输入数据的符号, sout为输出数据的符号;din+为输入数据的正数部分,din+=din×sin,dout+为输出数据的正数部分, dout+=dout×sout;[x]表示对数据x做四舍五入操作。
本披露还提供了另一种神经网络运算装置。图4为依据本实施例神经网络运算装置的示意图。请参照图4,本实施例神经网络运算装置,包括:
存储单元101,用于存储数据和指令;该存储单元从外部地址空间接收数据和指令,该数据包括神经网络权值数据、神经网络输入数据等。
控制单元,与所述存储单元连接,用于控制数据和指令的交互,其接收该存储单元发送的数据和指令,并将指令译码成运算指令;
运算单元107,与所述控制单元连接,接收该控制单元发送的数据和运算指令,并根据运算指令对其接收的权值数据和神经元数据执行神经网络运算;
输出神经元缓存单元108,与所述运算单元连接,用于接收运算单元输出的神经元数据,并将其发送至所述控制单元;
幂次转换单元109,其与所述存储单元连接,用于将神经网络输入数据中非幂次神经元数据及非幂次权值数据分别转换为幂次神经元数据及幂次权值数据,并发送至所述存储单元。而对于神经网络输入数据中的幂次神经元数据及幂次权值数据,则直接存入存储单元;以及
幂次转换单元110,其与所述输出神经元缓存单元108连接,用于将神经网络运算后的神经元数据转换为幂次神经元数据,并发送至所述控制单元。
进一步的,所述控制单元包括:
数据控制模块102,与所述存储单元连接,用于存储单元和各缓存模块之间的数据和指令交互;
指令缓存模块103,与所述数据控制模块连接,用于接收数据控制模块发送的指令;
译码模块104,与所述指令缓存模块连接,用于从指令缓存模块中读取指令,并将其译码成各运算指令;
输入神经元缓存模块105,与所述数据控制模块连接,用于接收数据控制模块发送的神经元数据;
权值缓存模块106,与所述数据控制模块连接,用于接收从数据控制模块发送的权值数据。
具体的,所述运算单元107,分别与所述译码模块、输入神经元缓存模块及权值缓存模块连接,接收各运算指令、神经元数据及权值数据,用于根据各运算指令对其接收的神经元数据和权值数据执行相应的运算。
所述幂次转换单元110,与所述数据控制模块连接,用于将神经网络运算后的神经元数据转换为幂次神经元数据,并发送至所述控制单元的数据控制模块102。通过幂次转换单元110获得的幂次神经元数据可作为神经网络运算下一层的输入神经元。
另外,所述幂次转换的具体操作方法与前述实施例相同,此处不再赘述。
另外,本披露实施例还提供了一种神经网络运算方法,图5为本实施例神经网络运算方法的流程图。具体而言,本披露实施例的神经网络为多层神经网络,对于每层神经网络可按图5所示的运算方法进行运算,其中,神经网络第一层输入幂次权值数据可通过存储单元从外部地址读入,若外部地址读入的权值数据已经为幂次权值数据则直接传入存储单元,否则先通过幂次转换单元转换为幂次权值数据。请参照图5,本实施例单层神经网络运算方法,包括:
步骤S1,获取指令、神经元数据及幂次权值数据。
其中,所述步骤S1包括以下子步骤:
S11,将指令、神经元数据及权值数据输入存储单元;其中,对幂次权值数据直接输入存储单元,对非幂次权值数据经过幂次转换单元转换后输入存储单元;
S12,数据控制模块接收该存储单元发送的指令、神经元数据及幂次权值数据;
S13,指令缓存模块、输入神经元缓存模块及权值缓存模块分别接收所述数据控制模块发送的指令、神经元数据及幂次权值数据并分发给译码模块或运算单元。
所述幂次权值数据表示权值数据的数值采用其幂指数值形式表示,具体为,幂次权值数据包括符号位和幂次位,符号位用一位或多位比特位表示权值数据的符号,幂次位用m位比特位表示权值数据的幂次位数据,m为大于1的正整数。存储单元预存有编码表,提供幂次权值数据的每个幂次位数据对应的指数数值。编码表设置一个或者多个幂次位数据(即置零幂次位数据)为指定对应的幂次权值数据为0。也就是说,当幂次权值数据的幂次位数据是编码表里的置零幂次位数据时候,表示该幂次权值数据为0。
编码表的对应关系可以是任意的。
例如,编码表的对应关系可以是乱序的。如图5.1所示一种m为5的编码表的部分内容,幂次位数据为00000的时候对应指数数值为0。幂次位数据为00001的时候对应指数数值为3。幂次位数据为00010的时候对应指数数值为4。幂次位数据为00011的时候对应指数数值为1。幂次位数据为00100的时候对应幂次权值数据为0。
编码表的对应关系也可以是正相关的,存储单元预存一个整数值x和一个正整数值y,最小的幂次位数据对应指数数值为x,其他任意一个或多个幂次位数据对应幂次权值数据为0。x表示偏置值,y表示步长。在一种实施例情况下,最小的幂次位数据对应指数数值为x,最大的幂次位数据对应幂次权值数据为0,最小和最大的幂次位数据之外的其他的幂次位数据对应指数数值为(幂次位数据+x)*y。通过预设定不同的x和y以及通过改变x和y的数值,幂次的表示范围变得可配,可以适用于需要不同数值范围的不同的应用场景。因此,本神经网络运算装置的应用范围更加广泛,使用更加灵活可变,可根据用户需求来做调整。
在一种实施方式中,y为1,x的数值等于-2m-1。由此幂次权值数据所表示的数值的指数范围为-2m-1~2m-1-1。
在一种实施方式中,如图5.2所示,一种m为5,x为0,y为1的编码表的部分内容,幂次位数据为00000的时候对应指数数值为0。幂次位数据为00001的时候对应指数数值为1。幂次位数据为00010的时候对应指数数值为2。幂次位数据为00011的时候对应指数数值为3。幂次位数据为11111的时候对应幂次权值数据为0。如图5.3所示,另一种m为5,x为0,y为2的编码表的部分内容,幂次位数据为00000的时候对应指数数值为0。幂次位数据为00001的时候对应指数数值为2。幂次位数据为00010的时候对应指数数值为4。幂次位数据为00011的时候对应指数数值为6。幂次位数据为11111的时候对应幂次权值数据为0。
编码表的对应关系可以是负相关的,存储单元预存一个整数值x和一个正整数值y,最大的幂次位数据对应指数数值为x,其他任意一个或多个幂次位数据对应幂次权值数据为0。x表示偏置值,y表示步长。在一种实施例情况下,最大的幂次位数据对应指数数值为x,最小的幂次位数据对应幂次权值数据为0,最小和最大的幂次位数据之外的其他的幂次位数据对应指数数值为(幂次位数据-x)*y。通过预设定不同的x和y以及通过改变x和y的数值,幂次的表示范围变得可配,可以适用于需要不同数值范围的不同的应用场景。因此,本神经网络运算装置的应用范围更加广泛,使用更加灵活可变,可根据用户需求来做调整。
在一种实施方式中,y为1,x的数值等于2m-1。由此幂次权值数据所表示的数值的指数范围为-2m-1-1~2m-1。
如图5.4所示,一种m为5的编码表的部分内容,幂次位数据为11111的时候对应数数值为0。幂次位数据为11110的时候对应指数数值为1。幂次位数据为11101的时候对应指数数值为2。幂次位数据为11100的时候对应指数数值为3。幂次位数据为00000的时候对应幂次权值数据为0。
编码表的对应关系可以是幂次位数据最高位代表置零位,幂次位数据其他m-1位对应指数数值。当幂次位数据最高位为0时,对应幂次权值数据为0;当幂次位数据最高位为1时,对应幂次权值数据不为0。反之亦可,即当幂次位数据最高位为1时,对应幂次权值数据为0;当幂次位数据最高位为0时,对应幂次权值数据不为0。用另一种语言来描述,即幂次权值数据的幂次位被分出一个比特来指示幂次权值数据是否为0。
在一个具体实例图5.5所示,符号位为1位,幂次位数据位为7位,即m为7。编码表为幂次位数据为11111111的时候对应幂次权值数据为0,幂次位数据为其他数值的时候幂次权值数据对应相应的二进制补码。当幂次权值数据符号位为0,幂次位为0001001,则其表示具体数值为29,即512;幂次权值数据符号位为1,幂次位为1111101,则其表示具体数值为-2-3,即-0.125。相对于浮点数据,幂次数据只保留数据的幂次位,极大减小了存储数据所需的存储空间。
通过幂次数据表示方法,可以减小存储权值数据所需的存储空间。在本实施例所提供示例中,幂次数据为8位数据,应当认识到,该数据长度不是固定不变的,在不同场合下,根据数据权值的数据范围采用不同的数据长度。
步骤S2,根据运算指令对神经元数据及幂次权值数据进行神经网络运算。其中,所述步骤S2 包括以下子步骤:
S21,译码模块从指令缓存模块中读取指令,并将其译码成各运算指令;
S22,运算单元分别接收所述译码模块、输入神经元缓存模块及权值缓存模块发送的运算指令、幂次权值数据以及神经元数据,并根据运算指令对神经元数据及幂次表示的权值数据进行神经网络运算。
所述神经元与幂次权值乘法操作具体为,神经元数据符号位与幂次权值数据符号位做异或操作;编码表的对应关系为乱序的情况下查找编码表找出幂次权值数据幂次位对应的指数数值,编码表的对应关系为正相关的情况下记录编码表的指数数值最小值并做加法找出幂次权值数据幂次位对应的指数数值,编码表的对应关系为负相关的情况下记录编码表的最大值并做减法找出幂次权值数据幂次位对应的指数数值;将指数数值与神经元数据幂次位做加法操作,神经元数据有效位保持不变。
具体实例一如图5.6所示,神经元数据为16位浮点数据,符号位为0,幂次位为10101,有效位为0110100000,则其表示的实际数值为1.40625*26。幂次权值数据符号位为1位,幂次位数据位为5位,即m为5。编码表为幂次位数据为11111的时候对应幂次权值数据为0,幂次位数据为其他数值的时候幂次位数据对应相应的二进制补码。幂次权值为000110,则其表示的实际数值为 64,即26。幂次权值的幂次位加上神经元的幂次位结果为11011,则结果的实际数值为1.40625*212,即为神经元与幂次权值的乘积结果。通过该运算操作,使得乘法操作变为加法操作,减小计算所需的运算量。
具体实例二如图5.7所示,神经元数据为32位浮点数据,符号位为1,幂次位为10000011,有效位为10010010000000000000000,则其表示的实际数值为-1.5703125*24。幂次权值数据符号位为1位,幂次位数据位为5位,即m为5。编码表为幂次位数据为11111的时候对应幂次权值数据为0,幂次位数据为其他数值的时候幂次位数据对应相应的二进制补码。幂次神经元为111100,则其表示的实际数值为-2-4。(神经元的幂次位加上幂次权值的幂次位结果为01111111,则结果的实际数值为1.5703125*20,即为神经元与幂次权值的乘积结果。
可选的,还包括步骤S3,将神经网络运算后的神经元数据输出并作为下一层神经网络运算的输入数据。
其中,所述步骤S3可包括以下子步骤:
S31,输出神经元缓存单元接收所述计算单元发送的神经网络运算后得到的神经元数据。
S32,将输出神经元缓存单元接收的神经元数据传输给数据控制模块,通过输出神经元缓存单元获得的神经元数据可作为神经网络运算下一层的输入神经元,再重复步骤S1至步骤S3直到神经网络最后一层运算结束。
另外,通过幂次转换单元获得的幂次神经元数据可作为神经网络运算下一层的输入幂次神经元,再重复步骤1至步骤3直到神经网络最后一层运算结束。通过改变存储单元预存的整数值x 和正整数值y,可以调整神经网络运算装置所能表示的幂次神经元数据范围。
另外,所述幂次转换的具体操作方法与前述实施例相同,此处不再赘述。
另外,本披露实施例还提供了另一种神经网络运算方法,图6为本实施例神经网络运算方法的流程图。
具体而言,本披露实施例的神经网络为多层神经网络,对于每层神经网络可按图6所示的运算方法进行运算,其中,神经网络第一层输入幂次权值数据可通过存储单元从外部地址读入,若外部地址读入的数据已经为幂次权值数据则直接传入存储单元,否则先通过幂次转换单元转换为幂次权值数据;而神经网络第一层输入幂次神经元数据可通过存储单元从外部地址读入,若外部地址读入的数据已经为幂次数据则直接传入存储单元,否则先通过幂次转换单元转换为幂次神经元数据,此后各层神经网络的输入神经元数据可由在该层之前的一层或多层神经网络的输出幂次神经元数据提供。请参照图6,本实施例单层神经网络运算方法,包括:
步骤S4,获取指令、幂次神经元数据及幂次权值数据。
其中,所述步骤S4包括以下子步骤:
S41,将指令、神经元数据及权值数据输入存储单元;其中,对幂次神经元数据及幂次权值数据直接输入存储单元,对非幂次神经元数据及非幂次权值数据则经过所述第一幂次转换单元转换为幂次神经元数据及幂次权值数据后输入存储单元;
S42,数据控制模块接收该存储单元发送的指令、幂次神经元数据及幂次权值数据;
S43,指令缓存模块、输入神经元缓存模块及权值缓存模块分别接收所述数据控制模块发送的指令、幂次神经元数据及幂次权值数据并分发给译码模块或运算单元。
所述幂次神经元数据及幂次权值数据表示神经元数据及权值数据的数值采用其幂指数值形式表示,具体为,幂次神经元数据及幂次权值数据均包括符号位和幂次位,符号位用一位或多位比特位表示神经元数据及权值数据的符号,幂次位用m位比特位表示神经元数据及权值数据的幂次位数据,m为大于1的正整数。存储单元的存储单元预存有编码表,提供幂次神经元数据及幂次权值数据的每个幂次位数据对应的指数数值。编码表设置一个或者多个幂次位数据(即置零幂次位数据)为指定对应的幂次神经元数据及幂次权值数据为0。也就是说,当幂次神经元数据及幂次权值数据的幂次位数据是编码表里的置零幂次位数据时候,表示该幂次神经元数据及幂次权值数据为0。
编码表的对应关系可以是任意的。
例如,编码表的对应关系可以是乱序的。如图6.1所示一种m为5的编码表的部分内容,幂次位数据为00000的时候对应指数数值为0。幂次位数据为00001的时候对应指数数值为3。幂次位数据为00010的时候对应指数数值为4。幂次位数据为00011的时候对应指数数值为1。幂次位数据为00100的时候对应幂次神经元数据及幂次权值数据为0。
编码表的对应关系也可以是正相关的,存储单元预存一个整数值x和一个正整数值y,最小的幂次位数据对应指数数值为x,其他任意一个或多个幂次位数据对应幂次神经元数据及幂次权值数据为0。x表示偏置值,y表示步长。在一种实施例情况下,最小的幂次位数据对应指数数值为x,最大的幂次位数据对应幂次神经元数据及幂次权值数据为0,最小和最大的幂次位数据之外的其他的幂次位数据对应指数数值为(幂次位数据+x)*y。通过预设定不同的x和y以及通过改变x和y 的数值,幂次的表示范围变得可配,可以适用于需要不同数值范围的不同的应用场景。因此,本神经网络运算装置的应用范围更加广泛,使用更加灵活可变,可根据用户需求来做调整。
在一种实施例方式中,y为1,x的数值等于-2m-1。由此幂次神经元数据及幂次权值数据所表示的数值的指数范围为-2m-1~2m-1-1。
在一种实施例方式中,如图6.2所示一种m为5,x为0,y为1的编码表的部分内容,幂次位数据为00000的时候对应指数数值为0。幂次位数据为00001的时候对应指数数值为1。幂次位数据为00010的时候对应指数数值为2。幂次位数据为00011的时候对应指数数值为3。幂次位数据为11111的时候对应幂次神经元数据及幂次权值数据为0。如图6.3所示另一种m为5,x为0, y为2的编码表的部分内容,幂次位数据为00000的时候对应指数数值为0。幂次位数据为00001 的时候对应指数数值为2。幂次位数据为00010的时候对应指数数值为4。幂次位数据为00011的时候对应指数数值为6。幂次位数据为11111的时候对应幂次神经元数据及幂次权值数据为0。
编码表的对应关系可以是负相关的,存储单元预存一个整数值x和一个正整数值y,最大的幂次位数据对应指数数值为x,其他任意一个或多个幂次位数据对应幂次神经元数据及幂次权值数据为0。x表示偏置值,y表示步长。在一种实施例情况下,最大的幂次位数据对应指数数值为x,最小的幂次位数据对应幂次神经元数据及幂次权值数据为0,最小和最大的幂次位数据之外的其他的幂次位数据对应指数数值为(幂次位数据-x)*y。通过预设定不同的x和y以及通过改变x和y 的数值,幂次的表示范围变得可配,可以适用于需要不同数值范围的不同的应用场景。因此,本神经网络运算装置的应用范围更加广泛,使用更加灵活可变,可根据用户需求来做调整。
在一种实施例方式中,y为1,x的数值等于2m-1。由此幂次神经元数据及幂次权值数据所表示的数值的指数范围为-2m-1-1~2m-1。
如图6.4所示一种m为5的编码表的部分内容,幂次位数据为11111的时候对应数数值为0。幂次位数据为11110的时候对应指数数值为1。幂次位数据为11101的时候对应指数数值为2。幂次位数据为11100的时候对应指数数值为3。幂次位数据为00000的时候对应幂次神经元数据及幂次权值数据为0。
编码表的对应关系可以是幂次位数据最高位代表置零位,幂次位数据其他m-1位对应指数数值。当幂次位数据最高位为0时,对应幂次神经元数据及幂次权值数据为0;当幂次位数据最高位为1时,对应幂次神经元数据及幂次权值数据不为0。反之亦可,即当幂次位数据最高位为1时,对应幂次神经元数据及幂次权值数据为0;当幂次位数据最高位为0时,对应幂次神经元数据及幂次权值数据不为0。用另一种语言来描述,即幂次神经元数据及幂次权值数据的幂次位被分出一个比特来指示幂次神经元数据及幂次权值数据是否为0。
在一个具体实例方式中,如图6.5所示,符号位为1位,幂次位数据位为7位,即m为7。编码表为幂次位数据为11111111的时候对应幂次神经元数据及幂次权值数据为0,幂次位数据为其他数值的时候幂次神经元数据及幂次权值数据对应相应的二进制补码。当幂次神经元数据及幂次权值数据符号位为0,幂次位为0001001,则其表示具体数值为29,即512;幂次神经元数据及幂次权值数据符号位为1,幂次位为1111101,则其表示具体数值为-2-3,即-0.125。相对于浮点数据,幂次数据只保留数据的幂次位,极大减小了存储数据所需的存储空间。
通过幂次数据表示方法,可以减小存储神经元数据及权值数据所需的存储空间。在本实施例所提供示例中,幂次数据为8位数据,应当认识到,该数据长度不是固定不变的,在不同场合下,根据神经元数据及权值数据的数据范围采用不同的数据长度。
步骤S5,根据运算指令对幂次神经元数据及幂次权值数据进行神经网络运算。其中,所述步骤S5包括以下子步骤:
S51,译码模块从指令缓存模块中读取指令,并将其译码成各运算指令;
S52,运算单元分别接收所述译码模块、输入神经元缓存模块及权值缓存模块发送的运算指令、幂次神经元数据及幂次权值数据,并根据运算指令对幂次神经元数据及幂次权值数据进行神经网络运算。
所述幂次神经元与幂次权值乘法操作具体为,幂次神经元数据符号位与幂次权值数据符号位做异或操作;编码表的对应关系为乱序的情况下查找编码表找出幂次神经元数据及幂次权值数据幂次位对应的指数数值,编码表的对应关系为正相关的情况下记录编码表的指数数值最小值并做加法找出幂次神经元数据及幂次权值数据幂次位对应的指数数值,编码表的对应关系为负相关的情况下记录编码表的最大值并做减法找出幂次神经元书记及幂次权值数据幂次位对应的指数数值;将幂次神经元数据对应的指数数值与幂次权值数据对应的指数数值做加法操作。
具体实例一如图6.6所示,幂次神经元数据和幂次权值数据符号位为1位,幂次位数据位为4 位,即m为4。编码表为幂次位数据为1111的时候对应幂次权值数据为0,幂次位数据为其他数值的时候幂次位数据对应相应的二进制补码。幂次神经元数据为00010,则其表示的实际数值为 22。幂次权值为00110,则其表示的实际数值为64,即26。幂次神经元数据和幂次权值数据的乘积为01000,其表示的实际数值为28。
可以看到,幂次神经元数据和幂次权值的乘法运算相比于浮点数据的乘法以及浮点数据和幂次数据的乘法都更加的简单方便。
本实施例方法还可进一步包括,步骤S6,将神经网络运算后的神经元数据输出并作为下一层神经网络运算的输入数据。
其中,所述步骤S6包括以下子步骤:
S61,输出神经元缓存单元接收所述计算单元发送的神经网络运算后得到的神经元数据。
S62,将输出神经元缓存单元接收的神经元数据传输给数据控制模块,通过输出神经元缓存单元获得的神经元数据可作为神经网络运算下一层的输入神经元,再重复步骤S4至步骤S6直到神经网络最后一层运算结束。
由于神经网络运算后得到的神经元数据也为幂次数据,将其传输给数据控制模块所需带宽相比于浮点数据所需带宽大大减少,因此进一步减小了神经网络存储资源和计算资源的开销,提高了神经网络的运算速度。
另外,所述幂次转换的具体操作方法与前述实施例相同,此处不再赘述。
所披露的实施例的所有的模块都可以是硬件结构,硬件结构的物理实现包括但不局限于物理器件,物理器件包括但不局限于晶体管,忆阻器,DNA计算机。
以上所述的具体实施例,对本披露的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本披露的具体实施例而已,并不用于限制本披露,凡在本披露的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本披露的保护范围之内。
Claims (21)
1.一种神经网络运算装置,其特征在于,包括:
第一幂次转换单元,用于将神经网络输入数据中的非幂次数据转换为幂次数据;
运算单元,用于接收神经网络运算的数据和指令并根据运算指令对其接收的神经元数据及权值数据执行神经网络运算;其中,所述运算单元接收的所述数据包括经第一幂次转换单元转换的幂次数据;
所述指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,
所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;
所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。
2.根据权利要求1所述的神经网络运算装置,其特征在于,还包括:存储单元,用于存储数据和指令;其中,该存储单元与所述第一幂次转换单元连接以接收所述幂次数据。
3.根据权利要求1或2所述的神经网络运算装置,其特征在于,还包括:控制单元及输出神经元缓存单元;其中
所述控制单元,与所述存储单元连接,用于控制数据和指令的交互,其接收该存储单元发送的数据和指令,并将指令译码成运算指令;
所述运算单元,与所述控制单元连接,接收该控制单元发送的数据和运算指令,并根据运算指令对其接收的神经元数据及权值数据执行神经网络运算;以及
所述输出神经元缓存单元,与所述运算单元连接,用于接收运算单元输出的神经元数据并发送至所述控制单元作为下一层神经网络运算的输入数据。
4.根据权利要求3所述的神经网络运算装置,其特征在于,所述控制单元,包括:
数据控制模块,与所述存储单元连接,用于实现存储单元和各缓存模块之间的数据和指令交互;
指令缓存模块,与所述数据控制模块连接,用于接收该数据控制模块发送的指令;
译码模块,与所述指令缓存模块连接,用于从指令缓存模块中读取指令,并将其译码成运算指令;
输入神经元缓存模块,与所述数据控制模块连接,用于从该数据控制模块获取相应的输入神经元数据;
权值缓存模块,与所述数据控制模块连接,用于从数据控制模块获取相应的权值数据;其中,
所述运算单元,分别与所述译码模块、输入神经元缓存模块及权值缓存模块连接,接收各运算指令、神经元数据及权值数据,根据运算指令对其接收的神经元数据和权值数据执行相应的神经网络运算。
5.根据权利要求1至4中任一项所述的神经网络运算装置,其特征在于,所述第一幂次转换单元用于将神经网络输入数据中的非幂次权值数据转换为幂次权值数据。
6.根据权利要求4中任一项所述的神经网络运算装置,其特征在于,还包括:第二幂次转换单元;其中,
所述第一幂次转换单元用于将神经网络输入数据中的非幂次神经元数据及非幂次权值数据分别转换为幂次神经元数据及幂次权值数据,并发送至所述存储单元;
所述第二幂次转换单元与所述输出神经元缓存单元连接,用于将其接收的神经元数据转换为幂次神经元数据并发送至所述控制单元作为下一层神经网络运算的输入数据。
7.根据权利要求1至6中任一项所述的神经网络运算装置,其特征在于,若神经网络输入数据为幂次数据则直接存入神经网络运算装置。
8.根据权利要求1至7中任一项所述的神经网络运算装置,其特征在于,幂次数据包括幂次神经元数据、幂次权值数据;其中,
所述幂次神经元数据表示神经元数据的数值采用其幂指数值形式表示,其中,所述幂次神经元数据包括符号位和幂次位,符号位采用一位或多位比特位表示神经元数据的符号,幂次位采用m位比特位表示神经元数据的幂次位数据,m为大于1的正整数;
所述幂次权值数据表示权值数据的数值采用其幂指数值形式表示,其中,所述幂次权值数据包括符号位和幂次位,符号位采用一位或多位比特位表示权值数据的符号,幂次位采用m位比特位表示权值数据的幂次位数据,m为大于1的正整数。
9.根据权利要求8所述的神经网络运算装置,其特征在于,该神经网络运算装置的存储单元预存有编码表,用于提供幂次神经元数据及幂次权值数据的每个幂次位数据对应的指数数值。
10.根据权利要求9所述的神经网络运算装置,其特征在于,所述编码表设置一个或者多个幂次位数据为置零幂次位数据,其对应的幂次神经元数据及幂次权值数据为0。
11.根据权利要求1所述的装置,其特征在于,
所述卷积神经网络运算指令包括:卷积计算指令,用于将卷积核w乘以输入数据Xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果。
12.根据权利要求1所述的装置,其特征在于,
所述卷积神经网络运算指令包括:COMPUTE指令、CONFIG指令、IO指令、NOP指令、JUMP指令或MOVE指令;
所述COMPUTE指令包括:卷积神经网络sigmoid指令、卷积神经网络TanH指令、卷积神经网络ReLU指令以及卷积神经网络group指令;
所述卷积神经网络sigmoid指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述sigmoid指令将输出结果做sigmoid激活;
所述卷积神经网络TanH指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述TanH指令将输出结果做TanH激活;
所述卷积神经网络ReLU指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述ReLU指令将输出结果做ReLU激活;
所述卷积神经网络group指令,用于装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后根据所述group指令将输出结果做激活。
13.根据权利要求11所述的装置,其特征在于,
所述CONFIG指令,用于指引装置在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
或所述IO指令,用于指引装置实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部存储空间;
或所述NOP指令,用于指引装置清空当前装置内部所有控制信号缓存队列中的控制信号;
或所述JUMP指令,用于指引装置实现控制流的跳转;
或所述MOVE指令,用于指引装置内部地址空间中某一地址的数据搬运至内部地址空间的另一地址。
14.一种神经网络运算方法,其特征在于,所述方法包括:
获取指令、幂次神经元数据及幂次权值数据;
根据运算指令对幂次神经元数据及幂次权值数据进行神经网络运算;
所述指令为卷积神经网络运算指令,包括:至少1个操作码和至少1个操作域,其中,
所述操作码用于指示所述卷积神经网络运算指令的功能,所述操作域用于指示所述卷积神经网络运算指令的数据信息;
所述数据信息包括:立即数或寄存器号,具体包括:输入数据的起始地址和数据长度,卷积核的起始地址和数据长度,以及激活函数的类型。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
将神经网络运算后的神经元数据输出并作为下一层神经网络运算的输入数据;重复神经网络运算步骤直到神经网络最后一层运算结束。
16.根据权利要求14所述的方法,其特征在于,所述获取指令、权值数据及神经元数据,包括:
将指令、神经元数据及权值数据输入存储单元;
数据控制模块接收该存储单元发送的指令、神经元数据及权值数据;
指令缓存模块、输入神经元缓存模块及权值缓存模块分别接收该数据控制模块发送的指令、神经元数据及权值数据;其中,若输入存储单元的权值数据为非幂次权值数据则经第一幂次转换单元转换为幂次权值数据输入所述存储单元;若输入存储单元的权值数据为幂次权值数据则直接输入所述存储单元;输出神经元缓存单元接收所述计算单元发送的神经网络运算后得到的神经元数据并发送至所述数据控制模块作为下一层神经网络运算的输入数据。
17.根据权利要求14所述的方法,其特征在于,所述获取指令、权值数据及神经元数据,包括:
将指令、神经元数据及权值数据输入存储单元;
数据控制模块接收该存储单元发送的指令、神经元数据及权值数据;
指令缓存模块、输入神经元缓存模块及权值缓存模块分别接收该数据控制模块发送的指令、神经元数据及权值数据;其中,若输入存储单元的神经元数据及权值数据为非幂次神经元数据及非幂次权值数据则经第一幂次转换单元转换为幂次神经元数据及幂次权值数据输入所述存储单元;若输入存储单元的神经元数据及权值数据为幂次神经元数据及幂次权值数据则直接输入所述存储单元;出神经元缓存单元接收所述计算单元发送的神经网络运算后得到的神经元数据;第二幂次转换单元接收输出神经元缓存单元发送的神经元数据将其转换为幂次神经元数据,并发送至所述数据控制模块作为下一层神经网络运算的输入数据。
18.根据权利要求14所述的方法,其特征在于,所述方法包括:
译码模块从指令缓存模块中读取指令,并将其译码成各运算指令;
运算单元分别接收所述译码模块、输入神经元缓存模块及权值缓存模块发送的运算指令、神经元数据以及权值数据,并根据运算指令对神经元数据和权值数据进行神经网络运算。
19.根据权利要求14所述的方法,其特征在于,
所述卷积神经网络运算指令包括:卷积计算指令,用于将卷积核w乘以输入数据Xi,进行求和,然后加上偏置b后做激活运算s(h),得到最终的输出结果。
20.根据权利要求14所述的方法,其特征在于,
所述卷积神经网络运算指令包括:COMPUTE指令、CONFIG指令、IO指令、NOP指令、JUMP指令或MOVE指令;
所述COMPUTE指令包括:卷积神经网络sigmoid指令、卷积神经网络TanH指令、卷积神经网络ReLU指令以及卷积神经网络group指令;
所述卷积神经网络sigmoid指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述sigmoid指令将输出结果做sigmoid激活;
所述卷积神经网络TanH指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述TanH指令将输出结果做TanH激活;
所述卷积神经网络ReLU指令,用于在装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,然后根据所述ReLU指令将输出结果做ReLU激活;
所述卷积神经网络group指令,用于装置分别从存储器的指定地址取出指定大小的输入数据和卷积核,划分group之后,在卷积运算部件中做卷积操作,然后根据所述group指令将输出结果做激活。
21.根据权利要求20所述的方法,其特征在于,
所述CONFIG指令,用于指引装置在每层人工神经网络计算开始前配置当前层计算需要的各种常数;
或所述IO指令,用于指引装置实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部存储空间;
或所述NOP指令,用于指引装置清空当前装置内部所有控制信号缓存队列中的控制信号;
或所述JUMP指令,用于指引装置实现控制流的跳转;
或所述MOVE指令,用于指引装置内部地址空间中某一地址的数据搬运至内部地址空间的另一地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710927144.5A CN109284822B (zh) | 2017-07-20 | 2017-07-20 | 一种神经网络运算装置及方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710595951.1A CN107992329B (zh) | 2017-07-20 | 2017-07-20 | 一种计算方法及相关产品 |
CN201710927144.5A CN109284822B (zh) | 2017-07-20 | 2017-07-20 | 一种神经网络运算装置及方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710595951.1A Division CN107992329B (zh) | 2017-07-20 | 2017-07-20 | 一种计算方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109284822A true CN109284822A (zh) | 2019-01-29 |
CN109284822B CN109284822B (zh) | 2021-09-21 |
Family
ID=61067110
Family Applications (18)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710928261.3A Active CN107729990B (zh) | 2017-07-20 | 2017-07-20 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN201710927526.8A Active CN107844322B (zh) | 2017-07-20 | 2017-07-20 | 用于执行人工神经网络正向运算的装置和方法 |
CN201710927144.5A Active CN109284822B (zh) | 2017-07-20 | 2017-07-20 | 一种神经网络运算装置及方法 |
CN201710927267.9A Active CN107832082B (zh) | 2017-07-20 | 2017-07-20 | 一种用于执行人工神经网络正向运算的装置和方法 |
CN201710927338.5A Active CN107608715B (zh) | 2017-07-20 | 2017-07-20 | 用于执行人工神经网络正向运算的装置及方法 |
CN201710927307.XA Active CN109284130B (zh) | 2017-07-20 | 2017-07-20 | 神经网络运算装置及方法 |
CN201710927336.6A Active CN107729989B (zh) | 2017-07-20 | 2017-07-20 | 一种用于执行人工神经网络正向运算的装置及方法 |
CN201710595951.1A Active CN107992329B (zh) | 2017-07-20 | 2017-07-20 | 一种计算方法及相关产品 |
CN201710928125.4A Active CN107807819B (zh) | 2017-07-20 | 2017-07-20 | 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法 |
CN201911057705.6A Active CN110597558B (zh) | 2017-07-20 | 2018-07-13 | 一种神经网络任务处理系统 |
CN201880004680.0A Active CN110036369B (zh) | 2017-07-20 | 2018-07-13 | 一种计算方法及相关产品 |
CN202010189417.2A Active CN111221578B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及计算方法 |
CN201911058837.0A Active CN110688159B (zh) | 2017-07-20 | 2018-07-13 | 神经网络任务处理系统 |
CN201911058840.2A Active CN110825434B (zh) | 2017-07-20 | 2018-07-13 | 计算装置及计算方法 |
CN202010189355.5A Active CN111176727B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及计算方法 |
CN201911058836.6A Active CN110688158B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及神经网络的处理系统 |
CN201911069248.2A Active CN110597559B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及计算方法 |
CN201911058620.XA Active CN110688157B (zh) | 2017-07-20 | 2018-07-13 | 一种计算装置及计算方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710928261.3A Active CN107729990B (zh) | 2017-07-20 | 2017-07-20 | 支持离散数据表示的用于执行正向运算的装置及方法 |
CN201710927526.8A Active CN107844322B (zh) | 2017-07-20 | 2017-07-20 | 用于执行人工神经网络正向运算的装置和方法 |
Family Applications After (15)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710927267.9A Active CN107832082B (zh) | 2017-07-20 | 2017-07-20 | 一种用于执行人工神经网络正向运算的装置和方法 |
CN201710927338.5A Active CN107608715B (zh) | 2017-07-20 | 2017-07-20 | 用于执行人工神经网络正向运算的装置及方法 |
CN201710927307.XA Active CN109284130B (zh) | 2017-07-20 | 2017-07-20 | 神经网络运算装置及方法 |
CN201710927336.6A Active CN107729989B (zh) | 2017-07-20 | 2017-07-20 | 一种用于执行人工神经网络正向运算的装置及方法 |
CN201710595951.1A Active CN107992329B (zh) | 2017-07-20 | 2017-07-20 | 一种计算方法及相关产品 |
CN201710928125.4A Active CN107807819B (zh) | 2017-07-20 | 2017-07-20 | 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法 |
CN201911057705.6A Active CN110597558B (zh) | 2017-07-20 | 2018-07-13 | 一种神经网络任务处理系统 |
CN201880004680.0A Active CN110036369B (zh) | 2017-07-20 | 2018-07-13 | 一种计算方法及相关产品 |
CN202010189417.2A Active CN111221578B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及计算方法 |
CN201911058837.0A Active CN110688159B (zh) | 2017-07-20 | 2018-07-13 | 神经网络任务处理系统 |
CN201911058840.2A Active CN110825434B (zh) | 2017-07-20 | 2018-07-13 | 计算装置及计算方法 |
CN202010189355.5A Active CN111176727B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及计算方法 |
CN201911058836.6A Active CN110688158B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及神经网络的处理系统 |
CN201911069248.2A Active CN110597559B (zh) | 2017-07-20 | 2018-07-13 | 计算装置以及计算方法 |
CN201911058620.XA Active CN110688157B (zh) | 2017-07-20 | 2018-07-13 | 一种计算装置及计算方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11481215B2 (zh) |
EP (1) | EP3686734A4 (zh) |
CN (18) | CN107729990B (zh) |
WO (1) | WO2019015541A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523652A (zh) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 处理器及其数据处理方法、摄像装置 |
WO2020258841A1 (zh) * | 2019-06-25 | 2020-12-30 | 东南大学 | 一种基于幂指数量化的深度神经网络硬件加速器 |
Families Citing this family (185)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018214913A1 (zh) * | 2017-05-23 | 2018-11-29 | 上海寒武纪信息科技有限公司 | 处理方法及加速装置 |
CN110413551B (zh) | 2018-04-28 | 2021-12-10 | 上海寒武纪信息科技有限公司 | 信息处理装置、方法及设备 |
CN110619390A (zh) * | 2018-06-20 | 2019-12-27 | 上海寒武纪信息科技有限公司 | 用于执行生成对抗网络的处理装置及应用其进行机器创作的方法 |
CN109214616B (zh) | 2017-06-29 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 一种信息处理装置、系统和方法 |
WO2019001418A1 (zh) | 2017-06-26 | 2019-01-03 | 上海寒武纪信息科技有限公司 | 数据共享系统及其数据共享方法 |
CN109426553A (zh) | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN107729990B (zh) * | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
CN109902814B (zh) | 2017-12-11 | 2020-01-17 | 中科寒武纪科技股份有限公司 | 神经网络运算模块和方法 |
WO2019114842A1 (zh) * | 2017-12-14 | 2019-06-20 | 北京中科寒武纪科技有限公司 | 一种集成电路芯片装置 |
CN108229671B (zh) * | 2018-01-16 | 2022-03-04 | 华南理工大学 | 一种降低加速器外部数据存储带宽需求的系统和方法 |
CN108388446A (zh) * | 2018-02-05 | 2018-08-10 | 上海寒武纪信息科技有限公司 | 运算模块以及方法 |
CN110147249B (zh) * | 2018-02-12 | 2021-02-09 | 上海寒武纪信息科技有限公司 | 一种网络模型的计算方法及装置 |
CN110163349B (zh) * | 2018-02-12 | 2021-03-23 | 上海寒武纪信息科技有限公司 | 一种网络模型的计算方法及装置 |
CN110163350B (zh) * | 2018-02-13 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 一种计算装置及方法 |
KR102252137B1 (ko) * | 2018-02-13 | 2021-05-13 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 계산 장치 및 방법 |
CN110163355B (zh) * | 2018-02-13 | 2020-10-09 | 上海寒武纪信息科技有限公司 | 一种计算装置及方法 |
CN110276447A (zh) * | 2018-03-14 | 2019-09-24 | 上海寒武纪信息科技有限公司 | 一种计算装置及方法 |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11663002B2 (en) | 2018-02-13 | 2023-05-30 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11106598B2 (en) | 2018-02-13 | 2021-08-31 | Shanghai Cambricon Information Technology Co., Ltd. | Computing device and method |
CN116991226A (zh) | 2018-02-14 | 2023-11-03 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
CN111767996B (zh) * | 2018-02-27 | 2024-03-05 | 上海寒武纪信息科技有限公司 | 集成电路芯片装置及相关产品 |
CN108520296B (zh) * | 2018-03-20 | 2020-05-15 | 福州瑞芯微电子股份有限公司 | 一种基于深度学习芯片动态cache分配的方法和装置 |
CN110363279B (zh) * | 2018-03-26 | 2021-09-21 | 华为技术有限公司 | 基于卷积神经网络模型的图像处理方法和装置 |
CN110413255B (zh) * | 2018-04-28 | 2022-08-19 | 赛灵思电子科技(北京)有限公司 | 人工神经网络调整方法和装置 |
CN108647184B (zh) * | 2018-05-10 | 2022-04-12 | 杭州雄迈集成电路技术股份有限公司 | 一种动态比特位卷积乘法实现方法 |
CN110472734B (zh) * | 2018-05-11 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 一种计算装置及相关产品 |
CN110147872B (zh) * | 2018-05-18 | 2020-07-17 | 中科寒武纪科技股份有限公司 | 编码存储装置及方法、处理器及训练方法 |
CN110503179B (zh) * | 2018-05-18 | 2024-03-01 | 上海寒武纪信息科技有限公司 | 计算方法以及相关产品 |
WO2019218896A1 (zh) | 2018-05-18 | 2019-11-21 | 上海寒武纪信息科技有限公司 | 计算方法以及相关产品 |
CN111368987B (zh) * | 2018-12-25 | 2023-03-24 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
WO2019219083A1 (zh) | 2018-05-18 | 2019-11-21 | 北京中科寒武纪科技有限公司 | 视频检索方法及视频检索映射关系生成方法、装置 |
CN113190791A (zh) | 2018-08-06 | 2021-07-30 | 华为技术有限公司 | 矩阵的处理方法、装置及逻辑电路 |
CN109032670B (zh) * | 2018-08-08 | 2021-10-19 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行向量复制指令的方法 |
CN109189715B (zh) * | 2018-08-16 | 2022-03-15 | 北京算能科技有限公司 | 可编程人工智能加速器执行单元及人工智能加速方法 |
JP6867518B2 (ja) * | 2018-08-28 | 2021-04-28 | カンブリコン テクノロジーズ コーポレイション リミティド | データ前処理方法、装置、コンピュータ機器及び記憶媒体 |
CN109242091B (zh) * | 2018-09-03 | 2022-03-22 | 郑州云海信息技术有限公司 | 图像识别方法、装置、设备及可读存储介质 |
KR20200026455A (ko) * | 2018-09-03 | 2020-03-11 | 삼성전자주식회사 | 인공 신경망 시스템 및 인공 신경망의 고정 소수점 제어 방법 |
CN110929838B (zh) * | 2018-09-19 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 神经网络中位宽定点化方法、装置、终端和存储介质 |
CN110941789B (zh) * | 2018-09-21 | 2023-12-15 | 北京地平线机器人技术研发有限公司 | 张量运算方法和装置 |
EP3859488A4 (en) | 2018-09-28 | 2022-06-29 | Shanghai Cambricon Information Technology Co., Ltd | Signal processing device, signal processing method and related product |
CN110968532B (zh) * | 2018-09-29 | 2021-09-21 | 上海寒武纪信息科技有限公司 | 数据传输方法及相关产品 |
JP7006805B2 (ja) * | 2018-10-02 | 2022-01-24 | 日本電信電話株式会社 | 算出装置、算出方法及び算出プログラム |
US11494625B2 (en) | 2018-10-03 | 2022-11-08 | Maxim Integrated Products, Inc. | Systems and methods for energy-efficient analog matrix multiplication for machine learning processes |
CN111047027A (zh) * | 2018-10-12 | 2020-04-21 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111124497B (zh) * | 2018-10-11 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111290789B (zh) * | 2018-12-06 | 2022-05-27 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111047005A (zh) * | 2018-10-11 | 2020-04-21 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111353595A (zh) * | 2018-12-20 | 2020-06-30 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111353125B (zh) * | 2018-12-20 | 2022-04-22 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111045729A (zh) * | 2018-10-12 | 2020-04-21 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN110096283A (zh) * | 2018-10-12 | 2019-08-06 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111047028A (zh) * | 2018-10-12 | 2020-04-21 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111026440B (zh) * | 2018-10-09 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111275197B (zh) * | 2018-12-05 | 2023-11-10 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
WO2020073925A1 (zh) * | 2018-10-09 | 2020-04-16 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN110096310B (zh) * | 2018-11-14 | 2021-09-03 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111290788B (zh) * | 2018-12-07 | 2022-05-31 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
WO2020073923A1 (zh) * | 2018-10-09 | 2020-04-16 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111353124A (zh) * | 2018-12-20 | 2020-06-30 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN110096309B (zh) * | 2018-11-14 | 2020-04-14 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111222633A (zh) * | 2018-11-23 | 2020-06-02 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111061507A (zh) * | 2018-10-16 | 2020-04-24 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111047030A (zh) * | 2018-10-11 | 2020-04-21 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN111047023B (zh) * | 2018-10-12 | 2023-11-24 | 上海寒武纪信息科技有限公司 | 一种计算装置及相关产品 |
CN111047024B (zh) * | 2018-10-12 | 2023-05-23 | 上海寒武纪信息科技有限公司 | 一种计算装置及相关产品 |
CN111079908B (zh) * | 2018-10-18 | 2024-02-13 | 上海寒武纪信息科技有限公司 | 片上网络数据处理方法、存储介质、计算机设备和装置 |
CN111209231B (zh) * | 2018-11-21 | 2021-05-11 | 上海寒武纪信息科技有限公司 | 数据处理方法、装置及相关产品 |
CN111209244B (zh) * | 2018-11-21 | 2022-05-06 | 上海寒武纪信息科技有限公司 | 数据处理装置及相关产品 |
CN111209230B (zh) * | 2018-11-21 | 2021-08-31 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
CN111209243B (zh) * | 2018-11-21 | 2022-12-02 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
CN111210011B (zh) * | 2018-11-21 | 2022-12-02 | 上海寒武纪信息科技有限公司 | 数据处理装置及相关产品 |
CN111078625B (zh) * | 2018-10-18 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
CN111210012B (zh) * | 2018-11-21 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 数据处理方法、装置及相关产品 |
CN111078623B (zh) * | 2018-10-18 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
EP4009183A1 (en) * | 2018-10-18 | 2022-06-08 | Shanghai Cambricon Information Technology Co., Ltd | Network-on-chip data processing method and device |
CN111078624B (zh) * | 2018-10-18 | 2022-03-25 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
CN111209245B (zh) * | 2018-11-21 | 2021-11-16 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法及相关产品 |
CN111078284B (zh) * | 2018-10-19 | 2021-02-05 | 中科寒武纪科技股份有限公司 | 运算方法、系统及相关产品 |
CN111079909B (zh) * | 2018-10-19 | 2021-01-26 | 安徽寒武纪信息科技有限公司 | 运算方法、系统及相关产品 |
CN111078280B (zh) * | 2018-10-19 | 2021-01-26 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN111078286B (zh) * | 2018-10-19 | 2023-09-01 | 上海寒武纪信息科技有限公司 | 数据通信方法、计算系统和存储介质 |
CN111078291B (zh) * | 2018-10-19 | 2021-02-09 | 中科寒武纪科技股份有限公司 | 运算方法、系统及相关产品 |
CN111079912B (zh) * | 2018-10-19 | 2021-02-12 | 中科寒武纪科技股份有限公司 | 运算方法、系统及相关产品 |
CN111079913B (zh) * | 2018-10-19 | 2021-02-05 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN111078282B (zh) * | 2018-10-19 | 2020-12-22 | 安徽寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109669773B (zh) * | 2018-11-12 | 2024-03-08 | 平安科技(深圳)有限公司 | 金融数据处理方法、装置、设备和存储介质 |
CN111191774B (zh) * | 2018-11-14 | 2023-04-07 | 上海富瀚微电子股份有限公司 | 面向精简卷积神经网络的低代价加速器架构及其处理方法 |
CN109583579B (zh) * | 2018-11-30 | 2021-04-09 | 上海寒武纪信息科技有限公司 | 计算装置及相关产品 |
CN111381871B (zh) * | 2018-12-28 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109558110B (zh) * | 2018-11-30 | 2021-06-01 | 上海寒武纪信息科技有限公司 | 数据转换装置及相关产品 |
CN111258935B (zh) * | 2018-11-30 | 2022-01-25 | 上海寒武纪信息科技有限公司 | 数据传输装置和方法 |
CN111258641B (zh) * | 2018-11-30 | 2022-12-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN111260070B (zh) * | 2018-11-30 | 2022-11-29 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
US11573765B2 (en) * | 2018-12-13 | 2023-02-07 | Advanced Micro Devices, Inc. | Fused convolution and batch normalization for neural networks |
CN109684087B (zh) * | 2018-12-17 | 2020-01-10 | 中科寒武纪科技股份有限公司 | 运算方法、装置及相关产品 |
CN109635944B (zh) * | 2018-12-24 | 2020-10-27 | 西安交通大学 | 一种稀疏卷积神经网络加速器及实现方法 |
CN111368990B (zh) * | 2018-12-25 | 2023-03-07 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111367567B (zh) * | 2018-12-25 | 2023-03-07 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111368967B (zh) * | 2018-12-25 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111368985B (zh) * | 2018-12-25 | 2023-11-28 | 上海寒武纪信息科技有限公司 | 一种神经网络计算装置和方法 |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
CN111488976B (zh) * | 2019-01-28 | 2023-06-30 | 中科寒武纪科技股份有限公司 | 神经网络计算装置、神经网络计算方法及相关产品 |
CN111506522B (zh) * | 2019-01-31 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 数据处理设备及方法 |
CN109902819B (zh) * | 2019-02-12 | 2023-04-18 | Oppo广东移动通信有限公司 | 神经网络计算方法、装置、移动终端及存储介质 |
US20200264891A1 (en) * | 2019-02-20 | 2020-08-20 | Nanjing Iluvatar CoreX Technology Co., Ltd. (DBA “Iluvatar CoreX Inc. Nanjing”) | Constant scalar register architecture for acceleration of delay sensitive algorithm |
CN109993293B (zh) * | 2019-02-28 | 2021-04-13 | 中山大学 | 一种适用于堆叠式沙漏网络的深度学习加速器 |
CN109885407B (zh) * | 2019-03-05 | 2021-09-21 | 上海商汤智能科技有限公司 | 数据处理方法和装置、电子设备、存储介质 |
CN111695686B (zh) * | 2019-03-15 | 2022-11-01 | 上海寒武纪信息科技有限公司 | 地址分配方法及装置 |
WO2020192587A1 (zh) * | 2019-03-22 | 2020-10-01 | 中科寒武纪科技股份有限公司 | 人工智能计算装置及相关产品 |
CN111723920B (zh) * | 2019-03-22 | 2024-05-17 | 中科寒武纪科技股份有限公司 | 人工智能计算装置及相关产品 |
WO2020200250A1 (zh) * | 2019-04-02 | 2020-10-08 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
US10698842B1 (en) * | 2019-04-10 | 2020-06-30 | Xilinx, Inc. | Domain assist processor-peer for coherent acceleration |
CN111832739B (zh) | 2019-04-18 | 2024-01-09 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
US20200334522A1 (en) | 2019-04-18 | 2020-10-22 | Cambricon Technologies Corporation Limited | Data processing method and related products |
CN111860799A (zh) * | 2019-04-27 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 运算装置 |
WO2020220935A1 (zh) | 2019-04-27 | 2020-11-05 | 中科寒武纪科技股份有限公司 | 运算装置 |
CN110298441B (zh) * | 2019-05-24 | 2022-01-11 | 深圳云天励飞技术有限公司 | 一种数据处理方法、电子装置及计算机可读存储介质 |
CN112068799B (zh) * | 2019-06-11 | 2022-08-02 | 云南大学 | 一种最优带符号二进制快速计算方法以及椭圆曲线标量乘法 |
EP3772022A1 (en) | 2019-06-12 | 2021-02-03 | Shanghai Cambricon Information Technology Co., Ltd | Method for determining quantization parameters in neural network and related products |
US11676029B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
CN110245750B (zh) * | 2019-06-14 | 2022-07-15 | 西南科技大学 | 一种基于fpga的神经网络数值模拟方法 |
CN112168140B (zh) * | 2019-07-05 | 2021-07-13 | 山东大学齐鲁医院 | 基于人工智能芯片的穿戴式生物信息监测设备及方法 |
WO2021004076A1 (zh) * | 2019-07-05 | 2021-01-14 | 山东大学 | 基于人工智能芯片的适形穿戴式生物信息监测设备及系统 |
CN110348021B (zh) * | 2019-07-17 | 2021-05-18 | 湖北亿咖通科技有限公司 | 基于命名实体模型的字符串识别方法、电子设备、存储介质 |
CN114144793A (zh) * | 2019-08-05 | 2022-03-04 | 华为技术有限公司 | 数据传输方法、装置、电子设备及可读存储介质 |
CN112346784A (zh) * | 2019-08-07 | 2021-02-09 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN112346707A (zh) * | 2019-08-07 | 2021-02-09 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN112395006A (zh) * | 2019-08-13 | 2021-02-23 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
EP4020321A4 (en) | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
CN110728365B (zh) * | 2019-09-12 | 2022-04-01 | 东南大学 | 多位宽pe阵列计算位宽的选择方法及计算精度控制电路 |
US11579802B2 (en) * | 2019-10-04 | 2023-02-14 | Fungible, Inc. | Pipeline using match-action blocks |
CN112667288A (zh) * | 2019-10-15 | 2021-04-16 | 北京希姆计算科技有限公司 | 数据运算电路、数据处理装置、芯片、卡板及电子设备 |
WO2021077283A1 (zh) * | 2019-10-22 | 2021-04-29 | 深圳鲲云信息科技有限公司 | 神经网络计算压缩方法、系统及存储介质 |
CN111080400B (zh) * | 2019-11-25 | 2023-04-18 | 中山大学 | 一种基于门控图卷积网络的商品推荐方法及系统、存储介质 |
CN110989970B (zh) * | 2019-11-27 | 2023-04-11 | 广州海格通信集团股份有限公司 | 一种双精度浮点矩阵运算处理器及方法 |
CN111091181B (zh) * | 2019-12-09 | 2023-09-05 | Oppo广东移动通信有限公司 | 卷积处理单元、神经网络处理器、电子设备及卷积运算方法 |
CN111124500B (zh) * | 2019-12-12 | 2022-03-08 | 浪潮(北京)电子信息产业有限公司 | 一种指令执行方法、装置、设备及存储介质 |
CN111104513B (zh) * | 2019-12-13 | 2023-05-02 | 中山大学 | 一种游戏平台用户问答业务的短文本分类方法 |
CN111026445A (zh) * | 2019-12-17 | 2020-04-17 | 湖南长城银河科技有限公司 | 一种智能识别方法及芯片 |
CN111242293B (zh) * | 2020-01-13 | 2023-07-18 | 腾讯科技(深圳)有限公司 | 一种处理部件、数据处理的方法以及电子设备 |
CN111221479B (zh) * | 2020-01-19 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种判断存储容量变化量异常的方法、系统及存储介质 |
CN111507473B (zh) * | 2020-04-20 | 2023-05-12 | 上海交通大学 | 一种基于Crossbar架构的剪枝方法及系统 |
US11450672B2 (en) | 2020-04-27 | 2022-09-20 | Intel Corporation | Ultra-deep compute static random access memory with high compute throughput and multi-directional data propagation |
CN111522776B (zh) * | 2020-04-27 | 2022-04-05 | 西安交通大学 | 一种计算架构 |
CN113626082A (zh) * | 2020-05-08 | 2021-11-09 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
CN113626080B (zh) * | 2020-05-08 | 2023-10-03 | 安徽寒武纪信息科技有限公司 | 数据处理装置以及相关产品 |
CN113807507A (zh) * | 2020-06-16 | 2021-12-17 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
CN111832718B (zh) * | 2020-06-24 | 2021-08-03 | 上海西井信息科技有限公司 | 芯片架构 |
CN113867799A (zh) * | 2020-06-30 | 2021-12-31 | 上海寒武纪信息科技有限公司 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
CN118012505A (zh) * | 2020-06-30 | 2024-05-10 | 上海寒武纪信息科技有限公司 | 人工智能处理器、集成电路芯片、板卡、电子设备 |
CN111783954B (zh) * | 2020-06-30 | 2023-05-02 | 安徽寒武纪信息科技有限公司 | 一种用于确定神经网络的性能的方法、电子设备和存储介质 |
CN113867793A (zh) * | 2020-06-30 | 2021-12-31 | 上海寒武纪信息科技有限公司 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
US11823035B2 (en) | 2020-07-07 | 2023-11-21 | Qualcomm Incorporated | Power-efficient compute-in-memory pooling |
CN111651207B (zh) * | 2020-08-06 | 2020-11-17 | 腾讯科技(深圳)有限公司 | 一种神经网络模型运算芯片、方法、装置、设备及介质 |
CN111930506A (zh) * | 2020-08-13 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种矩阵调度方法及相关装置 |
WO2022040643A1 (en) * | 2020-08-21 | 2022-02-24 | Fu Zhi Sing | Processing unit architectures and techniques for reusable instructions and data |
KR20220034542A (ko) * | 2020-09-11 | 2022-03-18 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
CN112259071A (zh) * | 2020-09-22 | 2021-01-22 | 北京百度网讯科技有限公司 | 语音处理系统、语音处理方法、电子设备和可读存储介质 |
CN112257859B (zh) * | 2020-10-30 | 2024-07-05 | 地平线(上海)人工智能技术有限公司 | 特征数据处理方法及装置、设备、存储介质 |
CN112036554B (zh) * | 2020-11-04 | 2021-04-06 | 深圳追一科技有限公司 | 神经网络模型的处理方法、装置、计算机设备和存储介质 |
CN112711218B (zh) * | 2020-12-08 | 2022-03-15 | 杭州电子科技大学上虞科学与工程研究院有限公司 | 一种工业设备数据采集的方法 |
CN112506436B (zh) * | 2020-12-11 | 2023-01-31 | 西北工业大学 | 用于卷积神经网络加速器的高效率数据动态存储分配方法 |
CN112783556B (zh) * | 2021-01-06 | 2023-04-07 | 南阳理工学院 | 信息处理方法、信息处理装置及终端设备 |
CN115271047A (zh) * | 2021-04-29 | 2022-11-01 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN113469326B (zh) * | 2021-06-24 | 2024-04-02 | 上海寒武纪信息科技有限公司 | 在神经网络模型中执行剪枝优化的集成电路装置及板卡 |
CN113806285B (zh) * | 2021-09-18 | 2024-06-25 | 北京爱芯科技有限公司 | 一种数据处理模组、芯片和数据处理方法 |
CN114139693A (zh) * | 2021-12-03 | 2022-03-04 | 安谋科技(中国)有限公司 | 神经网络模型的数据处理方法、介质和电子设备 |
CN114237612A (zh) * | 2021-12-03 | 2022-03-25 | 龙芯中科技术股份有限公司 | 程序代码的编译方法、装置、电子设备及存储介质 |
CN114296798A (zh) * | 2021-12-10 | 2022-04-08 | 龙芯中科技术股份有限公司 | 向量移位方法、处理器及电子设备 |
CN114372012B (zh) * | 2021-12-21 | 2024-02-20 | 中国科学院深圳先进技术研究院 | 一种通用、可配置的高能效池化计算单行输出系统和方法 |
CN114265872B (zh) * | 2022-02-24 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种用于总线的互联装置 |
CN114726512B (zh) * | 2022-03-08 | 2024-03-26 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
CN114692833B (zh) * | 2022-03-30 | 2023-11-21 | 广东齐芯半导体有限公司 | 一种卷积计算电路、神经网络处理器以及卷积计算方法 |
CN114818803A (zh) * | 2022-04-25 | 2022-07-29 | 上海韶脑传感技术有限公司 | 基于神经元优化的单侧肢体患者运动想象脑电建模方法 |
CN115390654A (zh) * | 2022-08-11 | 2022-11-25 | Oppo广东移动通信有限公司 | 降低功耗的方法、处理器、电子设备及存储介质 |
KR20240033565A (ko) * | 2022-09-05 | 2024-03-12 | 리벨리온 주식회사 | 뉴럴 프로세싱 장치, 그에 포함되는 프로세싱 엘리먼트 및 뉴럴 프로세싱 장치의 다양한 포맷 연산 방법 |
CN115203126B (zh) * | 2022-09-15 | 2023-04-18 | 太初(无锡)电子科技有限公司 | 一种算子融合处理方法、装置、设备及存储介质 |
CN115934768A (zh) * | 2022-12-01 | 2023-04-07 | 摩尔线程智能科技(北京)有限责任公司 | 数据的处理方法、显示适配器、电子设备及存储介质 |
CN115826910B (zh) * | 2023-02-07 | 2023-05-02 | 成都申威科技有限责任公司 | 一种向量定点的alu处理系统 |
CN116055049B (zh) * | 2023-04-03 | 2023-07-04 | 富算科技(上海)有限公司 | 多方安全计算方法、装置、系统、电子设备和存储介质 |
CN116360858B (zh) * | 2023-05-26 | 2023-08-29 | 摩尔线程智能科技(北京)有限责任公司 | 数据的处理方法、图形处理器、电子设备及存储介质 |
KR102653745B1 (ko) * | 2023-06-02 | 2024-04-02 | 라이프앤사이언스주식회사 | 최적화된 연산속도를 가지는 교육용 로봇제어기 |
CN117992396B (zh) * | 2024-03-29 | 2024-05-28 | 深存科技(无锡)有限公司 | 流式张量处理器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699360A (zh) * | 2012-09-27 | 2014-04-02 | 北京中科晶上科技有限公司 | 一种向量处理器及其进行向量数据存取、交互的方法 |
CN105844330A (zh) * | 2016-03-22 | 2016-08-10 | 华为技术有限公司 | 神经网络处理器的数据处理方法及神经网络处理器 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
CN106355246A (zh) * | 2015-10-08 | 2017-01-25 | 上海兆芯集成电路有限公司 | 三配置神经网络单元 |
CN106845631A (zh) * | 2016-12-26 | 2017-06-13 | 上海寒武纪信息科技有限公司 | 一种流执行方法及装置 |
WO2017105517A1 (en) * | 2015-12-18 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Memristor crossbar arrays to activate processors |
Family Cites Families (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1013070B (zh) * | 1988-01-09 | 1991-07-03 | 北京信通电脑技术公司 | 直接处理接近数学公式的″机器表达式″的计算机系统 |
US5083285A (en) * | 1988-10-11 | 1992-01-21 | Kabushiki Kaisha Toshiba | Matrix-structured neural network with learning circuitry |
US5327537A (en) * | 1990-03-13 | 1994-07-05 | At&T Bell Laboratories | Apparatus for controlling instruction execution in a pipelined processor |
GB2288521B (en) * | 1994-03-24 | 1998-10-14 | Discovision Ass | Reconfigurable process stage |
US5956703A (en) * | 1995-07-28 | 1999-09-21 | Delco Electronics Corporation | Configurable neural network integrated circuit |
US5717891A (en) | 1995-10-12 | 1998-02-10 | Analog Devices, Inc. | Digital signal processor with caching of instructions that produce a memory conflict |
US5889985A (en) * | 1996-08-07 | 1999-03-30 | Elbrus International | Array prefetch apparatus and method |
CN1302403A (zh) * | 1998-05-22 | 2001-07-04 | 弗兰普顿·E·埃利斯三世 | 全球网络计算机 |
US6941289B2 (en) * | 2001-04-06 | 2005-09-06 | Sas Institute Inc. | Hybrid neural network generation system and method |
EP1527385A1 (en) * | 2002-07-26 | 2005-05-04 | Koninklijke Philips Electronics N.V. | Method and apparatus for accessing multiple vector elements in parallel |
US7236995B2 (en) * | 2002-12-27 | 2007-06-26 | Arm Limited | Data processing apparatus and method for converting a number between fixed-point and floating-point representations |
US9555052B2 (en) * | 2003-06-13 | 2017-01-31 | Sumathi Paturu | Intrauterine fetal growth restriction—the biochemical rationale of treatment modalities including extraperitoneal transamniotic fetal supplements |
US7539714B2 (en) * | 2003-06-30 | 2009-05-26 | Intel Corporation | Method, apparatus, and instruction for performing a sign operation that multiplies |
US7020769B2 (en) * | 2003-09-30 | 2006-03-28 | Starcore, Llc | Method and system for processing a loop of instructions |
CN101211341A (zh) * | 2006-12-29 | 2008-07-02 | 上海芯盛电子科技有限公司 | 图像智能模式识别搜索方法 |
US7681015B2 (en) * | 2007-01-30 | 2010-03-16 | Nema Labs Ab | Generating and comparing memory access ranges for speculative throughput computing |
CN101021832A (zh) * | 2007-03-19 | 2007-08-22 | 中国人民解放军国防科学技术大学 | 支持局部寄存和条件执行的64位浮点整数融合运算群 |
CN101399977A (zh) * | 2007-09-29 | 2009-04-01 | 智多微电子(上海)有限公司 | 解码装置中控制片内存储器的数据并行读写的方法及装置 |
US8181003B2 (en) * | 2008-05-29 | 2012-05-15 | Axis Semiconductor, Inc. | Instruction set design, control and communication in programmable microprocessor cores and the like |
US20100047768A1 (en) * | 2008-08-18 | 2010-02-25 | J. Craig Venter Institute, Inc. | Amplification of single viral genomes |
US20100122070A1 (en) * | 2008-11-07 | 2010-05-13 | Nokia Corporation | Combined associative and distributed arithmetics for multiple inner products |
CN101644921B (zh) * | 2009-08-05 | 2011-07-20 | 无锡信捷电气有限公司 | 一种改进型板料数控折弯设计方法 |
US8577950B2 (en) * | 2009-08-17 | 2013-11-05 | International Business Machines Corporation | Matrix multiplication operations with data pre-conditioning in a high performance computing architecture |
CN101667114B (zh) * | 2009-09-30 | 2012-07-04 | 西安电子科技大学 | 适于矩阵求逆的超长指令集微处理系统 |
CN101770515B (zh) * | 2010-01-18 | 2012-01-11 | 杭州顺网科技股份有限公司 | 一种基于数据块比较的数据更新方法 |
CN101783805B (zh) * | 2010-03-01 | 2013-04-17 | 田耕 | 一种利用动态矢量矩阵的加密通信方法 |
CN101833441B (zh) * | 2010-04-28 | 2013-02-13 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
US9129220B2 (en) * | 2010-07-07 | 2015-09-08 | Qualcomm Incorporated | Methods and systems for digital neural processing with discrete-level synapes and probabilistic STDP |
CN101916180B (zh) * | 2010-08-11 | 2013-05-29 | 中国科学院计算技术研究所 | Risc处理器中执行寄存器类型指令的方法和其系统 |
CN101963983A (zh) * | 2010-09-28 | 2011-02-02 | 江苏瑞蚨通软件科技有限公司(中外合资) | 一种粗集优化神经网络的数据挖掘方法 |
SG180028A1 (en) * | 2010-10-12 | 2012-05-30 | St Electronics Info Software Systems Pte Ltd | Information management system and device |
US8515885B2 (en) * | 2010-10-29 | 2013-08-20 | International Business Machines Corporation | Neuromorphic and synaptronic spiking neural network with synaptic weights learned using simulation |
CN102541814B (zh) * | 2010-12-27 | 2015-10-14 | 北京国睿中数科技股份有限公司 | 用于数据通信处理器的矩阵计算装置和方法 |
CN102637157B (zh) * | 2011-02-15 | 2014-12-03 | 郑磊 | 一种片上数字模板系统dtsoc |
US8843425B2 (en) * | 2011-07-29 | 2014-09-23 | International Business Machines Corporation | Hierarchical routing for two-way information flow and structural plasticity in neural networks |
US9916538B2 (en) * | 2012-09-15 | 2018-03-13 | Z Advanced Computing, Inc. | Method and system for feature detection |
FR2980905B1 (fr) * | 2011-09-29 | 2014-03-14 | Continental Automotive France | Procede d'effacement d'informations memorisees dans une memoire reinscriptible non volatile, support de memorisation et calculateur de vehicule automobile |
CN102510282B (zh) * | 2011-10-25 | 2014-07-09 | 中国科学院空间科学与应用研究中心 | 一种时间分辨单光子计数二维成像系统及方法 |
US9960917B2 (en) * | 2011-12-22 | 2018-05-01 | Intel Corporation | Matrix multiply accumulate instruction |
CN102609378B (zh) * | 2012-01-18 | 2016-03-30 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
KR20130090147A (ko) * | 2012-02-03 | 2013-08-13 | 안병익 | 신경망 컴퓨팅 장치 및 시스템과 그 방법 |
CN103377033B (zh) * | 2012-04-12 | 2016-01-13 | 无锡江南计算技术研究所 | 运算核心及其指令管理方法 |
CN102880341B (zh) * | 2012-08-29 | 2015-08-05 | 北京集创北方科技有限公司 | 触摸屏数据处理系统、方法及专用alu |
CN103023839B (zh) * | 2012-12-04 | 2016-12-28 | 温州大学 | 基于输出反馈偏置型复连续反馈神经网络结构的无线光通信系统盲均衡方法 |
US9171029B2 (en) * | 2013-01-31 | 2015-10-27 | International Business Machines Corporation | Performing batches of selective assignments in a vector friendly manner |
CN103246541B (zh) * | 2013-04-27 | 2016-03-23 | 中国人民解放军信息工程大学 | 一种自动并行化多级并行代价评估方法 |
CN103399486B (zh) * | 2013-07-05 | 2016-04-06 | 杭州电子科技大学 | 塑料烘干器温度优化节能控制方法 |
EP2858024A1 (en) * | 2013-10-01 | 2015-04-08 | Enyx SA | An asset management device and method in a hardware platform |
US9582248B2 (en) * | 2014-09-26 | 2017-02-28 | Arm Limited | Standalone floating-point conversion unit |
US20160124651A1 (en) * | 2014-11-03 | 2016-05-05 | Texas Instruments Incorporated | Method for performing random read access to a block of data using parallel lut read instruction in vector processors |
US9996350B2 (en) * | 2014-12-27 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array |
US20170061279A1 (en) * | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
US10223635B2 (en) * | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
US11544214B2 (en) * | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
CN104699629B (zh) * | 2015-03-16 | 2017-09-22 | 清华大学 | 共享片上缓存划分装置 |
CN104778026A (zh) * | 2015-04-28 | 2015-07-15 | 浪潮电子信息产业股份有限公司 | 一种带simd的高速数据格式转换部件及转换方法 |
US9633306B2 (en) * | 2015-05-07 | 2017-04-25 | Siemens Healthcare Gmbh | Method and system for approximating deep neural networks for anatomical object detection |
US10083395B2 (en) * | 2015-05-21 | 2018-09-25 | Google Llc | Batch processing in a neural network processor |
US9805303B2 (en) * | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
CN104915322B (zh) * | 2015-06-09 | 2018-05-01 | 中国人民解放军国防科学技术大学 | 一种卷积神经网络硬件加速方法 |
EP3345108B1 (en) * | 2015-09-01 | 2020-11-04 | Flex Logix Technologies, Inc. | Block memory layout and architecture for programmable logic ic, and method of operating same |
US10776690B2 (en) * | 2015-10-08 | 2020-09-15 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with plurality of selectable output functions |
CN106570559A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 一种基于神经网络的数据处理方法和装置 |
CN105224505B (zh) * | 2015-10-29 | 2018-05-25 | 中国人民解放军国防科学技术大学 | 基于矩阵转置操作的fft加速器装置 |
CN105550749A (zh) * | 2015-12-09 | 2016-05-04 | 四川长虹电器股份有限公司 | 一种新型网络拓扑结构的卷积神经网络的构造方法 |
CN105630680B (zh) * | 2015-12-28 | 2018-12-18 | 中国科学院微电子研究所 | 一种随机测试程序生成方法 |
CN107506828B (zh) * | 2016-01-20 | 2020-11-03 | 中科寒武纪科技股份有限公司 | 用于稀疏连接的人工神经网络计算装置和方法 |
US10762164B2 (en) * | 2016-01-20 | 2020-09-01 | Cambricon Technologies Corporation Limited | Vector and matrix computing device |
CN105912476A (zh) * | 2016-04-06 | 2016-08-31 | 中国科学院计算技术研究所 | 片上重复寻址的方法及装置 |
CN105843775B (zh) * | 2016-04-06 | 2018-12-04 | 中国科学院计算技术研究所 | 片上数据划分读写方法、系统及其装置 |
US11740903B2 (en) * | 2016-04-26 | 2023-08-29 | Onnivation, LLC | Computing machine using a matrix space and matrix pointer registers for matrix and array processing |
US20170337156A1 (en) * | 2016-04-26 | 2017-11-23 | Onnivation Llc | Computing machine architecture for matrix and array processing |
CN105930281B (zh) * | 2016-05-12 | 2019-01-15 | 清华大学 | 以配置信息驱动数据访存模式匹配的片上缓存预取机制 |
CN106022614A (zh) * | 2016-05-22 | 2016-10-12 | 广州供电局有限公司 | 一种基于最近邻聚类的神经网络数据挖掘方法 |
CN105976024B (zh) * | 2016-06-03 | 2018-12-25 | 福州大学 | 基于rbf的模式分类器及其工作方法 |
CN106203622B (zh) * | 2016-07-14 | 2018-12-25 | 杭州华为数字技术有限公司 | 神经网络运算装置 |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的系统 |
CN106650922B (zh) * | 2016-09-29 | 2019-05-03 | 清华大学 | 硬件神经网络转换方法、计算装置、软硬件协作系统 |
US10175980B2 (en) * | 2016-10-27 | 2019-01-08 | Google Llc | Neural network compute tile |
CN106599840A (zh) * | 2016-12-13 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种图像识别协处理器、图像识别系统及方法 |
CN106775599B (zh) * | 2017-01-09 | 2019-03-01 | 南京工业大学 | 递归神经网络的多计算单元粗粒度可重构系统及方法 |
CN106909971A (zh) * | 2017-02-10 | 2017-06-30 | 华南理工大学 | 一种面向多核计算环境的bp神经网络并行化方法 |
CN106940815B (zh) * | 2017-02-13 | 2020-07-28 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN106951961B (zh) * | 2017-02-24 | 2019-11-26 | 清华大学 | 一种粗粒度可重构的卷积神经网络加速器及系统 |
KR102258414B1 (ko) * | 2017-04-19 | 2021-05-28 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리 장치 및 처리 방법 |
CN107729990B (zh) * | 2017-07-20 | 2021-06-08 | 上海寒武纪信息科技有限公司 | 支持离散数据表示的用于执行正向运算的装置及方法 |
US10223114B1 (en) * | 2017-09-29 | 2019-03-05 | Intel Corporation | Fixed point to floating point conversion |
US11210063B2 (en) * | 2019-03-27 | 2021-12-28 | Intel Corporation | Machine learning training architecture for programmable devices |
US11983530B2 (en) * | 2020-03-27 | 2024-05-14 | Intel Corporation | Reconfigurable digital signal processing (DSP) vector engine |
-
2017
- 2017-07-20 CN CN201710928261.3A patent/CN107729990B/zh active Active
- 2017-07-20 CN CN201710927526.8A patent/CN107844322B/zh active Active
- 2017-07-20 CN CN201710927144.5A patent/CN109284822B/zh active Active
- 2017-07-20 CN CN201710927267.9A patent/CN107832082B/zh active Active
- 2017-07-20 CN CN201710927338.5A patent/CN107608715B/zh active Active
- 2017-07-20 CN CN201710927307.XA patent/CN109284130B/zh active Active
- 2017-07-20 CN CN201710927336.6A patent/CN107729989B/zh active Active
- 2017-07-20 CN CN201710595951.1A patent/CN107992329B/zh active Active
- 2017-07-20 CN CN201710928125.4A patent/CN107807819B/zh active Active
-
2018
- 2018-07-13 CN CN201911057705.6A patent/CN110597558B/zh active Active
- 2018-07-13 CN CN201880004680.0A patent/CN110036369B/zh active Active
- 2018-07-13 CN CN202010189417.2A patent/CN111221578B/zh active Active
- 2018-07-13 EP EP18835662.0A patent/EP3686734A4/en active Pending
- 2018-07-13 CN CN201911058837.0A patent/CN110688159B/zh active Active
- 2018-07-13 CN CN201911058840.2A patent/CN110825434B/zh active Active
- 2018-07-13 CN CN202010189355.5A patent/CN111176727B/zh active Active
- 2018-07-13 CN CN201911058836.6A patent/CN110688158B/zh active Active
- 2018-07-13 CN CN201911069248.2A patent/CN110597559B/zh active Active
- 2018-07-13 CN CN201911058620.XA patent/CN110688157B/zh active Active
- 2018-07-13 WO PCT/CN2018/095706 patent/WO2019015541A1/zh unknown
-
2020
- 2020-01-17 US US16/745,743 patent/US11481215B2/en active Active
-
2022
- 2022-09-05 US US17/929,730 patent/US11983534B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699360A (zh) * | 2012-09-27 | 2014-04-02 | 北京中科晶上科技有限公司 | 一种向量处理器及其进行向量数据存取、交互的方法 |
CN106355246A (zh) * | 2015-10-08 | 2017-01-25 | 上海兆芯集成电路有限公司 | 三配置神经网络单元 |
WO2017105517A1 (en) * | 2015-12-18 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Memristor crossbar arrays to activate processors |
CN105844330A (zh) * | 2016-03-22 | 2016-08-10 | 华为技术有限公司 | 神经网络处理器的数据处理方法及神经网络处理器 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
CN106845631A (zh) * | 2016-12-26 | 2017-06-13 | 上海寒武纪信息科技有限公司 | 一种流执行方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523652A (zh) * | 2019-02-01 | 2020-08-11 | 阿里巴巴集团控股有限公司 | 处理器及其数据处理方法、摄像装置 |
CN111523652B (zh) * | 2019-02-01 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 处理器及其数据处理方法、摄像装置 |
WO2020258841A1 (zh) * | 2019-06-25 | 2020-12-30 | 东南大学 | 一种基于幂指数量化的深度神经网络硬件加速器 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284822A (zh) | 一种神经网络运算装置及方法 | |
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN110352433A (zh) | 用于神经网络处理的具有矩阵-向量相乘区块的硬件节点 | |
CN110163359A (zh) | 一种计算装置及方法 | |
Feldmann et al. | F1: A fast and programmable accelerator for fully homomorphic encryption (extended version) | |
CN111639699B (zh) | 一种图像特征提取的方法、系统、设备及可读存储介质 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN113157638B (zh) | 一种低功耗存储器内计算处理器和处理运算方法 | |
CN110363291A (zh) | 神经网络的运算方法、装置、计算机设备和存储介质 | |
CN116888591A (zh) | 一种矩阵乘法器、矩阵计算方法及相关设备 | |
CN108108189A (zh) | 一种计算方法及相关产品 | |
Morcel et al. | Fpga-based accelerator for deep convolutional neural networks for the spark environment | |
Chiper et al. | An efficient unified framework for implementation of a prime-length DCT/IDCT with high throughput | |
CN110096672A (zh) | 基于fpga的低成本流水线型fft处理器实现方法 | |
CN108805271A (zh) | 一种运算装置和方法 | |
CN115034360A (zh) | 三维卷积神经网络卷积层的处理方法和处理装置 | |
CN108021393A (zh) | 一种计算方法及相关产品 | |
Parhami et al. | Tabular Computation. | |
CN217821651U (zh) | 三维卷积神经网络卷积层的处理装置和处理器 | |
CN110956257A (zh) | 神经网络加速器 | |
Chiu et al. | Hamid R. Arabnia | |
CN117493748A (zh) | 向量处理器的低位宽数据矩阵向量乘实现方法及装置 | |
Malita et al. | The berkeley motifs and an integral parallel architecture | |
CN108734280A (zh) | 一种运算装置和方法 | |
Robelly et al. | Design and automatic code generation of the LMS algorithm for SIMD signal processors |
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 |