CN110688157B - 一种计算装置及计算方法 - Google Patents

一种计算装置及计算方法 Download PDF

Info

Publication number
CN110688157B
CN110688157B CN201911058620.XA CN201911058620A CN110688157B CN 110688157 B CN110688157 B CN 110688157B CN 201911058620 A CN201911058620 A CN 201911058620A CN 110688157 B CN110688157 B CN 110688157B
Authority
CN
China
Prior art keywords
data
chip
matrix
operation instruction
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911058620.XA
Other languages
English (en)
Other versions
CN110688157A (zh
Inventor
陈天石
刘少礼
王在
胡帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Publication of CN110688157A publication Critical patent/CN110688157A/zh
Application granted granted Critical
Publication of CN110688157B publication Critical patent/CN110688157B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, 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是一种计算装置结构示意图。
图1-2是另一种计算装置结构示意图。
图1-3是本申请实施例提供的计算装置的结构示意图。
图1-4是本申请实施例提供的矩阵计算单元的结构示意图。
图1-5是本申请实施例提供的流水级的结构示意图。
图1-6是本申请实施例公开的一种矩阵计算方法的流程示意图。
图1-7是本申请实施例提供的指令集的格式示意图。
图1-8是本申请实施例提供的另一种计算装置的结构示意图。
图1-9是本申请实施例提供的计算装置执行矩阵乘向量指令的流程图。
图2-1是本申请所述片上数据划分读写***的结构示意图;
图2-2是本申请优选实施例的所述片上数据划分读写***的结构示意图;
图2-3是本申请所述片上数据划分策略的实现示意图之一;
图2-4是本申请所述片上数据划分策略的实现示意图之二;
图2-5是本申请根据本申请所述片上数据划分读写***的片上数据索引实施例示意图;
图2-6是本申请根据本申请所述片上数据划分读写方法的物理框架示意图;
图2-7是本申请根据本申请所述片上数据划分读写方法一个实施例数据拼接操作的物理设计框架图;
图2-8是本申请中所述片上数据划分读写方法流程示意图;
图2-9是本申请中所述片上数据划分读写方法一个具体实施例流程示意图;
图2-10示出了根据本申请实施例的神经网络计算***的结构示意图。
具体实施方式
参阅图1-1,图1-1为一种计算装置,在如图1-1所示的矩阵的计算装置中,其包含多个通用处理器101(CPU),每个CPU均包含自身的内存,其处理的方法可以为,多个CPU并行处理矩阵的计算,此方案虽在在矩阵的计算中采用并行处理的方式,但是其并不能有效的提高效率,因为对于矩阵运算中,第二矩阵运算的结果可能需要使用第一矩阵运算的结果,具体的,第一矩阵运算为f(1)=A+B,第二矩阵运算为:f(2)=f(1)+C,对于第二矩阵运算来说,其需要提取第一矩阵运算的结果f(1)才能够进行实际的矩阵计算处理,此种情况在神经网络计算中尤为突出,由于多个CPU并行处理矩阵运算,那么在矩阵计算的分配时,很有可能CPU1执行第一矩阵运算,CPU2执行第二矩阵运算,那么对于CPU2来说,其需要从CPU1提取第一矩阵运算的结果f(1),所以对于多CPU并行处理矩阵来说,多个CPU之间的通讯成为矩阵运算的瓶颈,影响矩阵计算的速度。
参阅图1-2,图1-2为另一种计算装置,在如图1-2所示的计算装置中,其包含有图形处理器(GPU)102,通过GPU102来执行矩阵的运算,对于GPU来说,其本身也包含内存1021,GPU102在处理矩阵运算时,GPU102需要从内存1021中提取矩阵运算所需的矩阵,矩阵由于其数据量大,单个矩阵所占用的存储空间比标量要大很多,对于GPU102来说,虽然其运算能够非常强,但是GPU102的内存的容量不够,无法存储大量的矩阵,为了解决这个问题,图1-2配置了片外数据库103,GPU102可以从片外数据库103中读取矩阵,具体的读取方式为,GPU102从片外数据库103中提取待计算的矩阵,将该矩阵存储在内存1021中,在执行矩阵运算时,进行矩阵指令的译码处理,然后从内存1021中提取该矩阵进行计算。此技术方案在执行矩阵计算中,GPU102进行矩阵指令的译码会占用GPU很大部分的计算能力,影响矩阵的计算速度,效率低。
本申请中提到的输入神经元和输出神经元并非是指整个神经网络的输入层中神经元和输出层中神经元,而是对于网络中任意相邻的两层,处于网络前馈运算下层中的神经元即为输入神经元,处于网络前馈运算上层中的神经元即为输出神经元。以卷积神经网络为例,设一个卷积神经网络有L层,K=1,2,...,L-1,对于第K层和第K+1层来说,我们将第K层称为输入层,其中的神经元为所述输入神经元,第K+1层称为输出层,其中的神经元为所述输出神经元。即除最顶层外,每一层都可以作为输入层,其下一层为对应的输出层。
本申请具体实施方式提供一种矩阵计算方法,该矩阵计算方法在如图1-3所示的计算装置内完成,如图1-3所示,该计算装置包括:
存储器201、用于存储矩阵。优选该存储器可以为高速暂存存储器,能够支持不同长度的矩阵数据;本申请将必要的计算数据暂存在存储器(优选的高速暂存存储器)上(Scratchpad Memory),使本计算装置在进行矩阵运算过程中可以更加灵活有效地支持不同长度的数据。上述存储器还可以为片外数据库、数据库或其他的能够存储的介质等等。
标量数据存储单元202(例如标量寄存器单元),用于存储标量数据,其中,该标量数据包括但不限于:矩阵数据在存储介质201的地址以及矩阵与标量运算时的标量。在一种实施方式中,标量寄存器单元可以是标量寄存器堆,提供运算过程中所需的标量寄存器,标量寄存器不只存放矩阵地址,还存放有标量数据。当涉及到矩阵与标量的运算时,运算单元不仅要从寄存器单元中获取矩阵地址,还要从寄存器单元中获取相应的标量。
运算单元203,用于获取并执行第一运算指令。如图1-4所示,该运算单元包括多个运算器,该运算器包括但不限于:矩阵加法运算器231、矩阵乘法运算器232、大小比较运算器233、非线性运算器234和矩阵标量乘法运算器235。
该矩阵计算方法如图1-6所示,包括如下步骤:
步骤S301、运算单元203获取第一运算指令,所述第一运算指令包括:执行该指令所需的矩阵读取指示。
在步骤S301中,上述执行该指令所需的矩阵读取指示具体可以为多种,例如,在本申请一个可选的技术方案中,上述执行该指令所需的矩阵读取指示可以为所需矩阵的存储地址。又如,在本申请另一个可选的技术方案中,上述执行该指令所需的矩阵读取指示可以为所需矩阵的标识,该标识的表现形式可以为多种,例如,矩阵的名称,又如,矩阵的识别号,再如该矩阵在寄存器单元的寄存器号或地址,标识还可以包括矩阵的大小。
下面通过一个实际的例子来说明上述第一运算指令包含的执行该指令所需的矩阵读取指示,这里假设该矩阵运算公式为f(x)=A+B,其中,A、B均为矩阵。那么在第一运算指令中除了携带该矩阵运算公式外,还可以携带该矩阵运算公式所需矩阵的存储地址,具体的,例如A的存储地址为0000-0FFF,B的存储地址为1000-1FFF。又如,可以携带A以及B的标识,例如A的标识为0101,B的标识为1010。
步骤S302、运算单元203依据该矩阵读取指示向所述存储器201发送读取命令。
上述步骤S302的实现方法具体可以为:
如该矩阵读取指示可以为所需矩阵的存储地址,运算单元203向该存储器201发送该读取该存储地址的读取命令并采用批量读取方式获取对应的矩阵。
又如该矩阵读取指示可以为所需矩阵的标识时,运算单元203依据该标识从标量数据存储单元处采用单个读取方式读取该标识对应的存储地址,然后运算单元203向该存储器201发送该读取该存储地址的读取命令并采用批量读取方式获取对应的矩阵。
上述单个读取方式具体可以为,每次读取均为单个的数据,例如1bit或者多bit,1字节,4字节,8字节数据。此时设置单个读取方式的原因为,对于标量数据来说,其占用的容量非常小,如果采用批量数据读取方式,那么读取的数据量容易大于所需的数据的容量,这样会导致带宽的浪费,所以对于标量的数据这里采用单个读取方式来读取以减少带宽的浪费。
步骤S303、运算单元203采用批量读取方式读取该指示对应的矩阵,对该矩阵执行所述第一运算指令。
上述步骤S303中批量读取方式具体可以为,每次读取均为多个的数据,,即无论其所需的数据量是多少,其每次读取的均为多个的数据,此批量读取的数据方式非常适合大数据的读取,对于矩阵来说,由于其所占用的容量大,如果采用单个读取方式,其读取的速度会非常慢,所以这里采用批量读取方式来获取多个的数据从而快速读取矩阵数据,避免因为读取矩阵数据过慢影响矩阵计算速度的问题。
本申请提供的技术方案的计算装置设置有标量数据存储单元和存储器,其分别存储标量数据以及矩阵数据,并且本申请为两种存储器分配了单位读取方式以及批量读取方式,通过对矩阵数据的特点分配匹配其特征的数据读取方式,能够很好的利用带宽,避免因为带宽的瓶颈对矩阵计算速度的影响,另外,对于标量数据存储单元来说,由于其存储的为标量数据,设置了标量数据的读取方式,提高了带宽的利用率,所以本申请提供的技术方案能够很好的利用带宽,避免带宽对计算速度的影响,所以其具有计算速度快,效率高的优点。
可选的,上述对该矩阵执行所述第一运算指令具体可以为:
对该矩阵执行n级流水级计算,具体的,对该矩阵执行第一流水级的计算得到第一结果,将第一结果输入到第二流水级执行第二流水级的计算得到第二结果,将第二结果输入到第三流水级执行第三流水级计算得到第三结果,一级一级向下执行后,将所述第n-1结果输入到第n流水级执行第n流水级的计算得到第n结果,将所述第n结果输入到所述存储器。n可以为大于等于2的整数。如n=3为例,上述流水级的操作流程图如图1-5所示。
上述第一流水级包括但不限于:矩阵加法计算器、矩阵乘法计算器等等。
上述第二流水级包括但不限于:大小比较计算器等等。
上述第三流水级包括但不限于:非线性运算器、矩阵标量乘法器等等。
将矩阵分三个流水级运算主要是为了提高运算的速度,对于矩阵的计算来说,例如采用通用处理器在计算时,其运算的步骤具体可以为,处理器对矩阵进行计算得到第一结果,然后将第一结果存储在内存中,处理器从内存读取第一结果执行第二次计算得到第二结果,然后将第二结果存储在内存中,处理器从内从读取第二结果执行第三次计算得到第三结果,然后将第三结果存储在内存中。从上述计算的步骤可以看出,在通用处理器进行矩阵计算时,其并没有分流水级进行计算,那么每次计算完毕后均需要将计算完的数据进行保存,下次计算时需要再次读取,所以此方案需要重复存储读取多次数据,对于本申请的技术方案来说,第一流水级计算的第一结果直接进入第二流水级进行计算,第二流水级计算的第二结果直接进入到第三流水级进行计算,第一流水级与第二流水级计算的第一结果和第二结果无需存储,首先其减少了内存的占用空间,其次,其避免了结果的多次存储以及读取,提高了带宽的利用率,进一步提高了计算效率。
在本申请另一实施例中,可以自由组合各流水部件或者采取一级流水级。例如将第二个流水级和第三个流水级合并,或者将第一和第二以及第三个流水线都合并或者各个流水级负责不同的运算可以排列组合。例如,第一级流水负责比较运算,部分乘法运算,第二级流水负责非线性运算和矩阵标量乘法等组合。
可选的,上述计算装置还可以包括:缓存单元204,用于缓存第一运算指令。指令在执行过程中,同时也被缓存在缓存单元中,当一条指令执行完之后,如果该指令同时也是缓存单元中未被提交指令中最早的一条指令,该指令将被提交,一旦提交,该条指令进行的操作对装置状态的改变将无法撤销。在一种实施方式中,指令缓存单元可以是重排序缓存。
可选的,上述方法在步骤S301之前还可以包括:
确定该第一运算指令与第一运算指令之前的第二运算指令是否存在关联关系,如第一运算指令与第一运算指令之前的第二运算指令存在关联关系,则在第二运算指令执行完毕以后,从缓存单元中提取出该第一运算指令传递至运算单元203。如第一运算指令与该第一运算指令之前的指令无关联关系,则直接将第一运算指令传递至运算单元。
上述确定该第一运算指令与第一运算指令之前的第二运算指令是否存在关联关系的具体实现方法可以为:
依据该第一运算指令提取该第一运算指令中所需矩阵的第一存储地址区间,依据该第二运算指令提取该第二运算指令中所需矩阵的第二存储地址区间,如第一存储地址区间与第二存储地址区间具有重叠的区域,则确定第一运算指令与第二运算指令具有关联关系。如第一存储地址区间与第二存储地址区间无重叠的区域,则确定第一运算指令与第二运算指令不具有关联关系。
此存储地区区间中有重叠区域出现说明第一运算指令与第二运算指令访问了相同的矩阵,对于矩阵来说,由于其存储的空间比较大,比如采用相同的存储区域作为判断是否为关联关系的条件,可能出现的情况是,第二运算指令访问的存储区域包含了第一运算指令访问的存储区域,例如,第二运算指令访问A矩阵存储区域、B矩阵存储区域和C矩阵存储区域,如果A、B存储区域相邻或A、C存储区域相邻,则第二运算指令访问的存储区域为,A、B存储区域以及C存储区域,或A、C存储区域以及B存储区域。这种情况下,如果第一运算指令访问的为A矩阵与D矩阵的存储区域,那么第一运算指令访问的矩阵的存储区域无法与第二运算指令范文的矩阵的存储区域相同,如果采用相同的判断条件,则确定第一运算指令与第二运算指令不关联,但是实践证明,此时第一运算指令与第二运算指令属于关联关系,所以本申请通过是否有重叠区域来判断是否为关联关系的条件,能够避免上述情况的误判。
下面以一个实际的例子来说明何种情况属于关联关系,何种情况属于非关联关系。这里假设第一运算指令所需的矩阵为A矩阵和D矩阵,其中A矩阵的存储区域为【0001,0FFF】,D矩阵的存储区域为【A000,AFFF】,对于第二运算指令所需的矩阵为A矩阵、B矩阵和C矩阵,其分别对应的存储区域为【0001,0FFF】、【1000,1FFF】、【B000,BFFF】,对于第一运算指令来说,其对应的存储区域为:【0001,0FFF】、【A000,AFFF】,对于第二运算指令来说,其对应的存储区域为:【0001,1FFF】、【B000,BFFF】,所以第二运算指令的存储区域与第一运算指令的存储区域具有重叠区域【0001,0FFF】,所以第一运算指令与第二运算指令具有关联关系。
这里假设第一运算指令所需的矩阵为E矩阵和D矩阵,其中A矩阵的存储区域为【C000,CFFF】,D矩阵的存储区域为【A000,AFFF】,对于第二运算指令所需的矩阵为A矩阵、B矩阵和C矩阵,其分别对应的存储区域为【0001,0FFF】、【1000,1FFF】、【B000,BFFF】,对于第一运算指令来说,其对应的存储区域为:【C000,CFFF】、【A000,AFFF】,对于第二运算指令来说,其对应的存储区域为:【0001,1FFF】、【B000,BFFF】,所以第二运算指令的存储区域与第一运算指令的存储区域不具有重叠区域,所以第一运算指令与第二运算指令无关联关系。
图1-7是本申请提供的指令集的格式示意图,图1-7中的省略号表示可以包括多个寄存器或立即数。如图1-7所示,运算指令包括一操作码和至少一操作域,其中,操作码用于指示该运算指令的功能,运算单元通过识别该操作码可进行不同的矩阵运算,操作域用于指示该运算指令的数据信息,其中,数据信息可以是立即数或寄存器号,例如,要获取一个矩阵时,根据寄存器号可以在相应的寄存器中获取矩阵起始地址和矩阵长度,再根据矩阵起始地址和矩阵长度在存储介质中获取相应地址存放的矩阵。
指令集包含有不同功能的运算指令:
矩阵乘向量指令(MMV),根据该指令,装置从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出设定长度的矩阵数据和向量数据,在运算单元中进行矩阵乘向量的乘法运算,并将结果写回。优选的,并将计算结果写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址;值得说明的是,向量可以作为特殊形式的矩阵(只有一行元素的矩阵)存储于存储器(优选的高速暂存存储器或者标量寄存器堆)中。
向量乘矩阵指令(VMM),根据该指令,装置从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出设定长度的向量数据和矩阵数据,在运算单元中进行向量乘矩阵的乘法运算,并将结果写回。优选的,并将计算结果写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址;值得说明的是,向量可以作为特殊形式的矩阵(只有一行元素的矩阵)存储于存储器(优选的高速暂存存储器或者标量寄存器堆)中。
矩阵乘标量指令(VMS),根据该指令,装置存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出设定长度的矩阵数据,从标量寄存器堆的指定地址中取出指定大小的矩阵数据,在运算单元中进行标量乘矩阵的乘法运算,并将计算结果写回。优选的,并将计算结果写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址,需要说明的是,标量寄存器堆不仅存储有矩阵的地址,还存储有标量数据。
张量运算指令(TENS),根据该指令,装置从存储器(优选的高速暂存存储器或者标量寄存器堆)的两个指定地址取出分别取出设定长度的两块矩阵数据,在运算单元中对两矩阵数据进行张量运算,并将计算结果写回。优选的,并将计算结果写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址。
矩阵加法指令(MA),根据该指令,装置从存储器(优选的高速暂存存储器或者标量寄存器堆)的两个指定地址取出分别取出设定长度的两块矩阵数据,在运算单元中对两矩阵进行加法运算,并将计算结果写回。优选的,并将计算结果写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址。
矩阵减法指令(MS),根据该指令,装置从存储器(优选的高速暂存存储器或者标量寄存器堆)的两个指定地址取出分别取出设定长度的两块矩阵数据,在运算单元中对两矩阵进行减法运算,并将计算结果写回。优选的,并将计算结果写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址。
矩阵检索指令(MR),根据该指令,装置从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出设定长度的向量数据,从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的矩阵数据,在运算单元中,该向量是索引向量,输出的向量中的第i个元素是以索引向量的第i个元素作为索引,在矩阵的第i列中找到的数,该输出向量写回至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址。
矩阵加载指令(ML),根据该指令,装置从指定外部源地址载入设定长度的数据至存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址。
矩阵存储指令(MS),根据该指令,装置将存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址的设定长度的矩阵数据存至外部目的地址处。
矩阵搬运指令(MMOVE),根据该指令,装置将存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址的设定长度的矩阵数据存至存储器(优选的高速暂存存储器或者标量寄存器堆)的另一指定地址处。
上述指令中的设定长度可以由用户自行设定,在一个可选的实施方案中,用户可以将该设置长度设置为一个值,当然在实际应用中,用户也可以将该设置长度设置为多个值。本申请具体实施方式并不限定该设定长度的具体值以及个数。为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
参阅图1-8,图1-8为本申请具体实施方式提供的另一种计算装置,如图所示的实施例中的具体实施方案、细化方案或技术效果可以参见如图1-3或图1-6所示实施例中的描述,这里不再赘述。图1-8所示,计算装置50包括:存储器501、标量数据存储单元502(优选的为标量寄存器单元)、矩阵计算单元503和控制单元504;
存储器501,用于存储矩阵;
标量数据存储单元502,用于存储标量数据,所述标量数据至少包括:所述矩阵在所述存储器内的存储地址;
控制单元504,用于控制所述矩阵计算单元获取第一运算指令,所述第一运算指令包括执行所述指令所需的矩阵读取指示;
运算单元503,用于依据所述矩阵读取指示向所述存储器发送读取命令;依据采用批量读取方式读取所述矩阵读取指示对应的矩阵,对该矩阵执行所述第一运算指令。
可选的,上述矩阵读取指示包括:所述指令所需的矩阵的存储地址或所述指令所需矩阵的标识。
可选的如所述矩阵读取指示为所述指令所需矩阵的标识时,
控制单元504,用于控制所述运算单元依据所述标识从所述寄存器单元出采用单位读取方式读取所述标识对应的存储地址,控制所述运算单元向所述存储器发送读取所述存储地址的读取命令并采用批量读取方式获取所述矩阵。
可选的,运算单元503,具体用于对该矩阵执行第一流水级的计算得到第一结果,将第一结果输入到第二流水级执行第二流水级得到第二结果,将所述第二结果输入到第三流水级执行第三流水级得到第三结果,一级一级向下执行后,将所述第n-1结果输入到第n流水级执行第n流水级的计算得到第n结果,将所述第n结果输入到所述存储器。n可以为大于等于2的整数。
可选的,所述计算装置还包括:
缓存单元505,用于缓存待执行的运算指令;
所述控制单元504,用于将待执行的运算指令缓存于所述缓存单元504内。
可选的,控制单元504,用于确定所述第一运算指令与所述第一运算指令之前的第二运算指令是否存在关联关系,如所述第一运算指令与所述第二运算指令存在关联关系,则将所述第一运算指令缓存与所述缓存单元内,在所述第二运算指令执行完毕后,从所述缓存单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第二运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需矩阵的第一存储地址区间,依据所述第二运算指令提取所述第二运算指令中所需矩阵的第二存储地址区间,如所述第一存储地址区间与所述第二存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第二运算指令具有关联关系,如所述第一存储地址区间与所述第二存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第二运算指令不具有关联关系。
可选的,上述控制单元503,可以用于从指令缓存单元获取运算指令,并对该运算指令进行处理后,提供给所述运算单元。其中,控制单元503可以划分为三个模块,分别为:取指模块5031、译码模块5032和指令队列模块5033,
取指模5031,用于从指令缓存单元中获取运算指令;
译码模块5032,用于对获取的运算指令进行译码;
指令队列5033,用于对译码后的运算指令进行顺序存储,考虑到不同指令在包含的寄存器上有可能存在依赖关系,用于缓存译码后的指令,当依赖关系被满足之后发射指令。
参阅图1-9,图1-9是本申请实施例提供的计算装置执行矩阵乘向量指令的流程图,如图1-9所示,该计算装置的硬件结构参阅图1-8所示的结构,如图1-8所示的存储器以高速暂存存储器为例,执行矩阵乘向量指令的过程包括:
步骤S601,计算装置控制取指模块取出矩阵乘向量指令,并将该矩阵乘向量指令送往译码模块。
步骤S602,译码模块对该矩阵乘向量指令译码,并将该矩阵乘向量指令送往指令队列。
步骤S603,在指令队列中,该矩阵乘向量指令需要从标量寄存器堆中获取指令中五个操作域所对应的标量寄存器里的数据,该数据包括输入向量地址、输入向量长度、输入矩阵地址、输出向量地址和输出向量长度。
步骤S604,控制单元确定所述矩阵乘向量指令与矩阵乘向量指令之前的运算指令是否存在关联关系,如存在关联关系,将矩阵乘向量指令存入到缓存单元,如不存在关联管理,将该矩阵乘向量指令传输至运算单元。
步骤S605,运算单元根据五个操作域所对应的标量寄存器里的数据从高速暂存器中取出需要的矩阵和向量数据,然后在运算单元中完成乘法运算。
步骤S606,运算单元运算完成后,将结果写入存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址,重排序缓存中的该矩阵乘向量指令被提交。
上述图1-9中的矩阵计算指令以矩阵乘向量指令为例,在实际应用中,如图1-9所示实施例中的矩阵乘向量指令可以用向量乘矩阵指令、矩阵乘标量指令、张量运算指令、矩阵加法指令、矩阵减法指令、矩阵检索指令、矩阵加载指令、矩阵存储指令或矩阵搬运指令替换,这里不一一赘述。
现有异构平台,处理器的片上能够存储的数据十分有限,需要将所有的数据划分成为大小可以存储在片上的数据块,通过片外大存储介质和片内小存储介质上的数据交互将所需数据块读入或者写出。
为了实现上述目的,图2-1示出了本申请提供一种片上数据划分读写***100,如图2-1所示的片上数据划分读写***可以应用到如图1-3所示的装置内,如图1-3所示的计算装置的存储器如为片外存储***,则如图1-3所示的计算中可以包括如图2-1所示的片上数据划分读写***。该***包括:
数据划分模块10,用于根据数据划分策略将片内存储数据划分在不同区域,分别存储在片内存储器和片外存储器;
预先操作模块20,用于在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接模块30,用于根据数据拼接策略将片内存储数据和片外输入数据拼接得到所述原始数据表示。
对于异构平台来说,处理器的片上能够存储的数据十分有限,需要将所有的数据划分成为大小可以存储在片上的数据块,通过片外大存储器和片内小存储器上的数据交互将所需数据块读入或者写出。其间,片内数据地址通过片内地址索引按需提供给片上计算单元(如图1-3所示的运算单元),物理框架如图2-6所示;图2-2和图2-3、图2-4所示的实施例划分只为本申请所涉及的典型情况,本申请并不局限于特定的数据划分,极端情况如数据全部被在片上,或者数据全部被划分在片外,也在本申请的实现范围之内。
进一步地,本申请所述片上数据划分读写***100,还包括:
存储模块40,用于存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储模块40采用读写端口分离,数据的读出和写入相互独立;
所述预先处理模块20还包括:
片上处理子模块21,用于运算处理所述片内存储数据;
片外处理子模块22,用于运算处理外部输入数据处理,所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
进一步地,存储模块40还包括:
地址索引接口41,用于根据片内地址索引来索引所述片内存储数据;
数据读出接口42,用于已索引到所述片内存储数据的输出出口;
数据写入接口43,用于将要存储的数据根据写入地址写入相应存储位置。
所述片上数据划分读写***100,优选的是数据划分模块10还包括:
地址划分子模块11,用于地址空间划分成为片外数据空间和片内数据空间;
数据替换子模块12,用于根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;作为典型,如图2-3所示即为一个定点数实施例的数据划分,这种划分将定点数据换分成为整数部分和小数部分,图2-4所示一个浮点数实施例的数据划分。这种划分将浮点数划分成为指数部分和小数部分。图2-3和图2-4所示的实施例划分只为本申请所涉及的典型情况,本申请并不局限于特定的数据划分,极端情况,如数据全部被在片上,或者数据全部被划分在片外,片上的缓存结构包括对输入数据的缓存,也在本申请的设计范围之内,地址划分子模块11将索引的地址空间划分对应到片外数据空间和片内数据空间,有需要的时候通过数据替换子模块12进行交换,将需要加速数据处理的转移到片内。数据划分模块10基于芯片中的一个或多个片上计算单元实现,所述片上计算单元发起读写请求并处理拼接得到的原始数据。
所述数据拼接模块30还包括:
索引拼接子模块31,用于片内片外数据传输的形式从原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接模块30读写通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI(Peripheral Component Interconnect,外部控制器接口)、PCIE(总线和接口标准,Peripheral Component Interface Express)、HT互联技术(HyperTransport,超传输,是一种全新的具有可升级性的新型、高速、高性能的端到端集成电路互联总线技术),所述片内数据通路包括FAT-TREE、H-TREE互联技术(hierarchy tree,层次树),片内片外数据连接方式包括多芯片互联结构;图2-1所示的片内片外数据连接并不局限于PCIE总线连接,也包涵多芯片互联结构如片上网络。图2-1所示的片上计算单元与片内存储器的数据通路不局限于H-TREE,或者FAT-TREE等互联技术,通过片内片外数据通路可以在片外寻址,从而所述片上数据划分读写***100可以对准确无误地将各种需要拼接的数据还原成原始数据,可以有效的支持不同的数据划分策略,从而减少片内片外数据交换。
所述片内存储器或所述片外存储器中的所述数据被一次或者多次读写,所述数据被读至一个或者多个片上运算单元;所述片内存储器或所述片外存储器被一次或者多从外部进行读写,所述片内存储器被一次或者多次从内部读写。
图2-5是本申请所述片上数据划分读写方法的一个具体实施例的流程图,其可通过本申请所述片上数据划分读写***100实现,如图2-8,所述片上数据划分读写方法包括:
步骤S701,数据划分步骤,根据数据划分策略将片上数据存储在不同区域,分别存储在片内存储器和片外存储器;
步骤S702,预先操作步骤,在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
步骤S703,数据拼接步骤,根据数据拼接策略将所述片内存储数据和片外输入数据拼接得到原始数据表示。
分别通过数据划分模块10、预先操作模块20和数据拼接模块30实现,将原始数据在片内进行无损恢复。
其中优选的,本申请所述片上数据划分读写方法需要实现对于存储的管理,实现拼接过程需要存储模块40的支持,所述数据划分读写方法还包括:
数据存储步骤,存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;所述存储步骤中读写端口分离,数据的读出和写入相互独立;具体地,所述数据存储步骤还包括:
第一、根据片内地址索引来索引所述片内存储数据;
第二、将已索引到数据的输出出口;
第三、将要存储的数据根据写入地址写入相应存储位置;
读写时分别由地址索引接口41、数据读出接口42、数据写入接口43提供支持,与片内片外数据通路和片内数据通路配合实现模块内外的数据通信,独立的读写接口可以实现同时读写。片上数据根据片内地址索引,该片内地址索引有可能经过预先操作模块30一定的操作(如地址偏移计算),检索片内存储得到片内存储数据,结合外部输入至片内的数据,经过拼接操作,得到最后的完整数据。
在一个具体实施例中,优选的本申请所述片上数据划分读写方法的一个优选实施例的流程图,如图2-9所示,所述片上数据划分读写方法步骤包括:
步骤S801,地址空间划分成为片外数据空间和片内数据空间;
步骤S802,根据数据替换策略在所述片内存储器和片外存储器之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;所述数据划分策略包括定点数划分、浮点数划分;
步骤S803,运算处理所述片内存储数据;
步骤S804,运算处理外部输入数据处理,所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据。
步骤S805,片内片外数据传输的形式从所述原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示。
经过处理过后的片内存储数据和片外输入数据拼接在一起,然后才能交由后续的模块进行原始数据的处理,实现处理器的功能。
进一步地,为便于理解,下面以图2-5~图2-7所示的一个具体实施例的物理设计框架图进行说明。
对于异构平台来说,处理器的片上能够存储的数据十分有限,需要将所有的数据划分成为大小可以存储在片上的数据块,通过片外大存储器(即片外存储器)和片内小存储器(即片内存储器)上的数据交互将所需数据块读入或者写出,在数据块大小上有区分,因而划分并存储在不同区域,根据容量需求不同增设所述片外存储介质。其间,片内数据地址通过片内地址索引按需提供给片上计算单元,如图2-7通过片内地址索引接口41获取索引以及得到索引对应的数据,图2-5所示即为一个实施例的片上数据索引过程,装置根据8-bit地址索引256个存储位置,得到32-bit的数据,并不局限于图示的地址索引位宽和片上数据存储位宽。流程的实现在硬件上还依赖于片内存储器、片外存储器、片内片外数据通路以及片内数据通路之间的相互通信。
如图2-7所示即为一个实施例的数据拼接操作过程,片内存储数据,图示为32bit位宽,经过片上数据处理子模块31处理,图示为32bit位宽。片上数据处理子模块31并不局限于寻址操作,也包括其他运算,如算术计算。片外输入数据,图示为32bit位宽,经过片外数据处理子模块32处理,图示为32bit位宽。处理过后的片内存储数据和片外输入数据拼接在一起,图示为64bit位宽,输送给后续模块处理,如片上计算单元,经过处理的片内存储数据和片外输入数据并不局限于图示的位宽,数据块并不局限于特定的数据位宽,数据处理并不局限于特定的操作,而可能包涵复杂的操作,不仅是简单的拼接,而包涵其他操作处理。
具体地,所述数据拼接步骤通过片内片外数据通路或片内数据通路进行,尤其所述片内片外数据通路包括PCI、PCIE、HT互联技术,实现内部与片外之间的数据流,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构,如片上网络。
所述片内存储器或所述片外存储器中的所述数据可以被一次或者多次读写,所述数据可以被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质可以被一次或者多从外部进行读写,介质可以被一次或者多次从内部读写。
本申请提供一种片上读写装置,包括所述片上数据划分读写***100,所述片上读写装置包括片内存储介质、片外存储介质、片内片外数据通路和片内数据通路,所述片上读写装置优选的是,还包括了静态随机存储器(Static Random Access Memory,SRAM),动态随机存储器(Dynamic Random Access Memory,DRAM),增强动态随机存取存储器(EnhancedDynamic Random Access Memory,eDRAM),寄存器堆(Registerfile,RF)等常见存储介质,也可以是新型的存储器件,如非易失存储器(Non-Volatile Memory,NVM)或者3D存储器件等等。
本申请将数据表示转换到索引,可以高效的进行片上地址空间内的重复寻址,也可以进行片外地址寻址;异构环境下片上重复寻址的装置及其使用策略,不同于直接对数据本身缓存进行加速,硬件支持需要包含片内存储介质,片外存储介质,地址索引器件,片内片外数据通路,片内数据通路。
最后,本申请旨在用于不同的数据划分的策略、装置和方法,根据不同的划分策略,数据被划分成为不同的部分,本申请中的装置支持不同划分策略的装置。
综上所述,本申请的装置及其相关使用方法可以有效的提供数据的复用性和其灵活寻址的需求,有效的降低访存带宽需求,能够适用于不同场景,并不仅仅局限于机器学习类处理器。本申请同时可以通过合理调度数据,缩减片上缓存开销,从而可以提供更加高效的处理器设计支持。
在一些实施例里,公开了一种芯片,其包括了上述神经网络处理器。
在一些实施例里,公开了一种芯片封装结构,其包括了上述芯片。
在一些实施例里,公开了一种板卡,其包括了上述芯片封装结构。
在一些实施例里,公开了一种电子装置,其包括了上述板卡。
电子装置包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备交通工具、家用电器、和/或医疗设备。
所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种计算装置,其特征在于,所述计算装置包括:存储器、寄存器单元、运算单元和控制单元;
所述存储器,用于存储矩阵;
所述寄存器单元,用于存储标量数据,所述标量数据至少包括:所述矩阵在所述存储器内的存储地址;
所述控制单元,用于控制所述运算单元获取第一运算指令,所述第一运算指令包括执行所述指令所需的矩阵读取指示,所述所需的矩阵为至少一个矩阵,所述至少一个矩阵为长度相同的矩阵或长度不相同的矩阵;
所述运算单元,用于依据所述矩阵读取指示向所述存储器发送读取命令;依据采用批量读取方式读取所述矩阵读取指示对应的矩阵,对该矩阵执行所述第一运算指令;
所述存储器包括:
数据划分模块,用于根据数据划分策略将片内存储数据划分在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作模块,用于在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接模块,用于根据数据拼接策略将片内存储数据和片外输入数据拼接得到原始数据表示;
所述控制单元,用于确定所述第一运算指令与所述第一运算指令之前的第二运算指令是否存在关联关系,如所述第一运算指令与所述第二运算指令存在关联关系,则将所述第一运算指令缓存与缓存单元内,在所述第二运算指令执行完毕后,从所述缓存单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第二运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需矩阵的第一存储地址区间,依据所述第二运算指令提取所述第二运算指令中所需矩阵的第二存储地址区间,如所述第一存储地址区间与所述第二存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第二运算指令具有关联关系,如所述第一存储地址区间与所述第二存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第二运算指令不具有关联关系。
2.根据权利要求1所述的计算装置,其特征在于,所述矩阵读取指示包括:所述指令所需的矩阵的存储地址或所述指令所需矩阵的标识;
所述控制单元,用于控制所述运算单元依据所述标识从所述寄存器单元中采用单位读取方式读取所述标识对应的存储地址,控制所述运算单元向所述存储器发送读取所述存储地址的读取命令并采用批量读取方式获取所述矩阵。
3.根据权利要求1-2任意一项所述的计算装置,其特征在于,
所述运算单元,具体用于对该矩阵执行第一流水级的计算得到第一结果,将第一结果输入到第二流水级执行第二流水级得到第二结果,将所述第二结果输入到第三流水级执行第三流水级得到第三结果,将所述第三结果输入到所述存储器进行存储。
4.根据权利要求1-2任意一项所述的计算装置,其特征在于,所述计算装置还包括:
缓存单元,用于缓存待执行的运算指令;
所述控制单元,用于将待执行的运算指令缓存于所述缓存单元内。
5.根据权利要求1-2任意一项所述的计算装置,其特征在于,
所述矩阵为m*n矩阵、1*n矩阵或m*1矩阵,其中m、n为大于等于2的整数;
所述存储介质为高速暂存存储器。
6.根据权利要求1所述的计算装置,其特征在于,所述计算装置还包括:
存储模块,用于存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储模块采用读写端口分离,数据的读出和写入相互独立;
所述预先操作模块还包括:
片上处理子模块,用于运算处理所述片内存储数据;
片外处理子模块,用于运算处理外部输入数据处理;
所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据;
所述存储模块还包括:
地址索引接口, 用于根据片内地址索引来索引所述片内存储数据;
数据读出接口,用于已索引到的所述片内存储数据的输出出口;
数据写入接口,用于将要存储的数据根据写入地址写入相应存储位置。
7.根据权利要求1所述计算装置,其特征在于,所述数据划分模块还包括:
地址划分子模块,用于地址空间划分成为片外数据空间和片内数据空间;
数据替换子模块,用于根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;所述数据划分模块基于芯片中的一个或多个片上计算单元实现,所述片上计算单元发起读写请求并处理拼接得到的原始数据;
所述数据拼接模块还包括:
索引拼接子模块,用于片内片外数据传输的形式从原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接模块读写通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI、PCIE、HT互联技术,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构;
所述片内存储介质或所述片外存储介质中的数据被一次或者多次读写,所述数据被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质被一次或者多从外部进行读写,所述片内存储介质被一次或者多次从内部读写。
8.一种计算方法,其特征在于,所述方法应用于计算装置,所述计算装置包括:存储器、寄存器单元、运算单元和控制单元;所述存储器包括:数据划分模块、预先操作模块、数据拼接模块,所述方法包括:
所述存储器存储矩阵;
所述寄存器单元存储标量数据,所述标量数据至少包括:所述矩阵在所述存储器内的存储地址;
所述控制单元控制所述运算单元获取第一运算指令,所述第一运算指令包括执行所述指令所需的矩阵读取指示,所述所需的矩阵为至少一个矩阵,所述至少一个矩阵为长度相同的矩阵或长度不相同的矩阵;
所述运算单元依据所述矩阵读取指示向所述存储器发送读取命令;依据采用批量读取方式读取所述矩阵读取指示对应的矩阵,对该矩阵执行所述第一运算指令;
数据划分模块根据数据划分策略将片内存储数据划分在不同区域,分别存储在片内存储介质和片外存储介质;
预先操作模块在进行数据拼接时预先对片内存储数据的片内地址索引进行操作处理;
数据拼接模块根据数据拼接策略将片内存储数据和片外输入数据拼接得到原始数据表示;所述方法包括:
所述控制单元于确定所述第一运算指令与所述第一运算指令之前的第二运算指令是否存在关联关系,如所述第一运算指令与所述第二运算指令存在关联关系,则将所述第一运算指令缓存与缓存单元内,在所述第二运算指令执行完毕后,从所述缓存单元提取所述第一运算指令传输至所述运算单元;
所述确定该第一运算指令与第一运算指令之前的第二运算指令是否存在关联关系包括:
依据所述第一运算指令提取所述第一运算指令中所需矩阵的第一存储地址区间,依据所述第二运算指令提取所述第二运算指令中所需矩阵的第二存储地址区间,如所述第一存储地址区间与所述第二存储地址区间具有重叠的区域,则确定所述第一运算指令与所述第二运算指令具有关联关系,如所述第一存储地址区间与所述第二存储地址区间不具有重叠的区域,则确定所述第一运算指令与所述第二运算指令不具有关联关系。
9.根据权利要求8所述的方法,其特征在于,所述计算装置还包括:存储模块;所述预先操作模块还包括:片上处理子模块、片外处理子模块;所述存储模块包括:地址索引接口、数据读出接口和数据写入接口;所述方法包括:
存储模块存储搬运所述片内存储介质的所述片内存储数据和来自所述片外存储介质的所述片外输入数据;
所述存储模块采用读写端口分离,数据的读出和写入相互独立;
片上处理子模块运算处理所述片内存储数据;
片外处理子模块运算处理外部输入数据处理;
所述外部输入数据包括所述片外输入数据、所述读写端口直接读入的数据;
地址索引接口根据片内地址索引来索引所述片内存储数据;
数据读出接口为已索引到的所述片内存储数据的输出出口;
数据写入接口将要存储的数据根据写入地址写入相应存储位置。
10.根据权利要求8所述的方法,其特征在于,所述数据划分模块还包括:地址划分子模块、数据替换子模块;所述数据拼接模块还包括:索引拼接子模块;所述方法包括:
地址划分子模块将地址空间划分成为片外数据空间和片内数据空间;
数据替换子模块根据数据替换策略在所述片内存储介质和片外存储介质之间进行数据替换;所述数据替换策略包括顺序替换、逆序替换以及随机替换;
所述数据划分策略包括定点数划分、浮点数划分;所述数据划分模块基于芯片中的一个或多个片上计算单元实现,所述片上计算单元发起读写请求并处理拼接得到的原始数据;
索引拼接子模块将片内片外数据传输的形式从原始数据表示转为全部或者部分的数据索引,拼接全部或者部分的片上的所述数据索引的结果获得所述原始数据表示;
所述数据拼接模块读写通过片内片外数据通路或片内数据通路进行,所述片内片外数据通路包括PCI、PCIE、HT互联技术,所述片内数据通路包括FAT-TREE、H-TREE互联技术,片内片外数据连接方式包括多芯片互联结构;
所述片内存储介质或所述片外存储介质中的数据被一次或者多次读写,所述数据被读至一个或者多个片上运算单元;所述片内存储介质或所述片外存储介质被一次或者多从外部进行读写,所述片内存储介质被一次或者多次从内部读写。
CN201911058620.XA 2017-07-20 2018-07-13 一种计算装置及计算方法 Active CN110688157B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710595951.1A CN107992329B (zh) 2017-07-20 2017-07-20 一种计算方法及相关产品
CN2017105959511 2017-07-20
CN201880004680.0A CN110036369B (zh) 2017-07-20 2018-07-13 一种计算方法及相关产品

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201880004680.0A Division CN110036369B (zh) 2017-07-20 2018-07-13 一种计算方法及相关产品

Publications (2)

Publication Number Publication Date
CN110688157A CN110688157A (zh) 2020-01-14
CN110688157B true CN110688157B (zh) 2022-02-22

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 (17)

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 计算装置以及计算方法

Country Status (4)

Country Link
US (2) US11481215B2 (zh)
EP (1) EP3686734A4 (zh)
CN (18) CN107729990B (zh)
WO (1) WO2019015541A1 (zh)

Families Citing this family (187)

* Cited by examiner, † Cited by third party
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 阿里巴巴集团控股有限公司 数据处理设备及方法
CN111523652B (zh) * 2019-02-01 2023-05-02 阿里巴巴集团控股有限公司 处理器及其数据处理方法、摄像装置
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的神经网络数值模拟方法
CN110390383B (zh) * 2019-06-25 2021-04-06 东南大学 一种基于幂指数量化的深度神经网络硬件加速器
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101611380A (zh) * 2007-01-30 2009-12-23 尼玛实验室公司 推测性吞吐量计算
CN102144225A (zh) * 2008-05-29 2011-08-03 阿克西斯半导体有限公司 实时数据处理方法和装置
CN102880341A (zh) * 2012-08-29 2013-01-16 北京集创北方科技有限公司 触摸屏数据处理***、方法及专用alu
CN105843775A (zh) * 2016-04-06 2016-08-10 中国科学院计算技术研究所 片上数据划分读写方法、***及其装置

Family Cites Families (91)

* Cited by examiner, † Cited by third party
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 上海芯盛电子科技有限公司 图像智能模式识别搜索方法
CN101021832A (zh) * 2007-03-19 2007-08-22 中国人民解放军国防科学技术大学 支持局部寄存和条件执行的64位浮点整数融合运算群
CN101399977A (zh) * 2007-09-29 2009-04-01 智多微电子(上海)有限公司 解码装置中控制片内存储器的数据并行读写的方法及装置
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 无锡江南计算技术研究所 运算核心及其指令管理方法
CN103699360B (zh) * 2012-09-27 2016-09-21 北京中科晶上科技有限公司 一种向量处理器及其进行向量数据存取、交互的方法
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
CN106484362B (zh) * 2015-10-08 2020-06-12 上海兆芯集成电路有限公司 利用使用者指定二维定点算术运算的装置
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 四川长虹电器股份有限公司 一种新型网络拓扑结构的卷积神经网络的构造方法
WO2017105517A1 (en) * 2015-12-18 2017-06-22 Hewlett Packard Enterprise Development Lp Memristor crossbar arrays to activate processors
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
CN105844330B (zh) * 2016-03-22 2019-06-28 华为技术有限公司 神经网络处理器的数据处理方法及神经网络处理器
CN105912476A (zh) * 2016-04-06 2016-08-31 中国科学院计算技术研究所 片上重复寻址的方法及装置
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 广州供电局有限公司 一种基于最近邻聚类的神经网络数据挖掘方法
CN106066783A (zh) * 2016-06-02 2016-11-02 华为技术有限公司 基于幂次权重量化的神经网络前向运算硬件结构
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 郑州云海信息技术有限公司 一种图像识别协处理器、图像识别***及方法
CN106845631B (zh) * 2016-12-26 2020-05-29 上海寒武纪信息科技有限公司 一种流执行方法及装置
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101611380A (zh) * 2007-01-30 2009-12-23 尼玛实验室公司 推测性吞吐量计算
CN102144225A (zh) * 2008-05-29 2011-08-03 阿克西斯半导体有限公司 实时数据处理方法和装置
CN102880341A (zh) * 2012-08-29 2013-01-16 北京集创北方科技有限公司 触摸屏数据处理***、方法及专用alu
CN105843775A (zh) * 2016-04-06 2016-08-10 中国科学院计算技术研究所 片上数据划分读写方法、***及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于GPU的多序列关联性分析方法研究;张琼瑶;《中国优秀硕士学位论文全文数据库·信息科技辑》;20140615;全文 *

Also Published As

Publication number Publication date
CN111176727B (zh) 2022-05-31
CN111221578B (zh) 2022-07-15
EP3686734A4 (en) 2021-08-18
CN107832082B (zh) 2020-08-04
CN107729990A (zh) 2018-02-23
CN107729989A (zh) 2018-02-23
CN110036369B (zh) 2023-11-24
CN110688158B (zh) 2022-02-22
US11983534B2 (en) 2024-05-14
CN107608715A (zh) 2018-01-19
CN107608715B (zh) 2020-07-03
CN110597558A (zh) 2019-12-20
CN111176727A (zh) 2020-05-19
CN111221578A (zh) 2020-06-02
CN107807819B (zh) 2021-06-25
CN110597558B (zh) 2021-11-12
CN109284822B (zh) 2021-09-21
US20230024840A1 (en) 2023-01-26
CN107992329A (zh) 2018-05-04
US11481215B2 (en) 2022-10-25
CN110825434B (zh) 2021-12-21
US20210224069A1 (en) 2021-07-22
CN110597559B (zh) 2021-10-19
CN110597559A (zh) 2019-12-20
CN110825434A (zh) 2020-02-21
CN107807819A (zh) 2018-03-16
CN109284130A (zh) 2019-01-29
CN107844322A (zh) 2018-03-27
CN107832082A (zh) 2018-03-23
CN110688159B (zh) 2021-12-14
CN109284130B (zh) 2021-03-23
CN110688157A (zh) 2020-01-14
WO2019015541A1 (zh) 2019-01-24
EP3686734A1 (en) 2020-07-29
CN110688159A (zh) 2020-01-14
CN107729990B (zh) 2021-06-08
CN107844322B (zh) 2020-08-04
CN110036369A (zh) 2019-07-19
CN107729989B (zh) 2020-12-29
CN107992329B (zh) 2021-05-11
CN109284822A (zh) 2019-01-29
CN110688158A (zh) 2020-01-14

Similar Documents

Publication Publication Date Title
CN110688157B (zh) 一种计算装置及计算方法
CN111310910B (zh) 一种计算装置及方法
US11720353B2 (en) Processing apparatus and processing method
EP3602278B1 (en) Systems, methods, and apparatuses for tile matrix multiplication and accumulation
EP3629153A2 (en) Systems and methods for performing matrix compress and decompress instructions
EP3391195B1 (en) Instructions and logic for lane-based strided store operations
US20200201932A1 (en) Apparatuses, methods, and systems for instructions of a matrix operations accelerator
US20200210516A1 (en) Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions
US20140129799A1 (en) Address generation in an active memory device
CN107315718B (zh) 一种用于执行向量内积运算的装置和方法
CN107315717B (zh) 一种用于执行向量四则运算的装置和方法
CN108108190B (zh) 一种计算方法及相关产品
EP3623940A2 (en) Systems and methods for performing horizontal tile operations
US20170177351A1 (en) Instructions and Logic for Even and Odd Vector Get Operations
CN112199119B (zh) 向量运算装置
US20230315450A1 (en) Apparatuses, methods, and systems for 8-bit floating-point matrix dot product instructions
CN107957977B (zh) 一种计算方法及相关产品
US9569211B2 (en) Predication in a vector processor
US9535694B2 (en) Vector processing in an active memory device
EP3757822B1 (en) Apparatuses, methods, and systems for enhanced matrix multiplier architecture
CN111353125B (zh) 运算方法、装置、计算机设备和存储介质
CN114722259A (zh) 数据处理***、方法和装置
KR20230062369A (ko) 모듈러 덧셈 명령어
CN112328208A (zh) 运算装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant