CN115237371A - 计算装置、数据处理方法及相关产品 - Google Patents

计算装置、数据处理方法及相关产品 Download PDF

Info

Publication number
CN115237371A
CN115237371A CN202110448121.2A CN202110448121A CN115237371A CN 115237371 A CN115237371 A CN 115237371A CN 202110448121 A CN202110448121 A CN 202110448121A CN 115237371 A CN115237371 A CN 115237371A
Authority
CN
China
Prior art keywords
circuit
data
integral
slave processing
processing circuit
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
CN202110448121.2A
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.)
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
Priority to CN202110448121.2A priority Critical patent/CN115237371A/zh
Publication of CN115237371A publication Critical patent/CN115237371A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • G06F7/5095Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators word-serial, i.e. with an accumulator-register

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Advance Control (AREA)

Abstract

本披露公开了一种计算装置、数据处理方法及相关产品。该计算装置可以包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本披露的方案提供了执行积分指令的硬件架构,其可以简化处理,提高机器的处理效率。

Description

计算装置、数据处理方法及相关产品
技术领域
本披露一般地涉及处理器领域。更具体地,本披露涉及计算装置、数据处理方法、芯片和板卡。
背景技术
积分操作是科学计算和数据处理领域中非常常见的一种数据运算操作。积分操作在各种工程领域中已有广泛应用。例如,在土木工程领域中,对建筑地打地基和翼墙体积、面积等的估算需要使用积分操作。又例如,在汽车软件开发过程中,常常会用到计时器或这计数器,例如计算本次驾驶循环发动机运行了多长时间、汽车累积充电次数等等,其本质也是应用积分思想。
另一方面,随着深度学习的迅猛发展,适合于深度学习处理的芯片、处理器等硬件架构也有了跨越式的进展。如果能将积分运算移植到适合深度学习处理的硬件架构上,则有可能加速积分运算处理,提升各种工程领域中相关处理的处理效率。现有的硬件和/或指令集不能有效地支持积分运算相关的操作。
发明内容
为了至少部分地解决背景技术中提到的一个或多个技术问题,本披露的方案提供了一种计算装置、数据处理方法、芯片和板卡。
在第一方面中,本披露公开一种计算装置,包括控制电路和运算电路,其中:所述控制电路用于对积分指令进行解析,所述积分指令的操作对象包括待积分数据,所述积分指令指示对所述待积分数据进行积分运算;以及所述运算电路包括多个从处理电路,并且所述运算电路用于根据所述积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对所述待积分数据中的对应部分执行所述积分运算。
在第二方面中,本披露提供一种芯片,包括前述第一方面任一实施例的计算装置。
在第三方面中,本披露提供一种板卡,包括前述第二方面任一实施例的芯片。
在第四方面中,本披露提供一种由计算装置实施的数据处理方法,所述计算装置包括控制电路和运算电路,所述运算电路包括多个从处理电路,所述方法包括:所述控制电路对积分指令进行解析,所述积分指令的操作对象包括待积分数据,所述积分指令指示对所述待积分数据进行积分运算;以及所述运算电路根据所述积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对所述待积分数据中的对应部分执行所述积分运算。
通过如上所提供的计算装置、数据处理方法、集成电路芯片和板卡,本披露实施例提供了一种在包括多个从处理电路的硬件架构上执行积分指令的方案。积分运算任务可以分布在多个从处理电路上执行,从而充分利用深度学习处理硬件架构的计算优势,通过并行运算提高机器的处理效率。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出本披露实施例的板卡的结构图;
图2示出本披露实施例的组合处理装置的结构图;
图3示出本披露实施例的单核或多核计算装置的处理器核的内部结构示意图;
图4示出本披露实施例的计算装置的示例性结构示意图;
图5示出本披露实施例的计算装置中的运算电路的部分结构示意图;
图6示出了分配给多个从处理电路的累加索引的示意性图示;
图7示出了根据本披露实施例的主处理电路和从处理电路的部分结构示意图;以及
图8示出根据本披露实施例的数据处理方法的示例性流程图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中可能出现的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本披露的具体实施方式。
图1示出本披露实施例的一种板卡10的结构示意图。如图1所示,板卡10包括芯片101,其是一种***级芯片(System on Chip,SoC),或称片上***,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学***台的存储能力和计算能力有很高的要求,此实施例的板卡10适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
芯片101通过对外接口装置102与外部设备103相连接。外部设备103例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡10还包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡10中的控制器件106配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出此实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置20包括计算装置201、接口装置202、处理装置203和存储装置204。
计算装置201配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置202与处理装置203进行交互,以共同完成用户指定的操作。
接口装置202用于在计算装置201与处理装置203间传输数据和控制指令。例如,计算装置201可以经由接口装置202从处理装置203中获取输入数据,写入计算装置201片上的存储装置。进一步,计算装置201可以经由接口装置202从处理装置203中获取控制指令,写入计算装置201片上的控制缓存中。替代地或可选地,接口装置202也可以读取计算装置201的存储装置中的数据并传输给处理装置203。
处理装置203作为通用的处理装置,执行包括但不限于数据搬运、对计算装置201的开启和/或停止等基本控制。根据实现方式的不同,处理装置203可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置201而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置201和处理装置203整合共同考虑时,二者视为形成异构多核结构。
存储装置204用以存储待处理的数据,其可以是DRAM,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
图3示出了计算装置201为单核或多核装置时处理核的内部结构示意图。计算装置301用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,计算装置301包括三大模块:控制模块31、运算模块32及存储模块33。
控制模块31用以协调并控制运算模块32和存储模块33的工作,以完成深度学习的任务,其包括取指单元(instruction fetch unit,IFU)311及指令译码单元(instructiondecode unit,IDU)312。取指单元311用以获取来自处理装置203的指令,指令译码单元312则将获取的指令进行译码,并将译码结果作为控制信息发送给运算模块32和存储模块33。
运算模块32包括向量运算单元321及矩阵运算单元322。向量运算单元321用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元322负责深度学习算法的核心计算,即矩阵乘及卷积。
存储模块33用来存储或搬运相关数据,包括神经元存储单元(neuron RAM,NRAM)331、权值存储单元(weight RAM,WRAM)332、直接内存访问模块(direct memory access,DMA)333。NRAM 331用以存储输入神经元、输出神经元和计算后的中间结果;WRAM 332则用以存储深度学习网络的卷积核,即权值;DMA 333通过总线34连接DRAM 204,负责计算装置301与DRAM 204间的数据搬运。
基于前述硬件环境,在一个方面中,本披露实施例提供了一种计算装置,根据积分指令来执行积分运算任务。积分运算任务通常可以理解为待积分数据的累加。可以理解,根据具体的应用要求,积分运算任务可能需要提供不同阶段的积分结果,例如对于背景技术中提到的汽车软件中的计数器,可能需要统计不同时间段的计数值。此外,待积分数据的数据量可能非常大。因此,若能充分利用前述硬件环境,挖掘数据的并行处理可能性,则可以加速运算,提升效率。
图4示出根据本披露实施例的计算装置400的示意性结构框图。可以理解,该结构可以视为图3中单个处理核的内部结构细化,也可以视为在多个图3所示处理核基础上联合的功能划分框图。如图4所示,本披露实施例的计算装置400可以用于执行积分运算任务,其可以包括存储电路40、控制电路41和运算电路42,三者之间相互连接以传输各种数据和指令。
控制电路41的功能与图3中的控制模块31类似,其例如也可以包括取指单元(instruction fetch unit,IFU)411及指令译码单元(instruction decode unit,IDU)412。在执行例如计算操作的各种运算操作中,控制电路41可以配置成获取计算指令并对计算指令进行解析以获得运算指令,然后将运算指令发送到运算电路42和存储电路40。计算指令可以是一种形式的硬件指令并且包括一个或多个操作码,而每个操作码可以表示将要由运算电路42执行的一个或多个具体的操作。这些操作可以根据应用场景的不同而包括不同类型的操作,例如可以包括加法操作或乘法操作等算术运算、逻辑运算、比较运算或者查表运算,或者前述各类运算的任意多种组合。相应地,运算指令可以是根据计算指令解析后得到的运算电路内部执行的一个或多个微指令。
进一步,根据应用场景的不同,在解析计算指令后获得的运算指令可以是经控制电路41译码后的运算指令或者可以是未经控制电路41译码的运算指令。当运算指令是未经控制电路41译码的运算指令时,则运算电路42内可以包括相应的译码电路来执行运算指令的译码,以例如得到多个微指令。
运算电路42可以包括主处理电路421和多个从处理电路422。主处理电路和从处理电路之间以及多个从处理电路之间可以通过各种连接相互通信。
主处理电路和从处理电路可以相互配合,由此实现并行运算处理。在这种配置中,主处理电路例如可以用于对输入数据执行前序处理,例如对数据进行拆分,以及从多个从处理电路接收中间结果并执行后续处理,以得到运算指令的最终运算结果。从处理电路例如可以用于根据运算指令,对相应的数据(例如,拆分的数据)并行执行中间运算得到多个中间结果,并将多个中间结果传输回主处理电路。
在不同的应用场景中,多个从处理电路之间的连接方式既可以是通过硬线布置的硬连接方式,也可以是根据例如微指令进行配置的逻辑连接方式,以形成多种从处理电路阵列的拓扑结构。本披露实施例在此方面没有限制。
通过将运算电路42设置成主从结构(例如一主多从结构,或者多主多从结构,本披露在此方面没有限制),对于正向运算的计算指令,可以根据计算指令将数据进行拆分,从而通过多个从处理电路对计算量较大的部分进行并行运算以提高运算速度,节省运算时间,进而降低功耗。
为了支持运算功能,主处理电路和从处理电路可以包括各种计算电路,例如可以包括向量运算单元及矩阵运算单元。向量运算单元用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元负责深度学习算法的核心计算,例如矩阵乘和卷积。
存储电路40用来存储或搬运相关数据。在深度学习中,存储电路例如可用于存储神经元、权值等待运算数据,也可以存储运算结果。存储电路例如可以包括缓存402、寄存器404和直接内存访问模块(Direct Memory Access,DMA)406中的一个或任意组合。直接内存访问模块DMA 406可以用于与片外存储器(未示出)进行数据交互。
上面描述了根据本披露实施例的示例性计算装置,在该计算装置中,主处理电路和从处理电路可以属于同一处理器或芯片的不同模块,也可以属于不同处理器,本披露在此方面没有限制。
在一个实施例中,控制电路41可以配置成例如利用指令译码单元412对积分指令进行解析。该积分指令的操作对象包括待积分数据。积分指令指示对待积分数据进行积分运算。进一步地,在此实施例中,运算电路42可以配置用于根据积分指令,调度相应数量的从处理电路422执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对待积分数据中的对应部分执行积分运算。此处,累加索引用于指示待积分数据中参与积分的数据部分,后面将对此详细描述。
在一些实施例中,为了充分利用计算装置的并行计算资源,运算电路42中的主处理电路421可以配置用于根据积分指令以及从处理电路的处理能力,按照拆分规则,对待积分数据进行拆分。
根据积分指令可以确定要完成的运算量。积分指令中可以指示待积分数据的尺寸、积分的粒度等信息。例如,待积分数据可以是一维、二维或更高维度的数据;积分的粒度可以以数据个数为单位,例如默认可以是1个数据为粒度进行积分,也即每次积分的步长是一个数据。
从处理电路的处理能力代表可用的运算资源,其例如可以包括可用的从处理电路的数量,每个从处理电路一次能够处理的数据量,等等。
由此,基于要完成的运算量和可用运算资源量,主处理电路可以按照拆分规则来拆分待积分数据。
图5示出了根据本披露实施例的运算装置中的运算电路的部分结构示意图,以便通过示出各种数据在运算电路中的分配、传输和处理来描述各种拆分方案。
如图所示,运算电路500(例如图4中的运算电路42)除了包括前面描述的主处理电路510、多个从处理电路520之外,还可以包括第一存储电路530和第二存储电路540。
第一存储电路530可以用于存储多播数据,也即第一存储电路中的数据将通过广播总线传输给多个从处理电路,这些从处理电路接收到相同的数据。可以理解,通过广播总线可以实现广播和多播。多播是指将一份数据传输到多个从处理电路的通信方式;而广播是将一份数据传输到所有从处理电路的通信方式,是多播的一个特例。由于多播和广播都对应一对多的传输方式,本文中未对二者特意区分,广播和多播可以统称为多播,本领域技术人员根据上下文可以明确其含义。第二存储电路540可以用于存储分发数据,也即第二存储电路中的数据将分别传输给不同的从处理电路,每个从处理电路接收到不同的数据。通过分别提供第一存储电路和第二存储电路,可以支持针对待运算的数据以不同传输方式进行传输,从而通过在多个从处理电路之间复用多播数据来降低数据吞吐量。
在一些实施例中,主处理电路510可以进一步用于:将待积分数据确定为多播数据,将为所调度的每个从处理电路分配的累加索引确定为分发数据。进一步地,主处理电路510可以将待积分数据存储在第一存储电路530中,以在运算期间通过广播总线传输给所调度的多个从处理电路;以及将为所调度的每个从处理电路分配的累加索引存储在第二存储电路540中,以供所调度的从处理电路加载对应部分的累加索引进行运算。
可以理解,待积分数据通常数据量较大,因此可以通过拆分待积分数据,经由多轮运算来实现积分运算任务。此外,考虑到可能需要使用不同积分阶段的部分积分值,因此在每轮运算中,可以利用不同的从处理电路来计算不同积分阶段的部分积分值,也即每个从处理电路根据分配的累加索引来对相应的待积分数据部分进行累加。
在一些实施例中,拆分规则可以包括在待积分数据的最低维度上,按照对齐要求进行拆分。虽然多维数据具有多个维度,但是因为存储电路(例如,第一存储电路和第二存储电路)的布局始终是一维的,因此多维数据与存储电路上的存储顺序之间存在对应关系。多维数据通常被分配在连续的存储空间中,也即可以将多维数据进行一维展开,按顺序存储在存储电路上。通常按低维度到高维度的顺序展开,也即低维度优先方式,由此低维度的数据在存储电路上是连续的。
本文中“对齐要求”是指运算过程中例如为了尽量充分利用硬件,例如填满运算器而对数据尺寸提出的要求。在一个示例中,对齐要求例如是64字节,因此可以将待积分数据拆分为64字节大小的积分数据块,从而每个积分数据块可以完全利用所调度的从处理电路。
因此,在一些实施例中,主处理电路可以按照存储维度从低维度到高维度的顺序,将待积分数据拆分成LN个积分数据块,从而可以直接按照存储顺序进行拆分和读取,无需重新调整数据的存储顺序。拆分成的LN个积分数据块可以通过LN轮运算来实现上述积分运算任务,也即在每轮运算中通过广播总线传输一个积分数据块给所调度的多个从处理电路。
主处理电路还可以为所调度的每个从处理电路分配累加索引,以指示每个从处理电路需要累加的数据。
在一些实现中,累加索引可以表示为比特序列,比特序列中的“1”指示对位的积分数据参与积分,“0”指示对位的积分数据不参与积分。
进一步地,在一些实现中,分配给从处理电路的累加索引中值为“1”的比特数按照从处理电路的顺序成阶梯状递增。
图6示出了分配给多个从处理电路的累加索引的示意性图示。
如图所示,假设调度的从处理电路的数量为64,每个从处理电路分配一个累加索引,以计算对应的部分积分值。假设待积分数据的数据类型为INT8,也即8比特表示一个整型数据。每个从处理电路一次可以处理64字节的数据,也即一次可以处理待积分数据中的64个数据。
因此,待积分数据可以按照64字节进行拆分,每个积分数据块包括64个数据。所拆分的积分数据块依次广播给所调度的64个从处理电路,从而每个从处理电路针对该积分数据块计算一个部分积分值,累加的数据部分通过分配的累加索引来指示。
图中示出了分配给64个从处理电路的64个累加索引,每个累加索引可以是1个64比特的比特序列,每1比特指示对位的积分数据是否参与积分。例如,第1个从处理电路的累加索引为100000…0,表示仅累加第1个数据;第2个从处理电路的累加索引为1100000…0,表示累加第1和第2个数据;第3个从处理电路的累加索引为11100000…0,表示累加第1、第2和第3个数据;依次类推,直至第64个从处理电路的累加索引为111111…1,表示累加所有64个数据。从图中可以看出,分配给从处理电路的累加索引中值为“1”的比特数按照从处理电路的顺序成阶梯状递增。由此,64个从处理电路在一轮运算中可以得到64个递增的部分积分值。
当待积分数据超过一次处理量(例如,64字节)时,需要重复多轮上述运算。每轮运算中,各个从处理电路的累加索引可以保持不变。
图7示出了根据本披露实施例的主处理电路和从处理电路的部分结构示意图。在本披露实施例中,基于积分运算任务的需求,每个从处理电路700(例如图5中的从处理电路520)可以包括乘法电路710和第一累加电路720。
在每轮运算中,乘法电路710用于将分配给当前从处理电路的累加索引与当前轮次的积分数据块进行对位乘法并输出乘积结果。
在一些实现中,乘法电路710可以包括多个乘法器711,每个乘法器用于将分配给当前从处理电路的累加索引中的一位和积分数据块中的一个数据进行乘法运算。从图6的累加索引可以看出,当累积索引中的比特指示“1”时,积分数据块中的对位数据要进行累加,当累积索引中的比特指示“0”时,积分数据块中的对位数据不进行累加,因此,可以通过对位乘法来筛选需要累加的数据。可以理解,对于累积索引中的比特指示“0”的乘法器711,可以直接输出0,关闭相应的乘法器,以节省功耗。
在每轮运算中,第一累加电路720可以用于将乘法电路的乘积结果进行累加,得到部分积分值;以及将该部分积分值输出给主处理电路。
在一些实现中,第一累加电路720可以包括加法电路。加法电路用于对多个乘法器的乘积结果执行加法操作,以获得当前轮次的部分积分值。加法电路例如可以包括以多级树状结构方式排列的多级***树压缩器组;或者加法电路可以包括以多级树状结构方式排列的多级加法器组,本披露实施例在此方面没有限制。
当待积分数据拆分成多个积分数据块时,需要在每轮运算中,累加前一轮运算的最大累加索引对应的部分积分值。
在本披露实施例中,基于上述需求,主处理电路750(例如图5中的主处理电路510)可以包括第二累加电路760和寄存器770。
第二累加电路760用于将当前轮次从每个从处理电路700接收到的部分积分值与前一轮次中对应最大累加索引的部分积分值分别进行累加,以更新各个部分积分值。由于每个从处理电路在每轮运算中的累加索引是固定的,也即每轮运算中仅累加当前轮次的积分数据块中的指定个数据,因此,其实质是待积分数据中的局部的部分积分值。通过将当前轮次的部分积分值累加上前一轮次的最大累加索引所对应的部分积分值,多轮循环后,可以得到最终整个待积分数据上的积分值。
寄存器770可以配合第二累加电路760使用,用于保存更新的部分积分值中对应最大累加索引的部分积分值。寄存器770可以保存每轮运算中对应最大累加索引(例如,图6的第64个从处理电路)的部分积分值,以供叠加到下一轮运算的积分结果中。可以理解,寄存器770还可以保存从各个从处理电路接收到的部分积分值,并随着第二累加电路760的累加而对各个部分积分值进行更新。由此,在需要的时候,可以提供多个不同节点的积分值,例如最后的64个积分值。
以上结合图5-图7描述了积分运算任务的拆分方式和运算过程。本领域技术人员可以理解,虽然在图5中将各个处理电路与存储电路示出为分立的模块,但是根据不同的配置,存储电路与处理电路也可以合并成一个模块。例如,第一存储电路530可以与主处理电路510合并在一起,第二存储电路540则可以由多个从处理电路520共享,并为每个从处理电路分配独立的存储区域,加速访问。本披露实施例在此方面没有限制。
本披露实施例还提供了利用前述计算装置执行数据处理的方法。图8示出根据本披露实施例的数据处理方法800的示例性流程图。
如图8所示,在步骤810中,解析积分指令,该积分指令的操作对象包括待积分数据,并且该积分指令指示对待积分数据进行积分运算。该步骤例如可以由图4的控制电路41来执行。
接着,在步骤820中,根据积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对待积分数据中的对应部分执行积分运算。该步骤例如可以由图4的运算电路42来执行。
在一些实施例中,运算电路包括主处理电路、多个从处理电路、第一存储电路和第二存储电路。因此,步骤820可以进一步包括子步骤821,主处理电路根据积分指令以及从处理电路的处理能力,按照拆分规则对待积分数据进行拆分;子步骤822,将待积分数据存储在第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路;以及子步骤823,将为所调度的每个从处理电路分配的累加索引存储在第二存储电路中,以供所调度的从处理电路加载对应部分的累加索引进行运算。
具体地,在子步骤821中,主处理电路可以按照存储维度从低维度到高维度的顺序,将待积分数据拆分成LN个积分数据块,以通过LN轮运算实现积分运算。继而,在子步骤822中,主处理电路在每轮运算中通过广播总线传输一个积分数据块给所调度的多个从处理电路。
步骤820还可以进一步包括子步骤824,从处理电路根据分配的累加索引,针对当前轮次的积分数据块进行相应的积分运算得到部分积分值,该部分积分值返回给主处理电路。具体地,积分运算可以包括对位乘法和累加运算,参见前文描述。
步骤820可以进一步包括子步骤825,主处理电路对从处理电路运算得到的部分积分值进行累加。具体地,主处理电路中的累加电路可以将当前轮次从每个从处理电路接收到的部分积分值与前一轮次中对应最大累加索引的部分积分值分别进行累加,以更新各个部分积分值。主处理电路中的寄存器保存更新的部分积分值中对应最大累加索引的部分积分值。
本领域技术人员可以理解,方法流程图中描述的步骤与前面结合图4-7描述的计算装置的各个电路相对应,因此前面描述的特征同样适用于方法步骤,此处不再重复。
本披露实施例还提供了一种芯片,其可以包括前面结合附图描述的任一实施例的计算装置。进一步地,本披露还提供了一种板卡,该板卡可以包括前述芯片。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个***,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如中央处理器、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款1、一种计算装置,包括控制电路和运算电路,其中:
所述控制电路用于对积分指令进行解析,所述积分指令的操作对象包括待积分数据,所述积分指令指示对所述待积分数据进行积分运算;以及
所述运算电路包括多个从处理电路,并且所述运算电路用于根据所述积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对所述待积分数据中的对应部分执行所述积分运算。
条款2、根据条款1所述的计算装置,其中所述运算电路还包括主处理电路、第一存储电路和第二存储电路,所述主处理电路用于:
根据所述积分指令以及从处理电路的处理能力,按照拆分规则对所述待积分数据进行拆分;
将所述待积分数据存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路;以及
将为所调度的每个从处理电路分配的累加索引存储在所述第二存储电路中,以供所调度的从处理电路加载对应部分的累加索引进行运算。
条款3、根据条款2所述的计算装置,其中所述拆分规则包括在所述待积分数据的最低维度上,按照对齐要求进行拆分。
条款4、根据条款2-3任一所述的计算装置,其中所述主处理电路进一步用于:
按照存储维度从低维度到高维度的顺序,将所述待积分数据拆分成LN个积分数据块,以通过LN轮运算实现所述积分运算,在每轮运算中通过广播总线传输一个积分数据块给所调度的多个从处理电路;以及
为所调度的每个从处理电路分配累加索引,以指示每个从处理电路需要累加的数据。
条款5、根据条款4所述的计算装置,其中所述累加索引表示为比特序列,其中“1”指示对位的积分数据参与积分,“0”指示对位的积分数据不参与积分。
条款6、根据条款5所述的计算装置,其中所述累加索引中值为“1”的比特数按照所述从处理电路的顺序成阶梯状递增。
条款7、根据条款4-6任一所述的计算装置,其中每个所述从处理电路包括乘法电路和累加电路,并且在每轮运算中:
所述乘法电路用于将分配给当前从处理电路的累加索引与当前轮次的积分数据块进行对位乘法并输出乘积结果;
所述累加电路用于将所述乘法电路的乘积结果进行累加,得到部分积分值;以及
将所述部分积分值输出给所述主处理电路。
条款8、根据条款7所述的计算装置,其中所述主处理电路进一步包括:
累加电路,用于将当前轮次从每个所述从处理电路接收到的部分积分值与前一轮次中对应最大累加索引的部分积分值分别进行累加,以更新各个部分积分值;以及
寄存器,用于保存更新的部分积分值中对应最大累加索引的部分积分值。
条款9、一种芯片,包括根据条款1-8任一所述的计算装置。
条款10、一种板卡,包括根据条款9所述的芯片。
条款11、一种由计算装置实施的数据处理方法,所述计算装置包括控制电路和运算电路,所述运算电路包括多个从处理电路,所述方法包括:
所述控制电路对积分指令进行解析,所述积分指令的操作对象包括待积分数据,所述积分指令指示对所述待积分数据进行积分运算;以及
所述运算电路根据所述积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对所述待积分数据中的对应部分执行所述积分运算。
条款12、根据条款11所述的方法,其中所述运算电路还包括主处理电路、第一存储电路和第二存储电路,所述方法进一步包括:
所述主处理电路根据所述积分指令以及从处理电路的处理能力,按照拆分规则对所述待积分数据进行拆分;
将所述待积分数据存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路;以及
将为所调度的每个从处理电路分配的累加索引存储在所述第二存储电路中,以供所调度的从处理电路加载对应部分的累加索引进行运算。
条款13、根据条款12所述的方法,其中所述拆分规则包括在所述待积分数据的最低维度上,按照对齐要求进行拆分。
条款14、根据条款12-13任一所述的方法,其中所述方法还包括:
所述主处理电路按照存储维度从低维度到高维度的顺序,将所述待积分数据拆分成LN个积分数据块,以通过LN轮运算实现所述积分运算,在每轮运算中通过广播总线传输一个积分数据块给所调度的多个从处理电路;以及
为所调度的每个从处理电路分配累加索引,以指示每个从处理电路需要累加的数据。
条款15、根据条款14所述的方法,其中所述累加索引表示为比特序列,其中“1”指示对位的积分数据参与积分,“0”指示对位的积分数据不参与积分。
条款16、根据条款15所述的方法,其中所述累加索引中值为“1”的比特数按照所述从处理电路的顺序成阶梯状递增。
条款17、根据条款14-16任一所述的方法,其中每个所述从处理电路包括乘法电路和累加电路,并且所述方法包括:在每轮运算中,
所述乘法电路将分配给当前从处理电路的累加索引与当前轮次的积分数据块进行对位乘法并输出乘积结果;以及
所述累加电路将所述乘法电路的乘积结果进行累加,得到部分积分值;以及将所述部分积分值输出给所述主处理电路。
条款18、根据条款17所述的方法,所述主处理电路进一步包括累加电路和寄存器,并且所述方法还包括:
所述累加电路将当前轮次从每个所述从处理电路接收到的部分积分值与前一轮次中对应最大累加索引的部分积分值分别进行累加,以更新各个部分积分值;以及
所述寄存器保存更新的部分积分值中对应最大累加索引的部分积分值。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本披露的方法及其核心思想;同时,对于本领域的一般技术人员,依据本披露的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本披露的限制。

Claims (18)

1.一种计算装置,包括控制电路和运算电路,其中:
所述控制电路用于对积分指令进行解析,所述积分指令的操作对象包括待积分数据,所述积分指令指示对所述待积分数据进行积分运算;以及
所述运算电路包括多个从处理电路,并且所述运算电路用于根据所述积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对所述待积分数据中的对应部分执行所述积分运算。
2.根据权利要求1所述的计算装置,其中所述运算电路还包括主处理电路、第一存储电路和第二存储电路,所述主处理电路用于:
根据所述积分指令以及从处理电路的处理能力,按照拆分规则对所述待积分数据进行拆分;
将所述待积分数据存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路;以及
将为所调度的每个从处理电路分配的累加索引存储在所述第二存储电路中,以供所调度的从处理电路加载对应部分的累加索引进行运算。
3.根据权利要求2所述的计算装置,其中所述拆分规则包括在所述待积分数据的最低维度上,按照对齐要求进行拆分。
4.根据权利要求2-3任一所述的计算装置,其中所述主处理电路进一步用于:
按照存储维度从低维度到高维度的顺序,将所述待积分数据拆分成LN个积分数据块,以通过LN轮运算实现所述积分运算,在每轮运算中通过广播总线传输一个积分数据块给所调度的多个从处理电路;以及
为所调度的每个从处理电路分配累加索引,以指示每个从处理电路需要累加的数据。
5.根据权利要求4所述的计算装置,其中所述累加索引表示为比特序列,其中“1”指示对位的积分数据参与积分,“0”指示对位的积分数据不参与积分。
6.根据权利要求5所述的计算装置,其中所述累加索引中值为“1”的比特数按照所述从处理电路的顺序成阶梯状递增。
7.根据权利要求4-6任一所述的计算装置,其中每个所述从处理电路包括乘法电路和累加电路,并且在每轮运算中:
所述乘法电路用于将分配给当前从处理电路的累加索引与当前轮次的积分数据块进行对位乘法并输出乘积结果;
所述累加电路用于将所述乘法电路的乘积结果进行累加,得到部分积分值;以及
将所述部分积分值输出给所述主处理电路。
8.根据权利要求7所述的计算装置,其中所述主处理电路进一步包括:
累加电路,用于将当前轮次从每个所述从处理电路接收到的部分积分值与前一轮次中对应最大累加索引的部分积分值分别进行累加,以更新各个部分积分值;以及
寄存器,用于保存更新的部分积分值中对应最大累加索引的部分积分值。
9.一种芯片,包括根据权利要求1-8任一所述的计算装置。
10.一种板卡,包括根据权利要求9所述的芯片。
11.一种由计算装置实施的数据处理方法,所述计算装置包括控制电路和运算电路,所述运算电路包括多个从处理电路,所述方法包括:
所述控制电路对积分指令进行解析,所述积分指令的操作对象包括待积分数据,所述积分指令指示对所述待积分数据进行积分运算;以及
所述运算电路根据所述积分指令,调度相应数量的从处理电路执行积分运算任务,其中所调度的每个从处理电路根据所分配的累加索引,针对所述待积分数据中的对应部分执行所述积分运算。
12.根据权利要求11所述的方法,其中所述运算电路还包括主处理电路、第一存储电路和第二存储电路,所述方法进一步包括:
所述主处理电路根据所述积分指令以及从处理电路的处理能力,按照拆分规则对所述待积分数据进行拆分;
将所述待积分数据存储在所述第一存储电路中,以在运算期间通过广播总线传输给所调度的多个从处理电路;以及
将为所调度的每个从处理电路分配的累加索引存储在所述第二存储电路中,以供所调度的从处理电路加载对应部分的累加索引进行运算。
13.根据权利要求12所述的方法,其中所述拆分规则包括在所述待积分数据的最低维度上,按照对齐要求进行拆分。
14.根据权利要求12-13任一所述的方法,其中所述方法还包括:
所述主处理电路按照存储维度从低维度到高维度的顺序,将所述待积分数据拆分成LN个积分数据块,以通过LN轮运算实现所述积分运算,在每轮运算中通过广播总线传输一个积分数据块给所调度的多个从处理电路;以及
为所调度的每个从处理电路分配累加索引,以指示每个从处理电路需要累加的数据。
15.根据权利要求14所述的方法,其中所述累加索引表示为比特序列,其中“1”指示对位的积分数据参与积分,“0”指示对位的积分数据不参与积分。
16.根据权利要求15所述的方法,其中所述累加索引中值为“1”的比特数按照所述从处理电路的顺序成阶梯状递增。
17.根据权利要求14-16任一所述的方法,其中每个所述从处理电路包括乘法电路和累加电路,并且所述方法包括:在每轮运算中,
所述乘法电路将分配给当前从处理电路的累加索引与当前轮次的积分数据块进行对位乘法并输出乘积结果;以及
所述累加电路将所述乘法电路的乘积结果进行累加,得到部分积分值;以及将所述部分积分值输出给所述主处理电路。
18.根据权利要求17所述的方法,所述主处理电路进一步包括累加电路和寄存器,并且所述方法还包括:
所述累加电路将当前轮次从每个所述从处理电路接收到的部分积分值与前一轮次中对应最大累加索引的部分积分值分别进行累加,以更新各个部分积分值;以及
所述寄存器保存更新的部分积分值中对应最大累加索引的部分积分值。
CN202110448121.2A 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品 Pending CN115237371A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110448121.2A CN115237371A (zh) 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110448121.2A CN115237371A (zh) 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品

Publications (1)

Publication Number Publication Date
CN115237371A true CN115237371A (zh) 2022-10-25

Family

ID=83666802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110448121.2A Pending CN115237371A (zh) 2021-04-25 2021-04-25 计算装置、数据处理方法及相关产品

Country Status (1)

Country Link
CN (1) CN115237371A (zh)

Similar Documents

Publication Publication Date Title
CN111047022B (zh) 一种计算装置及相关产品
CN114003198B (zh) 内积处理部件、任意精度计算设备、方法及可读存储介质
CN109711540B (zh) 一种计算装置及板卡
CN111353124A (zh) 运算方法、装置、计算机设备和存储介质
CN111047021A (zh) 一种计算装置及相关产品
CN112801276B (zh) 数据处理方法、处理器及电子设备
CN115237371A (zh) 计算装置、数据处理方法及相关产品
CN111382856B (zh) 数据处理装置、方法、芯片及电子设备
CN111382852B (zh) 数据处理装置、方法、芯片及电子设备
CN113867799A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113867800A (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN113791996B (zh) 集成电路装置、电子设备、板卡和计算方法
CN115237370A (zh) 计算装置、数据处理方法及相关产品
CN113742266B (zh) 集成电路装置、电子设备、板卡和计算方法
CN115237373A (zh) 计算装置、数据处理方法及相关产品
WO2022001496A1 (zh) 计算装置、集成电路芯片、板卡、电子设备和计算方法
CN114692845A (zh) 数据处理装置、数据处理方法及相关产品
CN114691083A (zh) 矩阵乘法电路、方法及相关产品
CN113746471A (zh) 运算电路、芯片和板卡
CN114692846A (zh) 数据处理装置、数据处理方法及相关产品
CN114647442A (zh) 根据指令集运行的设备
CN115438777A (zh) 对神经元数据执行Winograd卷积正变换的装置
CN114692074A (zh) 矩阵乘法电路、方法及相关产品
CN114692847A (zh) 数据处理电路、数据处理方法及相关产品
CN113934678A (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