CN111415007B - 一种计算数据的方法、装置、板卡及计算机可读存储介质 - Google Patents

一种计算数据的方法、装置、板卡及计算机可读存储介质 Download PDF

Info

Publication number
CN111415007B
CN111415007B CN202010225912.4A CN202010225912A CN111415007B CN 111415007 B CN111415007 B CN 111415007B CN 202010225912 A CN202010225912 A CN 202010225912A CN 111415007 B CN111415007 B CN 111415007B
Authority
CN
China
Prior art keywords
data
block
cluster
computing device
node
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
CN202010225912.4A
Other languages
English (en)
Other versions
CN111415007A (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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202010225912.4A priority Critical patent/CN111415007B/zh
Publication of CN111415007A publication Critical patent/CN111415007A/zh
Application granted granted Critical
Publication of CN111415007B publication Critical patent/CN111415007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7803System on board, i.e. computer system on one or more PCB, e.g. motherboards, daughterboards or blades
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F2015/761Indexing scheme relating to architectures of general purpose stored programme computers
    • G06F2015/763ASIC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Neurology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Abstract

本公开涉及计算数据的方法、装置、板卡及计算机可读存储介质,其中本公开的计算装置包括在集成电路装置中,所述集成电路装置包括通用互联接口和其他处理装置。计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。集成电路装置还可以包括存储装置,存储装置分别与计算装置和其他处理装置连接,用于计算装置和其他处理装置的数据存储。

Description

一种计算数据的方法、装置、板卡及计算机可读存储介质
技术领域
本公开一般地涉及神经网络领域。更具体地,本公开涉及计算数据的方法、装置、板卡及计算机可读存储介质。
背景技术
由于人工智能领域的高速发展,所需处理的计算量也随之增加,现今神经网络训练需要仰赖大量的计算资源才能应付。而受到计算资源的内存限制,实务上需要结合多卡进行数据并行以完成大批量的训练工作,因此许多人就如何在多卡环境中高效协同运行提出解决方案,例如:2015年Sergey Ioffe等人提出批归约化的论文“Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift“、2016年Jimmy Lei Ba等人提出层归约化的论文“Layer Normalization”等。
随着硬件技术的发展,现代处理器也都采用多核并行的框架,神经网络的计算装置内部同样具有数据并行的特点,因此高效的数据归约解决方案是迫切需要的。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种计算数据的方法、装置、板卡及计算机可读存储介质。
在一个方面中,本公开揭露一种在计算装置内计算数据的方法,计算装置包括N个集群(cluster)。所述方法包括:分散(scatter)所述数据至所述些集群;归约(reduce)所述数据至每个集群,以产生归约后信息;以及发送所述归约后信息。
在另一个方面,本公开揭露一种计算机可读存储介质,其上存储有在计算装置内计算数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行前述的方法。
在另一个方面,本公开揭露一种处理数据的计算装置,包括:存储单元核及N个集群。存储单元核用以分散所述数据,每个集群包括至少一个处理器核,所述处理器核用以归约所述数据,以产生归约后信息。所述存储单元核发送所述归约后信息。
在另一个方面,本公开揭露一种集成电路装置,包括前述的计算装置,还揭露一种板卡,包括前述的集成电路装置。
本公开的方案技术有效的减少了片上片外的通信时间,省去集群间输出入的资源耗费,并具有良好的硬件扩展性。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出一种参数服务器的框架图;
图2是示出一种环形全归约的框架图;
图3是示出环形全归约的工作节点的示意图;
图4A至4C是示出环形全归约的工作节点进行归约时的示意图;
图5A是示出归约程序完成时的示意图;
图5B是示出全集程序完成时的示意图;
图6是示出本公开实施例的内部结构示意图;
图7A至7C是示出本公开实施例进行归约程序的示意图;
图8是示出本公开实施例完成归约程序的示意图;
图9A是示出本公开另一实施例两通信链路同方向传输的示意图;
图9B是示出本公开另一实施例两通信链路反方向传输的示意图;
图10是示出本公开另一实施例的框架图;
图11是示出本公开另一实施例的框架图;
图12是示出本公开另一实施例的框架图;
图13是示出本公开实施例的集成电路装置的结构图;
图14是示出本公开实施例的板卡的结构图;
图15是示出本公开另一实施例的流程图;
图16是示出本公开另一实施例的流程图;
图17是示出本公开另一实施例的流程图;以及
图18是示出本公开另一实施例的流程图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“所述”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本公开的具体实施方式。
当将神经网络的训练并行化到许多处理器(特别是图像处理器或是人工智能处理器)上时,系统必须选择如何将不同的任务分配到所有可用计算资源上,例如一种称为数据并行随机梯度下降(Stochastic Gradient Descent, SGD)的技术,其梯度下降是通过数据子集批次完成的,需要多次迭代才能完成整个数据集的计算任务。然而,在数据并行训练中,每个处理器都有整个神经网络模型的完整副本,对于每次迭代,只分配了小批次中样本的子集,每个处理器在其数据上运行网络的前向传播,随后进行误差反向传播,以计算损耗相对于网络参数的梯度。最后,计算所有处理器的平均梯度,将平均梯度应用于更新权重。处理器都在不停的迭代中前进,一旦处理器完成了迭代,它必须等待所有其他处理器完成自己的迭代,这样权重才能被正确更新,通过在多个处理器之间分发数据且并行执行计算来获得加速。
图1显示一种下降梯度的框架,称为参数服务器(parameter server)。参数服务器100是一个为了解决分布式机器学习问题而建立的编程框架,所述框架包括服务器节点102及多个工作节点104,每个节点包括至少一个处理单元。服务器节点102的主要功能是存放机器学习任务的参数,接收工作节点104的梯度,对本地参数进行更新。工作节点104的主要功能有两点:一是从服务器节点102获取当前最新的参数;二是使用现有数据和从服务器节点102获取的参数,计算得到预测值,然后根据设定的损失函数,计算关于训练参数的梯度,最后将梯度发送给服务器节点102。
参数服务器100最主要的操作就是图中箭头所指的Pull操作(工作节点104从服务器节点102获取参数)和Push操作(工作节点104推送梯度到服务器节点102)。通过不断迭代执行Pull操作和Push操作,服务器节点102将数据和训练参数分散到不同的工作节点104上,分布式训练,然后汇整数据,以完成训练任务。
图2显示另一个下降梯度的框架,称为环形全归约(Ring Allreduce)框架。环形全归约框架200包含多个工作节点,不存在服务器节点来聚合所有工作节点计算的梯度。图中示例性展示4个工作节点,第一工作节点202、第二工作节点204、第三工作节点206及第四工作节点208。环形全归约框架200将这些工作节点组织成一个逻辑环路。每个工作节点只与前一个工作节点和下一个工作节点连接,并往同一个方向接收及发送数据。如图2中箭头方向所示,每个工作节点以顺时针方向从前一个工作节点处接收数据,计算后向下一个工作节点发送数据,这样的框架可以充分利用每个工作节点的输出入带宽。
更详细来说,这些处于逻辑环路中的多个工作节点如图3所示。在进行环状全归约时,首先执行分散程序,将数据均分成4个数据块,分别存储至每个工作节点。基于可用的频宽,示例性的每个工作节点又将数据块切割为4个数据子块,即第一工作节点202存储有数据子块a0、b0、c0、d0,第二工作节点204存储有数据子块a1、b1、c1、d1,第三工作节点206存储有数据子块a2、b2、c2、d2,第四工作节点208存储有数据子块a3、b3、c3、d3
接下来执行归约程序,这些工作节点将进行N-1次(在此处N为4)的归约迭代。在每次迭代中,这些工作节点将向下一个工作节点发送一个数据子块,并从前一个工作节点接收一个数据子块进行计算,每个工作节点发送和接收的数据子块在每次迭代中都是不同的。
如图4A至图4C所示,以进行加法计算为例。图4A中,在第一次迭代时,第一工作节点202的数据子块a0被传送至第二工作节点204与数据子块a1相加,第二工作节点204的数据子块b1被传送至第三工作节点206与数据子块b2相加,第三工作节点206的数据子块c2被传送至第四工作节点208与数据子块c3相加,第四工作节点208的数据子块d3被传送至第一工作节点202与数据子块d0相加。
图4B中,在第二次迭代时,第二工作节点204的数据子块a0+a1被传送至第三工作节点206与数据子块a2相加,第三工作节点206的数据子块b1+b2被传送至第四工作节点208与数据子块b3相加,第四工作节点208的数据子块c2+c3被传送至第一工作节点202与数据子块c0相加,第一工作节点202的数据子块d0+d3被传送至第二工作节点204与数据子块d1相加。
图4C中,在第三次迭代时,第三工作节点206的数据子块a0+a1+a2被传送至第四工作节点208与数据子块a3相加,第四工作节点208的数据子块b1+b2+b3被传送至第一工作节点202与数据子块b0相加,第一工作节点202的数据子块c0+c2+c3被传送至第二工作节点204与数据子块c1相加,第二工作节点204的数据子块d0+d1+d3被传送至第三工作节点206与数据子块d2相加。
执行完前述加法计算后,可以得到如图5A所示的状态,每个工作节点都有一个数据子块执行了完整的加法计算,也就是将纵向相对应的数据子块全相加起来,例如:第一工作节点202的第二个数据子块b0+b1+b2+b3,第二工作节点204的第三个数据子块c0+c1+c2+c3,第三工作节点206的第四数据子块d0+d1+d2+d3,第四工作节点208的第一个数据子块a0+a1+a2+a3
在分散━归约程序完成之后,为了实现全归约,工作节点必须交换这些数据子块,使得所有工作节点都具有相同的最终值,这步骤称为全集(allgather)。全集程序的过程与归约程序的流程相近,也就是再进行N-1次的迭代,但工作节点接收的数值不累加,而是进行覆盖,最后会得到如图5B所示的结果,所有的数据子块都具有完整的计算结果。
最后执行广播程序,将这些计算结果发送给其他卡上的处理器。
通过以上的过程,能将复杂的计算工作分散给不同卡上的处理器同时执行,再将结果整合起来,以完成任务。
机器学习单元(machine learning unit,MLU)是一种人工智能芯片,用以计算数据,其采用多核处理器框架,可支持16核或更多核并行计算,且具有集群间的高速通信通道和存储单元核(也可称为片上或片内存储单元)来加速数据读取。本公开可以充分利用集群间的高速通信通道进行分散与归约,解决人工智能芯片的处理器核与片外存储单元的访存瓶颈问题。
图6示出了本公开的一个实施例的内部结构示意图,其为前述的机器学习单元,更详细来说是一种计算装置。计算装置600共有N个处理器核,在此实施例中示例性的展示16个(处理器核0至处理器核15),用于执行计算任务。每4个处理器核组成一个处理器组,也就是集群,如图所示,处理器核0至处理器核3组成第一集群602,处理器核4至处理器核7组成第二集群604,处理器核8至处理器核11组成第三集群606,处理器核12至处理器核15组成第四集群608,共4个集群。计算装置600基本上以集群为单元执行计算任务。
计算装置600还包括存储单元核610及共享存储单元612。存储单元核610主要用于对外通过总线614连接并访问片外存储单元616,共享存储单元612用以暂存计算过程的输入数据、中间数据及计算结果。
片外存储单元616为双倍速率同步动态随机存储器,采用非统一内存存取(non-uniform memory access,NUMA)框架,包括多个DDR通道,每个集群可以通过总线614去访问不同的DDR通道,但访问不同的DDR通道的延时不同。每个集群都对应一个访问延时最低的DDR通道,在此实施例中,每个集群访问了各自集群访存延时最低的DDR通道。
由于计算装置600内部的访存带宽高于与片外存储单元616的访问带宽,因此计算装置600可以通过集群间的分散━归约程序有效利用共享存储单元612,以减少计算装置600直接访问片外存储单元616的机会,从而提高了数据吞吐量。
在执行计算任务时,此实施例的计算装置600执行类似图2至图3,图4A至图4C所示的流程。更详细来说,计算装置600的各集群间通过一条通信链路进行联系,形成如图2所示的逻辑环,共同计算特定数据。在此实施例中,欲进行计算的数据可以是16K、32K或512K比特。在执行分散程序时,由于计算装置600包括4个集群,因此存储单元核610均分数据为4个数据块,每个大小为4K、8K或128K比特,并分配这些数据块至4个集群,每个集群分别接收到一个数据块。如图7A、图7B、图7C所示,第一集群602接收到数据子块a0、b0、c0、d0,第二集群604接收到数据子块a1、b1、c1、d1,第三集群606接收到数据子块a2、b2、c2、d2,第四集群608接收到数据子块a3、b3、c3、d3
接下来,这些集群将进行3次的归约迭代。在每次迭代中,这些集群向下一个集群发送一个数据子块,从前一个集群接收一个数据子块,使得集群内的处理器核归约数据,以产生归约后信息,每个集群发送和接收的数据子块在每次迭代中都是不同的。
更详细来说,每个集群的处理器核均分数据块为4个数据子块,即1K、2K或32K比特,存储单元核610传送每个集群的一个数据子块至下一个集群,每个集群的处理器核将前一个集群的数据子块与所存储相对应的数据子块进行计算,产生计算结果。
如图7A所示,同样以加法计算为例。在第一次迭代时,第一集群602的数据子块a0被传送至第二集群604,由第二集群604内的处理器核4-7进行加法计算,第二集群604的数据子块b1被传送至第三集群606,由第三集群606内的处理器核8-11进行加法计算,第三集群606的数据子块c2被传送至第四集群608,由第四集群608内的处理器核12-15进行加法计算,第四集群608的数据子块d3被传送至第一集群602,由第一集群602内的处理器核0-3进行加法计算。
图7B中,在第二次迭代时,第二集群604的数据子块a0+a1被传送至第三集群606,由第三集群606内的处理器核8-11进行加法计算,第三集群606的数据子块b1+b2被传送至第四集群608,由第四集群608内的处理器核12-15进行加法计算,第四集群608的数据子块c2+c3被传送至第一集群602,由第一集群602内的处理器核0-3进行加法计算,第一集群602的数据子块d0+d3被传送至第二集群604,由第二集群604内的处理器核4-7进行加法计算。
图7C中,在第三次迭代时,第三集群606的数据子块a0+a1+a2被传送至第四集群608,由第四集群608内的处理器核12-15进行加法计算,第四集群608的数据子块b1+b2+b3被传送至第一集群602,由第一集群602内的处理器核0-3进行加法计算,第一集群602的数据子块c0+c2+c3被传送至第二集群604,由第二集群604内的处理器核4-7进行加法计算,第二集群604的数据子块d0+d1+d3被传送至第三集群606,由第三集群606内的处理器核8-11进行加法计算。
最后得到如图8所示的状态,每个集群都有一个数据子块已执行了完整的加法计算,也就是将纵向相对应的数据子块全部相加起来,例如:第一集群602的第二个数据子块b0+b1+b2+b3,第二集群604的第三个数据子块c0+c1+c2+c3,第三集群606的数据子块d0+d1+d2+d3,第四集群608的第一个数据子块a0+a1+a2+a3
由于是在片内的运算,此实施例不需经过全集及广播的程序,存储单元核610直接将归约后信息a0+a1+a2+a3、b0+b1+b2+b3、c0+c1+c2+c3、d0+d1+d2+d3发送并存储在片外存储单元616。
在前述分散和归约的过程中,数据块、数据子块、计算结果及归约后信息都暂存在共享存储单元612中,便于计算过程数据的存取。
本公开另一个实施例同样是一种人工智能计算装置,与前述实施例不同处在于每个集群间有两条通信链路进行沟通,也就是各集群间是以第一通信链路及第二通信链路同时链接相邻集群的。这两条通信链路的传输方向可以是同向的,如图9A所示,第一通信链路902及第二通信链路904都是以顺时针方向传输数据。或者,这两条通信链路的传输方向是反向的,如图9B所示,第一通信链路902以顺时针方向传输数据,而第二通信链路904以逆时针方向传输数据。
由于此实施例具有两条通信链路,因此集群间联系的方式变得多元、弹性且高效。以图9A中第一通信链路902及第二通信链路904都是同方向传输数据为例,在进行归约程序时,存储单元核610可以将数据子块再分为第一数据子块及第二数据子块,通过第一通信链路902传送第一数据子块,且通过第二通信链路904传送第二数据子块,以缩短传输时间。
随着硬件开发的能力愈来愈强大,人工智能计算装置可以内含愈来愈多的集群。当集群数量达到一定程度时,前述单纯环状结构的实施例会导致完成归约的时间过长,效率降低。例如,当计算装置具有64个集群时,完成一次归约需要
Figure DEST_PATH_IMAGE001
次的迭代。
本公开另一个实施例同样是一种人工智能计算装置,其具有与图6相似的结构,不同处在于此实施例的计算装置包括64个集群。此实施例将这些集群安排成如图10所示的逻辑框架,计算装置包括4个参数服务器1002,每个参数服务器1002包括一个服务器节点1004及3个工作节点1006,每个工作节点1006分别连接至所属参数服务器1002的服务器节点1004。参数服务器1002、服务器节点1004及工作节点1006分别对应至图1中的参数服务器100、服务器节点102及工作节点104。这4个服务器节点1004又形成如图2所示的逻辑环框架,此框架将服务器节点1004组织成逻辑环路中的工作节点。每个服务器节点1004只与前一个服务器节点和下一个服务器节点连接,并往同一个方向接收及发送数据。
在此实施例中,每个服务器节点1004及工作节点1006分别包括4个集群。
在执行分散程序时,数据被均分4个数据块,分别分配给4个服务器节点1004,每个服务器节点1004接收到一个数据块,以完成参数的更新。
接着,服务器节点1004将数据块再分割为数据子块分配给同一个参数服务器1002的3个工作节点1006以执行任务。每个工作节点1006从服务器节点1004获取当前最新的参数,使用现有数据和从服务器节点1004获取的参数,计算后将梯度发送给服务器节点1004。更详细来说,每些工作节点1006接收到数据子块后,执行如图7A至图7C所示的分散━归约程序,并反馈任务结果(即归约后信息)给服务器节点1004,服务器节点1004接收到工作节点1006的梯度,完成对本地参数的更新。而4个服务器节点1004又形成一个逻辑环,集群内的存储单元核传送每个服务器节点1004的任务结果至下一个服务器节点,服务器节点1004间再进行一次归约迭代,以完成计算任务。
此实施例进行2次分散━归约程序。第一次是将数据分散给各服务器节点1004,等到接收到工作节点1006返回的任务结果后,再进行服务器节点1004间的归约程序;第二次是各工作节点1006接收到数据子块后,进行分散及归约,并返回任务结果给服务器节点1004。
这样的框架仅需6次的迭代便完成数据的归约,且同样不需要进行全集和广播程序,不仅如此,相较于将全部集群安排成一个逻辑环,此实施例能更有效的提高工作效率。
本公开的另一个实施例如图11所示,基本框架与图1的实施例相似,为一种参数服务器。参数服务器1100包括服务器节点1102及多个工作节点1104,每个节点都是一个处理单元。服务器节点1102的主要功能是分配数据给工作节点1104,接收工作节点1104的梯度,对本地参数进行更新。工作节点1104从服务器节点1102获取当前最新的参数,使用现有数据和从服务器节点1102获取的参数,计算关于训练参数的梯度,最后将梯度发送给服务器节点1102。在此实施例中,服务器节点1102与工作节点1104都具有图6的框架。
工作节点1104将来自服务器节点1102的参数执行图7 A至图7C的分散━归约程序,先将参数进行分散,使每个集群1106都存储有数据块,再将数据块分割成数据子块,然后每个工作节点1104的4个集群1106进行归约。由于每个工作节点1104的4个集群1106中,仅有一个集群与服务器节点1102连接,如图11中的第一集群,因此只有第一集群中的归约后信息会被发送给服务器节点1102。以图8为例来说明,第一集群602的第二个数据子块完成b0+b1+b2+b3的计算结果,因此每个工作节点1104都是将第一集群的b0+b1+b2+b3的计算结果返回给服务器节点1102,服务器节点1102汇整后,便有了完整b数据的计算结果。
此实施例可以进一步扩充为如图12所示的框架,一个计算装置包括4个参数服务器1100,每个参数服务器1100中的服务器节点1102安排成一个逻辑环。每个参数服务器1100完成一部分的计算,例如图11的服务器节点1102产出b数据的计算结果,其他参数服务器1100的服务器节点1102分别产出a、c、d数据的计算结果,然后在图12的逻辑环中,所有的服务器节点1102进行归约,以获得a、b、c、d数据的全部计算结果。此实施例同样不需要进行全集和广播程序。
图13是示出根据本公开实施例的一种集成电路装置1300的结构图。如图13所示,集成电路装置1300包括计算装置1302,所述计算装置1302是前述多个实施例中的计算装置。另外,集成电路装置1300还包括通用互联接口1304和其他处理装置1306。
其他处理装置1306可以是中央处理器、图形处理器、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器,其数目不做限制而是依实际需要来确定。其他处理装置1306作为计算装置1302与外部数据和控制的接口,执行包括但不限于数据搬运,完成对计算装置1302的开启、停止等的基本控制。其他处理装置1306也可以和计算装置1302协作共同完成运算任务。
通用互联接口1304可以用于在计算装置1302与其他处理装置1306间传输数据和控制指令。例如,计算装置1302可以经由通用互联接口1304从其他处理装置1306中获取所需的输入数据,写入计算装置1302片上的存储单元。进一步,计算装置1302可以经由通用互联接口1304从其他处理装置1306中获取控制指令,写入计算装置1302片上的控制缓存。替代地或可选地,通用互联接口1304也可以读取计算装置1302的存储模块中的数据并传输给其他处理装置1306。
集成电路装置1300还包括存储装置1308,其可以分别与计算装置1302和其他处理装置1306连接。存储装置1308用于保存计算装置1302和其他处理装置1306的数据,尤其适用于所需要运算的数据在计算装置1302或其他处理装置1306的内部存储中无法全部保存的数据。
根据应用场景的不同,集成电路装置1300可以作为手机、机器人、无人机、视频采集等设备的片上系统(SOC),从而有效地降低控制部分的核心面积,提高处理速度并降低整体的功耗。在此情况时,集成电路装置1300的通用互联接口1304与设备的某些部件相连接。此处的某些部件可以例如是摄像头,显示器,鼠标,键盘,网卡或wifi接口。
本公开还揭露一种芯片或集成电路芯片,其包括了集成电路装置1300。本公开还揭露一种芯片封装结构,其包括了上述芯片。
本公开另一个实施例是一种板卡,其包括了上述芯片封装结构。参阅图14,板卡1400除了包括多个上述芯片1402以外,还可以包括其他的配套部件,所述配套部件包括存储器件1404、接口装置1406和控制器件1408。
存储器件1404与芯片封装结构内的芯片1402通过总线1414连接,用于存储数据。存储器件1404可以包括多组存储单元1410。每一组存储单元1410可以是图6的片外存储单元616。
接口装置1406与所述芯片封装结构内的芯片1402电连接。所述接口装置1406用于实现芯片1402与外部设备1412(例如服务器或计算机)之间的数据传输。在此实施例中,接口装置1406为标准PCIe接口,待处理的数据由服务器通过标准PCIe接口传递至芯片1402,实现数据转移。芯片1402的计算结果亦由接口装置1406传送回外部设备1412。
控制器件1408与芯片1402电连接,以便对芯片1402的状态进行监控。具体地,芯片1402与控制器件1408可以通过SPI接口电连接。控制器件1408可以包括单片机(“MCU”,Micro Controller Unit)。
本公开的另一个实施例是一种电子设备或装置,其包括了上述板卡1400。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
图15示出了本公开的另一个实施例,是一种在计算装置内计算数据的方法。此计算装置即为图6的计算装置600,在执行计算任务时,计算装置的各集群间通过一条通信链路进行联系,形成逻辑环,共同计算特定数据。此实施例的方法先分散数据至集群,再归约数据至每个集群,以产生归约后信息,最后发送归约后信息。
在分散程序中,首先执行步骤1502,根据集群的数量,将数据均分为N个数据块,其中N为集群的数量。接着执行步骤1504,分配这些数据块至N个集群,每个集群分别接收到一个数据块。
接着进行归约程序,首先执行步骤1506,均分数据块为N个数据子块,接着执行步骤1508,传送每个集群的一个数据子块至下一个集群,在步骤1510中,将接收到前一个集群的数据子块与所存储相对应的数据子块进行计算,在步骤1512中,存储计算结果。由于归约程序需要进行N-1次,因此本方法重复N-1次的步骤1508、步骤1510、步骤1512。最后执行步骤1514,指定第N-1次所存储的计算结果为归约后信息,也就是如图8所示,得到第一集群602的第二个数据子块b0+b1+b2+b3,第二集群604的第三个数据子块c0+c1+c2+c3,第三集群606的数据子块d0+d1+d2+d3,第四集群608的第一个数据子块a0+a1+a2+a3
最后执行步骤1516,发送归约后信息至片外存储单元,所述片外存储单元可以是双倍速率同步动态随机存储器。
图16示出了本公开的另一个实施例,是一种在计算装置内计算数据的方法。与图15的实施例不同处在于每个集群间有两条通信链路进行沟通,也就是各集群间是以第一通信链路及第二通信链路同时链接相邻集群,并以同方向配置传送数据,其框架如图9A所示。
在分散程序中,首先执行步骤1602,根据集群的数量,将数据均分为N个数据块,其中N为集群的数量。接着执行步骤1604,分配这些数据块至N个集群,每个集群分别接收到一个数据块。
接着进行归约程序,首先执行步骤1606,均分数据块为N个数据子块,接着执行步骤1608,将每个数据子块分为第一数据子块及第二数据子块,在步骤1610中,通过第一通信链路传送第一数据子块,在步骤1612中,通过第二通信链路传送第二数据子块,由于两条通信链路互不影响,因此步骤1610及步骤1612可以同时进行。在步骤1614中,将接收到前一个集群的数据子块与所存储相对应的数据子块进行计算,在步骤1616中,存储计算结果。由于归约程序需要进行N-1次,因此步骤1608至步骤1616会重复N-1次。接着执行步骤1618,指定第N-1次所存储的计算结果为归约后信息。
最后执行步骤1620,发送归约后信息至片外存储单元。
由于此实施例具有两条通信链路,因此集群间联系的方式变得多元、弹性且高效,特别是在步骤1610及步骤1612中,每个数据子块以两条通信链路同时传送,有效的缩短传输时间。
图17示出了本公开的另一个实施例,是一种在计算装置内计算数据的方法。此实施例的计算装置具有如图10所示的框架。在执行步骤1702时,需要被计算的数据分别分配给4个服务器节点,以完成参数的更新。在执行步骤1704时,服务器节点将数据再分割数据块,并分散数据给同一个参数服务器的工作节点。在执行步骤1706时,每个工作节点基于所获取的数据块执行任务,在此实施例中,所述任务为加法运算。
接着执行步骤1708,每些工作节点分散数据至集群。在此步骤中,首先执行图15中的步骤1502,根据工作节点内集群的数量,将接收到的数据再均分为数据块。接着执行步骤1504,分配这些数据块至集群,每个集群分别接收到一个数据块。
接着执行步骤1710,工作节点归约数据,以产生归约后信息。在此归约程序中,首先执行如图15所示的步骤1506,均分数据块为N个数据子块,接着执行步骤1508,传送每个集群的一个数据子块至下一个集群,在步骤1510中,将接收到前一个集群的数据子块与所存储相对应的数据子块进行计算,在步骤1512中,存储计算结果。由于归约程序需要进行N-1次,因此重复N-1次的步骤1508、步骤1510、步骤1512。最后执行步骤1514,指定第N-1次所存储的计算结果为归约后信息,此归约后信息便是工作节点执行完加法任务的任务结果。
接着执行步骤1712,工作节点发送归约后信息至服务器节点,完成对本地参数的更新。
在执行步骤1714时,服务器节点归约数据,以产生归约后信息。在此归约程序中,传送每个服务器节点的一个数据块至下一个服务器节点,服务器节点接收到前一个服务器节点的数据块,并与所存储相对应的数据块进行计算,以产生计算结果。同样地,此归约程序需要进行N-1次,此处N为服务器节点的数量,以产生归约后信息。
最后执行步骤1716,服务器节点发送归约后信息。
此实施例进行2次分散━归约程序。第一次是步骤1704及步骤1714,各服务器节点将数据分散给各工作节点,等到接收到工作节点返回的任务结果后,再进行服务器节点间的归约程序。第二次是步骤1708及步骤1710,各工作节点接收到数据后,进行分散及归约,并返回任务结果给服务器节点。
此实施例仅需6次的迭代便完成数据的归约,且同样不需要进行全集和广播程序,相较于将全部集群安排成一个逻辑环,此实施例能有效的提高工作效率。
图18示出了本公开的另一个实施例,是一种在计算装置内计算数据的方法。此实施例的计算装置具有如图11所示的框架。在执行步骤1802时,服务器节点指派任务给工作节点,也就是将数据分割成数据块,并分散给工作节点执行任务。在执行步骤1804时,每个工作节点基于所获取的数据块执行任务,在此实施例中,所述任务亦为加法计算。接着执行步骤1806,每些工作节点分散数据块至集群。在执行步骤1808时,集群归约数据,以产生归约后信息。最后执行步骤1810,集群发送归约后信息。
在此实施例中,工作节点将来自服务器节点的参数执行图7A至图7C的分散━归约程序,先将参数进行分散,使每个集群都存储有数据块,再将数据块分割成数据子块,然后每个工作节点的集群进行归约。再如图11所示,每个工作节点中仅有一个集群与服务器节点连接,因此在步骤1810中,每个工作节点只有一个集群中的归约后信息会被发送给服务器节点。
本公开另一个实施例为一种计算机可读存储介质,其上存储有在计算装置内计算数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行如图15至18所述的方法。
本公开所揭露的技术有以下优势:
1. 充分利用集群之间的高速通信带宽,减少了片上片外的通信时间。
2. 无需进行全集与广播程序,省去不少输出入的资源耗费。
3. 适用于单向逻辑环与双向逻辑环,甚至于可以拓展至任意数量的通信链路的硬件结构。
4. 适用于任意数量的集群,尤其是当集群数量大时,可以采用多层分散━归约程序,缩短计算时间。
5. 分散━归约的框架可以与参数服务器框架结合,实现局部是参数服务器,全局为分散━归约;或者局部为分散━归约,全局是参数服务器。本公开同时具有两者的优点。
依据以下可更好地理解前述内容:
A1、一种在计算装置内计算数据的方法,所述计算装置包括N个集群,所述方法包括:分散所述数据至所述些集群;归约所述数据至每个集群,以产生归约后信息;以及发送所述归约后信息。
A2、根据A1所述的方法,其中所述分散程序包括:均分所述数据为N个数据块;以及分配所述些数据块至所述些集群,每个集群分别存储一个数据块。
A3、根据A2所述的方法,其中所述归约程序包括:均分所述数据块为N个数据子块;传送每个集群的一个数据子块至下一个集群;将接收到前一个集群的数据子块与所存储相对应的数据子块进行计算;存储所述计算结果;重复N-1次所述传送、计算及存储步骤;以及指定所述第N-1次所存储的所述计算结果为所述归约后信息。
A4、根据A3所述的方法,其中相邻的集群通过第一通信链路及第二通信链路链接,所述传送步骤包括:将所述数据子块分为第一数据子块及第二数据子块;通过所述第一通信链路传送所述第一数据子块;以及通过所述第二通信链路传送所述第二数据子块。
A5、根据A1-4所述的方法,其中所述计算装置与片外存储单元连接,所述归约后信息被发送至所述片外存储单元。
A6、根据A5所述的方法,其中所述片外存储单元为双倍速率同步动态随机存储器。
A7、根据A3或4所述的方法,其中所述些集群为参数服务器的服务器节点,所述参数服务器还包括多个工作节点,分别连接至所述服务器节点,所述方法还包括:分配任务给每些工作节点;以及基于所述数据子块执行所述任务,以产生所述归约后信息。
A8、根据A1-4任一项所述的方法,其中所述些集群为参数服务器的工作节点,所述参数服务器还包括服务器节点,连接至所述些工作节点,所述方法还包括在所述分散程序前,指派任务给所述工作节点。
A9、根据A8所述的方法,其中所述归约后信息被发送至所述服务器节点。
A10、一种计算机可读存储介质,其上存储有在计算装置内计算数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行A1-9的任意一项所述的方法。
A11、一种处理数据的计算装置,包括:存储单元核,用以分散所述数据;以及N个集群,每个集群包括至少一个处理器核,所述处理器核用以归约所述数据,以产生归约后信息;其中,所述存储单元核发送所述归约后信息。
A12、根据A11所述的计算装置,其中所述存储单元核均分所述数据为N个数据块,并分配所述些数据块至所述些集群,每个集群分别存储一个数据块。
A13、根据A12所述的计算装置,其中所述处理器核均分所述数据块为N个数据子块,所述存储单元核传送每个集群的一个数据子块至下一个集群,所述处理器核将前一个集群的数据子块与所存储相对应的数据子块进行计算,产生计算结果。
A14、根据A13所述的计算装置,还包括:共享存储单元,用以存储所述些数据块、数据子块、所述计算结果及所述归约后信息。
A15、根据A13所述的计算装置,还包括:第一通信链路及第二通信链路,用以同时链接相邻的集群;其中,所述存储单元核用以:
将所述数据子块分为第一数据子块及第二数据子块;通过所述第一通信链路传送所述第一数据子块;以及通过所述第二通信链路传送所述第二数据子块。
A16、根据A11-15所述的计算装置,其中所述计算装置与片外存储单元连接,所述存储单元核将所述归约后信息发送至所述片外存储单元。
A17、根据A16所述的计算装置,其中所述片外存储单元为双倍速率同步动态随机存储器。
A18、根据A13-15任一项所述的计算装置,还包括:N个参数服务器,每个参数服务器包括:服务器节点;以及多个工作节点,分别连接至所述服务器节点。
A19、根据A18所述的计算装置,其中所述服务器节点对应至所述些集群其中之一,所述服务器节点基于所述数据子块分配任务给所述些工作节点,所述些工作节点反馈任务结果给所述服务器节点,所述存储单元核传送每个服务器节点的所述任务结果至下一个服务器节点。
A20、根据A18所述的计算装置,其中所述些工作节点对应至所述些集群,所述服务器节点指派所述数据给所述工作节点。
A21、根据A20所述的计算装置,其中所述归约后信息被发送至所述服务器节点。
A22、一种集成电路装置,包括根据A11-21的任意一项所述的计算装置。
A23、一种板卡,包括根据A22所述的集成电路装置。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

Claims (17)

1.一种在计算装置内计算数据的方法,所述计算装置包括用于执行计算任务的N个集群,用于连接并访问片外存储单元的存储单元核以及位于存储单元核中用于暂存计算过程中的输入数据、中间数据和计算结果的共享存储单元;所述方法包括:
分散程序,用以分散所述数据至所述N个集群;其中,所述分散程序包括:均分所述数据为N个数据块;以及分配所述N个数据块至每个集群,每个集群分别存储一个数据块;
归约程序,用于归约所述数据至每个集群,以产生归约后信息;其中,所述归约程序包括:均分所述数据块为N个数据子块;传送每个集群的一个数据子块至下一个集群;将接收到前一个集群的数据子块与所存储相对应的数据子块进行计算,产生计算结果;存储所述计算结果;重复N-1次所述传送、计算及存储步骤;以及指定第N-1次所存储的所述计算结果为所述归约后信息;
发送所述归约后信息;其中,
相邻的集群通过第一通信链路及第二通信链路链接,第一通信链路和第二通信链路传输方向可以同向也可以反向;
所述传送步骤包括:
将所述数据子块分为第一数据子块及第二数据子块;
通过所述第一通信链路传送所述第一数据子块;以及
通过所述第二通信链路传送所述第二数据子块。
2.根据权利要求1所述的方法,其中所述计算装置与片外存储单元连接,所述归约后信息被发送至所述片外存储单元。
3.根据权利要求2所述的方法,其中所述片外存储单元为双倍速率同步动态随机存储器。
4.根据权利要求1所述的方法,其中所述集群为参数服务器的服务器节点,所述参数服务器还包括多个工作节点,分别连接至所述服务器节点,所述方法还包括:
分配任务给多个工作节点;以及
基于所述数据子块执行所述任务,以产生所述归约后信息。
5.根据权利要求1所述的方法,其中所述集群为参数服务器的工作节点,所述参数服务器还包括服务器节点,连接至所述工作节点,所述方法还包括在所述分散程序前,指派任务给所述工作节点。
6.根据权利要求5所述的方法,其中所述归约后信息被发送至所述服务器节点。
7.一种计算机可读存储介质,其上存储有在计算装置内计算数据的计算机程序代码,当所述计算机程序代码由处理器运行时,执行权利要求1-6中任意一项所述的方法。
8.一种计算数据的计算装置,用于实现如权利要求1所述的方法。
9.根据权利要求8所述的计算装置,
共享存储单元还用以存储所述数据块、数据子块及所述归约后信息。
10.根据权利要求9所述的计算装置,其中所述存储单元核将所述归约后信息发送至所述片外存储单元。
11.根据权利要求10所述的计算装置,其中所述片外存储单元为双倍速率同步动态随机存储器。
12.根据权利要求11所述的计算装置,还包括:
N个参数服务器,每个参数服务器包括:
服务器节点;以及
多个工作节点,分别连接至所述服务器节点。
13.根据权利要求12所述的计算装置,其中所述服务器节点对应至所述集群其中之一,所述服务器节点基于所述数据子块分配任务给所述工作节点,所述工作节点反馈任务结果给所述服务器节点,所述存储单元核传送每个服务器节点的所述任务结果至下一个服务器节点。
14.根据权利要求12所述的计算装置,其中所述工作节点对应至所述集群,所述服务器节点指派所述数据给所述工作节点。
15.根据权利要求14所述的计算装置,其中所述归约后信息被发送至所述服务器节点。
16.一种集成电路装置,包括根据权利要求8-15任意一项所述的计算装置。
17.一种板卡,包括根据权利要求16所述的集成电路装置。
CN202010225912.4A 2020-03-26 2020-03-26 一种计算数据的方法、装置、板卡及计算机可读存储介质 Active CN111415007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010225912.4A CN111415007B (zh) 2020-03-26 2020-03-26 一种计算数据的方法、装置、板卡及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010225912.4A CN111415007B (zh) 2020-03-26 2020-03-26 一种计算数据的方法、装置、板卡及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111415007A CN111415007A (zh) 2020-07-14
CN111415007B true CN111415007B (zh) 2023-01-17

Family

ID=71493245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010225912.4A Active CN111415007B (zh) 2020-03-26 2020-03-26 一种计算数据的方法、装置、板卡及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111415007B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201216269D0 (en) * 2011-09-30 2012-10-24 Ibm Generating a map-reduce framework for a multi-core cluster
CN105159610A (zh) * 2015-09-01 2015-12-16 浪潮(北京)电子信息产业有限公司 大规模数据处理系统及方法
WO2015189789A1 (en) * 2014-06-11 2015-12-17 Telefonaktiebolaget L M Ericsson (Publ) Method and system for parallel data replication in a distributed file system
CN107766148A (zh) * 2017-08-31 2018-03-06 北京百度网讯科技有限公司 一种异构集群及任务处理方法和装置
CN108664331A (zh) * 2018-05-22 2018-10-16 腾讯大地通途(北京)科技有限公司 分布式数据处理方法及装置、电子设备、存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8082289B2 (en) * 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US7856544B2 (en) * 2008-08-18 2010-12-21 International Business Machines Corporation Stream processing in super node clusters of processors assigned with stream computation graph kernels and coupled by stream traffic optical links

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201216269D0 (en) * 2011-09-30 2012-10-24 Ibm Generating a map-reduce framework for a multi-core cluster
WO2015189789A1 (en) * 2014-06-11 2015-12-17 Telefonaktiebolaget L M Ericsson (Publ) Method and system for parallel data replication in a distributed file system
CN105159610A (zh) * 2015-09-01 2015-12-16 浪潮(北京)电子信息产业有限公司 大规模数据处理系统及方法
CN107766148A (zh) * 2017-08-31 2018-03-06 北京百度网讯科技有限公司 一种异构集群及任务处理方法和装置
CN108664331A (zh) * 2018-05-22 2018-10-16 腾讯大地通途(北京)科技有限公司 分布式数据处理方法及装置、电子设备、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于存储计算的可重构加速架构设计;朱世凯等;《计算机工程与设计》;20160416(第04期);全文 *
并行栅格数据处理网格服务节点软件的关键技术;方金云等;《地球信息科学》;20040330(第01期);全文 *

Also Published As

Publication number Publication date
CN111415007A (zh) 2020-07-14

Similar Documents

Publication Publication Date Title
CN109284823B (zh) 一种运算装置及相关产品
US20200089535A1 (en) Data sharing system and data sharing method therefor
EP3624020A1 (en) Computing method and related product
CN112363813A (zh) 资源调度方法、装置、电子设备和计算机可读介质
US11775808B2 (en) Neural network computation device and method
Min et al. NeuralHMC: An efficient HMC-based accelerator for deep neural networks
CN111767995B (zh) 运算方法、装置及相关产品
CN111415007B (zh) 一种计算数据的方法、装置、板卡及计算机可读存储介质
Shang et al. A cross-layer optimization framework for distributed computing in IoT networks
CN113238976B (zh) 缓存控制器、集成电路装置及板卡
CN111382847A (zh) 数据处理装置及相关产品
CN113238975A (zh) 优化深度神经网络的参数的内存、集成电路及板卡
CN115549854A (zh) 循环冗余校验方法、装置、存储介质以及电子设备
CN112766475A (zh) 处理部件及人工智能处理器
CN113556242A (zh) 一种基于多处理节点来进行节点间通信的方法和设备
CN112232498B (zh) 一种数据处理装置、集成电路芯片、电子设备、板卡和方法
CN111078125B (zh) 运算方法、装置及相关产品
CN113850376A (zh) 执行神经网络模型的计算装置、方法及相关产品
CN112394999A (zh) 运算方法、装置及相关产品
CN112394990A (zh) 浮点转半精度浮点指令处理装置、方法及相关产品
CN114201443A (zh) 数据的处理方法、装置、电子设备及存储介质
CN113918220A (zh) 流水线控制方法、运算模块及相关产品
CN113688090A (zh) 数据传输方法、处理器系统、可读存储介质及电子设备
CN113705785A (zh) 一种避免众核架构芯片前向计算数据交叠的网络训练方法
CN114692848A (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