CN108885714A - 计算单元、计算系统以及计算单元的控制方法 - Google Patents

计算单元、计算系统以及计算单元的控制方法 Download PDF

Info

Publication number
CN108885714A
CN108885714A CN201780017293.6A CN201780017293A CN108885714A CN 108885714 A CN108885714 A CN 108885714A CN 201780017293 A CN201780017293 A CN 201780017293A CN 108885714 A CN108885714 A CN 108885714A
Authority
CN
China
Prior art keywords
data
channel
computing unit
computing
interface
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.)
Pending
Application number
CN201780017293.6A
Other languages
English (en)
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.)
SZ DJI Technology Co Ltd
Shenzhen Dajiang Innovations Technology Co Ltd
Original Assignee
Shenzhen Dajiang Innovations 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 Shenzhen Dajiang Innovations Technology Co Ltd filed Critical Shenzhen Dajiang Innovations Technology Co Ltd
Publication of CN108885714A publication Critical patent/CN108885714A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

一种计算单元(20)、计算系统以及计算单元的控制方法。该计算单元(20)包括数据接口(201);数据存储模块(202),被配置成存储数据接口(201)接收到的目标数据;第一配置接口(203),被配置成接收通道信息,通道信息用于指示数据接口(201)包含的通道的数量;运算控制模块(204),被配置成执行以下操作:根据通道信息,确定数据接口(201)包含M个通道;从数据存储模块(202)中获取目标数据,目标数据包含M个通道中的每个通道对应的子数据;根据M个通道中的每个通道对应的子数据,执行一次数据运算。上述技术方案不像传统计算单元那样单一地执行单通道运算,而是可以基于通道信息的指示执行多通道运算,从而可以提高数据计算方式的灵活性。

Description

计算单元、计算系统以及计算单元的控制方法
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及数据处理领域,并且更为具体地,涉及一种计算单元、计算系统以及计算单元的控制方法。
背景技术
传统计算系统(如神经网络系统)一般包括数据总线以及与数据总线连接的多个计算单元。
数据总线可用于接收外部存储器输入的待计算数据。计算单元从数据总线上接收各自对应的目标数据,并基于接收到的目标数据执行预设的数据运算。以计算系统为神经网络系统为例,计算单元主要用于执行输入特征值及其对应的权重的乘累加运算。
传统计算系统中的计算单元仅支持单通道运算,导致数据计算方式不够灵活。
发明内容
本申请提供一种计算单元、计算系统和计算单元的控制方法,可以提高数据计算方式的灵活性。
第一方面,提供一种计算单元,包括:数据接口,被配置成与数据总线相连;数据存储模块,被配置成存储所述数据接口接收到的目标数据;第一配置接口,被配置成接收通道信息,所述通道信息用于指示所述数据接口包含的通道的数量;运算控制模块,被配置成执行以下操作:根据所述通道信息,确定所述数据接口包含M个通道,其中M为不小于2的正整数;从所述数据存储模块中获取所述目标数据,所述目标数据包含所述M个通道中的每个通道对应的子数据;根据所述M个通道中的每个通道对应的子数据,执行一次数据运算。
第二方面,提供一种计算系统,包括:多个计算单元,所述多个计算单元均为如第一方面所述的计算单元;数据总线,被配置成向所述多个计算单元传输数据。
第三方面,提供一种计算单元的控制方法,所述计算单元包括:数据接口,被配置成与数据总线相连;数据存储模块,被配置成存储所述数据接口接收到的目标数据;第一配置接口,被配置成接收通道信息,所述通道信息用于指示所述数据接口包含的通道的数量;所述控制方法包括:根据所述通道信息,确定所述数据接口包含M个通道,其中M为不小于2的正整数;从所述数据存储模块中获取所述目标数据,所述目标数据包含所述M个通道中的每个通道对应的子数据;根据所述M个通道中的每个通道对应的子数据,执行一次数据运算。
通过在计算单元中添加可用于接收通道信息的第一配置接口,并更改计算单元中的运算控制模逻辑,使其可以根据接收到的通道信息控制各个通道对应的子数据执行一次数据运算。因此,该计算单元可以根据通道信息的指示执行多通道数据运算,不再像传统计算单元那样单一地执行单通道运算,从而使其可以适用于对数据精度或数据准确度要求不同的场合,或者可以适用于对硬件资源要求不同的计算系统,提高了数据计算方式的灵活性。
附图说明
图1是神经网络系统的结构示例图。
图2是根据一个本发明实施例的计算单元的示意性结构图。
图3是根据本发明一个实施例的计算系统的示意性结构图。
图4是根据本发明一个实施例的计算单元的控制方法的示意性流程图。
图5是根据另一本发明实施例的计算单元的示意性结构图。
图6是根据本发明另一实施例的计算系统的示意性结构图。
图7是根据本发明另一实施例的计算单元的控制方法的示意性流程图。
图8是根据本发明实施例的数据总线和ID总线的数据传输方式示例图。
图9是根据又一本发明实施例的计算单元的示意性结构图。
图10是根据又一本发明实施例的计算单元的示意性结构图。
具体实施方式
本申请提供的计算单元可应用于各种类型的计算系统。作为一个示例,本申请提供的计算单元可应用于需要兼容多种计算精度的计算系统,如神经网络系统。本申请提及的神经网络系统例如可以是卷积神经网络(convolution neural networks,CNN),也可以是循环神经网络(recurrent neural networks,RNN)。
计算单元能够执行的数据运算的类型与应用场景有关,本申请对此并不限定。仍以计算单元应用于执行神经网络系统中的卷积层或全连接层对应的计算为例,则计算单元可用于执行神经网络计算中的乘累加(multiply and accumulate,MAC)计算。
为了便于理解,下面结合图1,以神经网络系统为例,对计算单元和计算系统的位置和操作进行举例说明。
图1是神经网络系统的结构示例图。如图1所示,神经网络系统10可以包括计算系统11和外部存储器(external memory)12。
计算系统11可以为片上系统。片上系统的存储资源通常较小,一般需要从外部存储器12获取待计算数据。对于神经网络计算而言,常见的待计算数据包括输入特征图以及滤波器的权重。
计算系统11可以包括配置链(config chain)13,神经网络控制(neural networkscontrol,NN Ctrl)模块14,全局缓存(global buffer)15以及计算阵列(calc array)16。
配置链13可用于接收中央处理器配置的计算指令。该计算指令例如可用于指示计算阵列16中的哪些计算单元参与当前的数据运算。
神经网络控制模块14可用于对待计算数据的计算过程进行控制。例如,神经网络控制模块14可用于控制全局缓存15与计算阵列16之间的通信和数据交换过程。
全局缓存15可用于缓存以下数据中的一种或多种:从外部存储器12获取的待计算数据,计算阵列16输出的中间结果,以及计算阵列16输出的计算结果等。
计算阵列16可以包括数据总线(可以称为DATA XBUS,图1中未示出)和多个计算单元(Calc U)。计算单元可以通过数据总线相连。计算单元可以通过数据总线获取待计算数据,根据待计算数据执行相应的数据运算,并通过数据总线传输计算单元输出的计算结果或中间结果。
假设数据总线以及计算阵列中的计算单元的数据接口的位宽均为W,传统的计算单元仅支持位宽小于或等于W的单通道计算,导致数据计算方式不够灵活。进一步地,当待计算数据的位宽较小时(如小于或等于W/2),计算单元的数据接口每次接收到的数据信号中的一半以上的数据信号为处于无效状态的信号,这样会造成数据传输资源的浪费。
为了解决上述问题,下面结合图2,详细描述根据本发明实施例的计算单元20。该计算单元20可应用于如图1所示的神经网络系统中,例如可用于执行图1所示的计算单元对应的数据运算。
如图2所示,计算单元20可以包括数据接口201,数据存储模块202,第一配置接口203以及运算控制模块204。
数据接口201可以被配置成与计算单元20所处的计算系统中的数据总线相连。以图3为例,计算单元20可以位于如图3所示的计算系统30中。计算系统30可以包括多个计算单元20,该多个计算单元20可以通过各自的数据接口(图3中未示出)与计算系统30中的数据总线31相连。
继续参见图2,数据存储模块202可以被配置成存储数据接口201接收到的目标数据。该数据存储模块202例如可以是寄存器,在该实施例中,数据存储模块202也可称为数据寄存器(或称DATA REG)。
第一配置接口203可以被配置成接收通道信息。该通道信息可用于指示数据接口201包含的通道(或称数据传输通道)的数量。假设数据接口201中设置有N条数据线,则该数据接口201可以一次性传输N比特的数据。N比特数据可以属于同一数据块,在这种情况下,计算单元20中的数据接口201为单通道数据接口,即数据接口201中的N条数据线形成一个数据传输通道;如果该N比特数据包含多个数据块中的数据,则该数据接口201为支持多通道数据传输的数据接口,即该N条数据线形成多个数据传输通道。以数据接口201包含16条数据线为例,如果数据接口201一次性传输的16比特数据属于同一数据块,则该数据接口201为单通道数据接口;如果该16条数据线中的高8位数据线和低8位数据线分别用于传输不同的数据块,则该数据接口201为双通道数据接口。
上述通道信息例如可以由外部的中央处理器根据实际需要配置,并通过消息或配置指令将该通道信息传输至计算单元20所属的计算系统,进而传输至该计算单元20。
运算控制模块204可以被配置成执行如图4所示的流程。图4的流程包括步骤S410-步骤S430。下面对这些步骤进行详细描述。
在步骤S410中,根据通道信息确定数据接口201包含M个通道。
M可以为正整数,例如可以为不小于2的正整数。
步骤S410的实现方式可以有多种。作为一个示例,计算单元20可以将接收到的通道信息存储至内部的存储模块,如寄存器中。运算控制模块204可以通过该存储模块查询通道信息。作为另一示例,运算控制模块204也可以通过第一配置接口203实时获取通道信息。
在步骤S420中,从数据存储模块202中获取目标数据。
目标数据的位宽可以等于数据接口201的位宽。该目标数据可以包含M个通道中的每个通道对应的子数据。以数据接口的位宽=16,且M=2为例,假设数据接口201中的高8位数据线形成一个通道(下称通道1),低8位数据线形成另一个通道(下称通道2),则16比特的目标数据中的高8位数据线传输的8比特数据为通道1对应的子数据,低8位数据线传输的8比特数据为通道2对应的子数据。
目标数据的类型与计算单元20的应用场景有关,本发明实施例对此并不限定。例如,计算单元20可运用于大数据处理领域,则目标数据可以包括从网络中搜集的记录或日志。又如,计算单元20可运用于神经网络计算领域,则目标数据可以包括用于神经网络计算的输入特征值和权重。在某些实施例中,目标数据可以是待计算数据的数据索引。与直接传输待计算数据相比,在数据总线上传输数据索引可能会降低计算系统对数据总线的带宽需求,下文会结合具体的实施例进行详细描述,此处暂不详述。
在步骤S430中,根据M个通道中的每个通道对应的子数据,执行一次数据运算。
通过在计算单元20中添加可用于接收通道信息的第一配置接口203,且更改计算单元20中的运算控制逻辑,使其可以根据接收到的通道信息控制各个通道对应的子数据执行一次数据运算。因此,本发明实施例提供的计算单元20可以根据通道信息的指示执行多通道数据运算,不再像传统计算单元那样单一地执行单通道运算,从而使其可以适用于对数据精度或数据准确度要求不同的场合,或者可以适用于对硬件资源要求不同的计算系统,提高了数据计算方式的灵活性。
例如,当待计算数据的位宽等于数据接口201的位宽W时,可以通过通道信息指示计算单元20执行单通道运算;当待计算数据的位宽小于或等于W/2时,可以通过通道信息指示计算单元20可以执行双通道运算。当然,在一些实施例中,还可根据实际需要指示计算单元20执行4通道、8通道、甚至更多通道的数据运算。数据接口201中的通道数量不同,每个通道对应的子数据的位宽就相应不同,由于运算控制模块204会基于每个通道对应的子数据执行一次数据运算,因此,每个通道的子数据的位宽不同意味着后续数据运算所基于的数据的精度不同。因此,本发明实施例提供的计算单元20可用于兼容多种精度的数据运算,使得计算单元20的应用场合更加灵活,而且,支持多种精度的数据运算可以一定程度上避免单通道运算所带来的数据传输资源浪费的问题。
步骤S420的实现方式可以有多种。作为一个示例,计算单元20可以在外部控制单元的控制下从数据总线上接收目标数据。例如,当数据总线上传输的数据包含需要由计算单元20处理的目标数据时,外部控制单元可以控制计算单元20进入工作状态,从数据总线接收目标数据。作为另一个示例,计算单元20所属的计算系统可以包含ID总线(或称IDXBUS),计算单元20可以根据ID总线上传输的数据ID从数据总线上接收目标数据。下面结合图5-6,对基于ID总线的目标数据获取方式进行详细描述。
如图5所示,计算单元20还可以包括第二配置接口205(也可称为ID配置接口)和ID存储模块206。
如图6所示,计算系统30还可包括可以包括ID总线32以及ID配置总线33。第二配置接口205可以被配置成与ID配置总线32相连,以接收目标数据的数据ID。计算单元20的第二配置接口205可以与ID配置总线33相连。该ID配置总线33也可称为ID CONFIG BUS。ID配置总线33可以为计算系统30中的每个计算单元20配置待计算的目标数据的数据ID。计算系统30中的每个计算单元20对应的目标数据的数据ID例如可以由外部的中央处理器根据实际的应用需求灵活配置,并通过该ID配置总线33下发至各个计算单元20。
ID存储模块206可被配置成存储目标数据的数据ID,即从第二配置接口205接收到的数据ID。ID存储模块206例如可以通过寄存器实现,在这种实现方式中,ID存储模块206也可称为ID寄存器(或称ID REG)。
在图5和图6所示的实现方式的基础上,计算单元20中的运算控制模块204还可被配置成执行如图7所示的步骤S710-S720。
在步骤S710中,查询ID存储模块206,以获取目标数据的数据ID。
在步骤S720中,当查询到目标数据的数据ID时,控制数据接口201接收目标数据。
以数据接口201的位宽等于16为例,假设待计算数据的位宽为8,计算单元20外部的中央处理器可以通过第一配置接口203向计算单元20发送通道信息,将数据接口201包含的通道数量配置为2,使计算单元20执行双通道数据运算。进一步地,计算单元20外部的中央处理器可以通过第二配置接口205配置计算单元20需要计算的目标数据的数据ID,使计算单元20将目标数据的数据ID存储至ID存储模块206中。由于计算单元20执行的是双通道运算,因此,目标数据的数据ID包含两个数据ID。图8为图6所示的数据总线31上传输的数据以及ID总线32上传输的数据ID的示例,从图8可以看出,在数据总线31上,每16比特的数据被划分为两个8比特的数据;相应地,在ID总线32上,每16比特的数据ID被划分为两个8比特的数据ID。数据总线31上的数据和ID总线32上的数据ID可以同步传输,计算单元20中的运算控制模块204可以根据ID总线32上传输的数据ID,从数据总线31上接收与ID存储模块206中存储的数据ID相匹配的目标数据。
运算控制模块204的具体结构及其执行的数据运算的类型与计算单元20的应用场合有关,本发明实施例对此并不限定。
以M个通道包含第一通道和第二通道为例,如图9所示,运算控制模块204可以包括第一运算模块2041和第二运算模块2042。相应地,上文描述的步骤S430可包括根据第一通道对应的子数据,通过第一运算模块2041执行一次数据运算;根据第二通道对应的子数据,通过第二运算模块2042执行一次数据运算。
以神经网络系统为例,计算单元20接收到的目标数据一般称为输入特征(inputfeature,IF)值和滤波器的权重,神经网络系统需要基于输入特征值和权重进行乘累加运算。下面结合图10,以计算单元20应用于神经网络系统为例,对运算控制模块204的结构及数据运算过程进行举例说明。
如图10所示,计算单元20可以包括输入特征值的第一寄存器1002,输入特征值的第二寄存器1004,权重寄存器1006,乘法器1008,乘积结果寄存器1010,累加器1012,累加结果寄存器1014,求和器1016以及求和结果寄存器1018。第一寄存器1002、第二寄存器1004和权重寄存器1006可对应于上文描述的数据存储模块202,即上文中的数据存储模块可以具体实现为第一寄存器1002、第二寄存器1004和权重寄存器1006。位于图10左侧的乘法器1008、累加器1012以及求和器1016可对应于上文描述的第一运算模块2041,即上文描述的第一运算模块2041可具体实现为位于图10左侧的第一寄存器1002、第二寄存器1004和权重寄存器1006。位于图10右侧的乘法器1008、累加器1012以及求和器1016可对应于上文描述的第二运算模块2042,即上文描述的第二运算模块2042可具体实现为位于图10右侧的乘法器1008、累加器1012以及求和器1016。下面对图10中的各个器件的功能进行详细描述。
输入特征值的第一寄存器1002也可以称为IF DATA REG。该第一寄存器1002相当于缓存,可用于缓存从计算单元20的数据接口接收到的输入特征值。
输入特征值的第二寄存器1004也可称为IF Register。该第二寄存器1004可用于存储待计算的当前数据。该当前数据可以从第一寄存器1002缓存的数据中选取。例如,可以按照先入先出的方式从第一寄存器1002缓存的数据中选取存入第一寄存器1002时间最早的数据作为当前数据。
权重寄存器1006也可称为WEIGHT DATA REG。该权重寄存器1006可用于缓存用于神经网络计算的滤波器的权重。以卷积运算为例,该滤波器的权重可表示卷积运算的卷积核。
乘法器1008例如可以是乘法电路(multiplication circuitry)。该乘法器1008可用于计算输入特征值和滤波器的权重的乘积。
乘积结果寄存器1010也可称为Product Register。乘积结果寄存器1010可用于存储乘法器1008的计算结果,即输入特征值和滤波器的权重的乘积。
累加器1012例如可以是累加电路(accumulator circuitry)。该累加器1012可用于计算输入特征值和滤波器的权重乘积的累加值。
累加结果寄存器1014也可称为Accumulate Register。该累加结果寄存器1014可用于存储累加器1012的计算结果,即输入特征值和滤波器的权重乘积的累加值。
求和器1016例如可以是求和电路(summation circuitry)。该求和器1016可用于对输入特征值和滤波器的权重乘积累加值与前一级计算单元的输出的计算结果或中间计算结果(如图10中的虚线所示)求和。
求和结果寄存器1018也可称为Sum Register。该求和结果寄存器1018可用于存储求和器1016的计算结果,即输入特征值和滤波器的权重乘积累加值与前一级计算单元的输出的计算结果或中间计算结果之和。
本发明实施例对数据总线上传输的数据的类型不做限定。可选地,在一些实施例中,可以直接在数据总线上传输待计算数据。在该实例中,数据接口的M个通道中的每个通道对应的子数据均为待计算数据,可直接用于后续的数据运算。
在某些情况下,位宽为W的待计算数据的有效数值的数量小于2W。以W=16为例,假设位宽为16的待计算数据的有效数值的数量小于或等于28,为了降低数据计算过程对数据总线带宽的需求,可选地,在一些实施例中,可以采用在数据总线上传输待计算数据的数据索引的方式代替直接在数据总线上传输待计算数据的方式。待计算数据的数据索引的数据量可以小于待计算数据的数据量,因此可以节省数据总线的数据带宽。下面对该实施例进行详细描述。
在数据总线上传输待计算数据的数据索引,因此,步骤S430中描述的M个通道中的每个通道对应的子数据均为待计算数据的数据索引。步骤S430具体可以采用如下方式实现:根据M个通道中的每个通道对应的待计算数据的数据索引,通过预先存储的数据索引与数据的映射信息(例如可以是预先存储的映射表),确定该每个通道对应的待计算数据;对该每个通道对应的待计算数据执行一次数据运算。
本发明实施例采用数据索引的方式存取数据,可以降低带宽需求,增加系统的计算性能。仍以W=16,待计算数据的有效数值的数量小于或等于28为例,因此,可以采用一个8比特的数据索引索引一个16比特的待计算数据。这样一来,数据计算过程对数据带宽的需求减半,空出来的数据带宽可用于传输更多的数据索引,从而整体上增加计算系统的性能。
下面以计算单元20用于神经网络中的全连接(fully connected,FC)层计算为例。对于全连接层的每个节点的计算而言,其输入为前一层所有节点的加权,因此,全连接层对权重的需求较大。因此,在数据总线的带宽一定的情况下,如果直接在数据总线上待计算数据,数据总线的传输能力通常难以满足计算单元20所在的计算阵列对待计算数据的需求,因此,计算阵列中的许多计算单元会处于空闲状态,同一时间实际处于工作状态的计算单元比较少,导致全连接层的计算效率低下。本发明实施例在数据总线上传输数据索引,代替传输待计算数据,这样可以降低全连接层的数据运算对数据总线的带宽的需求,从而可以提高全连接层的计算效率。
本发明实施例还提供了一种如图3或图6所示的计算系统30。计算系统30可应用于需要兼容多精度数据计算的任意计算装置中。作为一个示例,计算系统30可应用于知识产权(intellectual property,IP)核以及IP核之间的协同工作电路。例如,计算系统30可应用于神经网络计算。进一步地,在一些实施例中,计算系统30可被配置成执行神经网络中的卷积层或全连接层对应的计算。
本发明实施例还提供了一种计算单元的控制方法。该计算单元例如可以是上文任一实施例描述的计算单元20。该控制方法可以用计算单元中的运算控制模块执行。该控制方法可以包括如上文中的图4或图7所示的处理流程,为避免重复,此处不再详述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (15)

1.一种计算单元,其特征在于,包括:
数据接口,被配置成与数据总线相连;
数据存储模块,被配置成存储所述数据接口接收到的目标数据;
第一配置接口,被配置成接收通道信息,所述通道信息用于指示所述数据接口包含的通道的数量;
运算控制模块,被配置成执行以下操作:
根据所述通道信息,确定所述数据接口包含M个通道,其中M为不小于2的正整数;
从所述数据存储模块中获取所述目标数据,所述目标数据包含所述M个通道中的每个通道对应的子数据;
根据所述M个通道中的每个通道对应的子数据,执行一次数据运算。
2.如权利要求1所述的计算单元,其特征在于,所述每个通道对应的子数据为所述每个通道对应的待计算数据的数据索引,且所述待计算数据的数据索引的数据量小于所述待计算数据的数据量,
所述根据所述M个通道中的每个通道对应的子数据,执行一次数据运算,包括:
根据所述每个通道对应的待计算数据的数据索引,通过预先存储的数据索引与数据的映射信息,确定所述每个通道对应的待计算数据;
对所述每个通道对应的待计算数据执行一次数据运算。
3.如权利要求1所述的计算单元,其特征在于,所述每个通道对应的子数据为所述每个通道对应的待计算数据。
4.如权利要求1-3中任一项所述的计算单元,其特征在于,所述M个通道包含第一通道和第二通道,所述运算控制模块包括第一运算模块和第二运算模块;
所述根据所述M个通道中的每个通道对应的子数据,执行一次数据运算,包括:
根据所述第一通道对应的子数据,通过所述第一运算模块执行一次数据运算;
根据所述第二通道对应的子数据,通过所述第二运算模块执行一次数据运算。
5.如权利要求1-4中任一项所述的计算单元,其特征在于,所述计算单元还包括:
第二配置接口,被配置成与ID配置总线相连,以接收所述目标数据的数据ID;
ID存储模块,被配置成存储所述目标数据的数据ID;
所述运算控制模块还被配置成执行以下操作:
查询所述ID存储模块,以获取所述目标数据的数据ID;
当查询到所述目标数据的数据ID时,控制所述数据接口接收所述目标数据。
6.如权利要求1-5中任一项所述的计算单元,其特征在于,所述目标数据包括用于神经网络计算的输入特征值和权重,所述运算控制模块用于执行所述输入特征值和所述权重的乘累加运算。
7.一种计算系统,其特征在于,包括:
多个计算单元,所述多个计算单元均为如权利要求1-6中任一项所述的计算单元;
数据总线,被配置成向所述多个计算单元传输数据。
8.如权利要求7所述的计算系统,其特征在于,还包括:
ID配置总线,被配置成接收ID配置信息,所述ID配置信息用于指示所述多个计算单元各自对应的目标数据的数据ID;
ID总线,被配置成传输所述数据总线上的数据对应的数据ID。
9.如权利要求7或8所述的计算系统,其特征在于,所述计算系统应用于神经网络计算,所述计算系统被配置成执行神经网络中的卷积层或全连接层对应的计算。
10.一种计算单元的控制方法,其特征在于,所述计算单元包括:
数据接口,被配置成与数据总线相连;
数据存储模块,被配置成存储所述数据接口接收到的目标数据;
第一配置接口,被配置成接收通道信息,所述通道信息用于指示所述数据接口包含的通道的数量;
所述控制方法包括:
根据所述通道信息,确定所述数据接口包含M个通道,其中M为不小于2的正整数;
从所述数据存储模块中获取所述目标数据,所述目标数据包含所述M个通道中的每个通道对应的子数据;
根据所述M个通道中的每个通道对应的子数据,执行一次数据运算。
11.如权利要求10所述的控制方法,其特征在于,所述每个通道对应的子数据为所述每个通道对应的待计算数据的数据索引,且所述待计算数据的数据索引的数据量小于所述待计算数据的数据量,
所述根据所述M个通道中的每个通道对应的子数据,执行一次数据运算,包括:
根据所述每个通道对应的待计算数据的数据索引,通过预先存储的数据索引与数据的映射信息,确定所述每个通道对应的待计算数据;
对所述每个通道对应的待计算数据执行一次数据运算。
12.如权利要求10所述的控制方法,其特征在于,所述每个通道对应的子数据为所述每个通道对应的待计算数据。
13.如权利要求10-12中任一项所述的控制方法,其特征在于,所述M个通道包含第一通道和第二通道,所述运算控制模块包括第一运算模块和第二运算模块;
所述根据所述M个通道中的每个通道对应的子数据,执行一次数据运算,包括:
根据所述第一通道对应的子数据,通过所述第一运算模块执行一次数据运算;
根据所述第二通道对应的子数据,通过所述第二运算模块执行一次数据运算。
14.如权利要求10-13中任一项所述的控制方法,其特征在于,所述计算单元还包括:
第二配置接口,被配置成与ID配置总线相连,以接收所述目标数据的数据ID;
ID存储模块,被配置成存储所述目标数据的数据ID;
所述控制方法还包括:
查询所述ID存储模块,以获取所述目标数据的数据ID;
当查询到所述目标数据的数据ID时,控制所述数据接口接收所述目标数据。
15.如权利要求10-14中任一项所述的控制方法,其特征在于,所述目标数据包括用于神经网络计算的输入特征值和权重,所述运算控制模块用于执行所述输入特征值和所述权重的乘累加运算。
CN201780017293.6A 2017-11-30 2017-11-30 计算单元、计算系统以及计算单元的控制方法 Pending CN108885714A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/113935 WO2019104639A1 (zh) 2017-11-30 2017-11-30 计算单元、计算系统以及计算单元的控制方法

Publications (1)

Publication Number Publication Date
CN108885714A true CN108885714A (zh) 2018-11-23

Family

ID=64325695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780017293.6A Pending CN108885714A (zh) 2017-11-30 2017-11-30 计算单元、计算系统以及计算单元的控制方法

Country Status (4)

Country Link
US (1) US20200134431A1 (zh)
EP (1) EP3660690A4 (zh)
CN (1) CN108885714A (zh)
WO (1) WO2019104639A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070178A (zh) * 2019-04-25 2019-07-30 北京交通大学 一种卷积神经网络计算装置及方法
CN112639836A (zh) * 2020-02-25 2021-04-09 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法
CN113742266A (zh) * 2021-09-10 2021-12-03 中科寒武纪科技股份有限公司 集成电路装置、电子设备、板卡和计算方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8233972B2 (en) * 2010-02-12 2012-07-31 Siemens Medical Solutions Usa, Inc. System for cardiac arrhythmia detection and characterization
CN103190905A (zh) * 2013-04-01 2013-07-10 武汉理工大学 基于Wi-Fi的多通道表面肌电信号采集系统及处理方法
CN103908361A (zh) * 2014-04-02 2014-07-09 韩晓新 一种假肢关节运动耦合驱动信号的采集运算方法
US20140337209A1 (en) * 2012-08-20 2014-11-13 Infosys Limited Partner portal solution for financial sector
CN106484642A (zh) * 2016-10-09 2017-03-08 上海新储集成电路有限公司 一种具有运算能力的直接存储器访问控制器
CN107291647A (zh) * 2017-05-19 2017-10-24 中国科学院长春光学精密机械与物理研究所 Dsp读取扩展串口中接收通道数据的方法
CN107294552A (zh) * 2017-06-08 2017-10-24 上海华测导航技术股份有限公司 一种利用有限资源处理多通道数据的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102508800A (zh) * 2011-09-30 2012-06-20 北京君正集成电路股份有限公司 二维数据块的传输方法及系统
CN105701048B (zh) * 2016-01-15 2019-08-30 陈蔡峰 一种多通道数据动态传输方法
JP6610278B2 (ja) * 2016-01-18 2019-11-27 富士通株式会社 機械学習装置、機械学習方法及び機械学習プログラム
CN105760320B (zh) * 2016-02-05 2018-11-02 黄祖辉 一种数据存储方法、控制器及存储器
CN105892989B (zh) * 2016-03-28 2017-04-12 中国科学院计算技术研究所 一种神经网络加速器及其运算方法
CN106909970B (zh) * 2017-01-12 2020-04-21 南京风兴科技有限公司 一种基于近似计算的二值权重卷积神经网络硬件加速器计算装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8233972B2 (en) * 2010-02-12 2012-07-31 Siemens Medical Solutions Usa, Inc. System for cardiac arrhythmia detection and characterization
US20140337209A1 (en) * 2012-08-20 2014-11-13 Infosys Limited Partner portal solution for financial sector
CN103190905A (zh) * 2013-04-01 2013-07-10 武汉理工大学 基于Wi-Fi的多通道表面肌电信号采集系统及处理方法
CN103908361A (zh) * 2014-04-02 2014-07-09 韩晓新 一种假肢关节运动耦合驱动信号的采集运算方法
CN106484642A (zh) * 2016-10-09 2017-03-08 上海新储集成电路有限公司 一种具有运算能力的直接存储器访问控制器
CN107291647A (zh) * 2017-05-19 2017-10-24 中国科学院长春光学精密机械与物理研究所 Dsp读取扩展串口中接收通道数据的方法
CN107294552A (zh) * 2017-06-08 2017-10-24 上海华测导航技术股份有限公司 一种利用有限资源处理多通道数据的方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070178A (zh) * 2019-04-25 2019-07-30 北京交通大学 一种卷积神经网络计算装置及方法
CN110070178B (zh) * 2019-04-25 2021-05-14 北京交通大学 一种卷积神经网络计算装置及方法
CN112639836A (zh) * 2020-02-25 2021-04-09 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法
WO2021168644A1 (zh) * 2020-02-25 2021-09-02 深圳市大疆创新科技有限公司 数据处理装置、电子设备和数据处理方法
CN113742266A (zh) * 2021-09-10 2021-12-03 中科寒武纪科技股份有限公司 集成电路装置、电子设备、板卡和计算方法
CN113742266B (zh) * 2021-09-10 2024-02-06 中科寒武纪科技股份有限公司 集成电路装置、电子设备、板卡和计算方法

Also Published As

Publication number Publication date
EP3660690A1 (en) 2020-06-03
US20200134431A1 (en) 2020-04-30
WO2019104639A1 (zh) 2019-06-06
EP3660690A4 (en) 2020-08-12

Similar Documents

Publication Publication Date Title
US10412021B2 (en) Optimizing placement of virtual machines
JP7328379B2 (ja) 畳み込み効率を向上させる方法、システム、及び装置
CN112134741B (zh) 分布式系统中的客户导向的联网限制
CN105573839A (zh) 用于端口选择的基于成本的负载平衡的方法和装置
CN108885714A (zh) 计算单元、计算系统以及计算单元的控制方法
US9164944B2 (en) Semiconductor system, relay apparatus, and chip circuit
US6976256B2 (en) Pipeline processing type shaping apparatus and its method
CN110266679A (zh) 容器网络隔离方法及装置
WO2014160652A1 (en) Hardware acceleration for routing programs
CN111382114A (zh) 一种用于片上网络的数据传输方法、装置及电子设备
US20230164088A1 (en) Low Latency Queuing System
Liao et al. Live: learning and inference for virtual network embedding
CN108875035A (zh) 分布式文件系统的数据存储方法及相关设备
WO2021087639A1 (en) Cdn optimization platform
US20220394457A1 (en) Dynamic embedded-sim configuration
CN108063814A (zh) 一种负载均衡方法及装置
EP3685567B1 (en) Load shedding of traffic based on current load state of target capacity
CN101102228B (zh) 一种流量统计的方法及装置
CN106933882A (zh) 一种大数据增量计算方法和装置
CN115080496A (zh) 网络映射方法、数据处理方法及装置、设备、系统和介质
CN112104566B (zh) 一种负载均衡的处理方法和装置
CN117176722A (zh) 动态重构方法、装置及服务器
CN103546337A (zh) 分组和电路混合交换系统中的流量需求估计方法
CN113824606B (zh) 一种网络测量方法及装置
CN108628893A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20181123

WD01 Invention patent application deemed withdrawn after publication