CN115495157A - 分组运算装置、方法、集成电路芯片、计算装置和板卡 - Google Patents

分组运算装置、方法、集成电路芯片、计算装置和板卡 Download PDF

Info

Publication number
CN115495157A
CN115495157A CN202110679088.4A CN202110679088A CN115495157A CN 115495157 A CN115495157 A CN 115495157A CN 202110679088 A CN202110679088 A CN 202110679088A CN 115495157 A CN115495157 A CN 115495157A
Authority
CN
China
Prior art keywords
data
input data
processing unit
instruction
processing units
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
CN202110679088.4A
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 CN202110679088.4A priority Critical patent/CN115495157A/zh
Publication of CN115495157A publication Critical patent/CN115495157A/zh
Pending legal-status Critical Current

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本公开涉及一种分组运算装置、方法、集成电路芯片、计算装置和板卡,该计算装置包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与计算装置和其他处理装置连接,用于存储该计算装置和其他处理装置的数据。本公开的方案可以有效避免瞬时功耗过大的问题,提高分组运算的运算算力。

Description

分组运算装置、方法、集成电路芯片、计算装置和板卡
技术领域
本公开一般地涉及并行计算领域。更具体地,本公开涉及分组运算装置、方法、集成电路芯片、计算装置和板卡。
背景技术
已知在并行计算的技术中,以分形结构组织的运算器阵列及其所完成的计算任务被称为分形计算(或称分组运算)。目前许多处理器的架构都采用分形计算的形式实现,因为它们都是将简单的基本运算单元以特定方式组织起来,最终达到并行计算的效果。然而,目前处理器的架构在分组运算时的执行效率并不高,一些架构中的分组运算还存在瞬时功耗大的问题,从而容易引起硬件故障。此外,目前的处理器架构在涉及运算的传输方面效率也较低,有待于进一步的提升。
发明内容
为了至少部分地解决背景技术中提到的技术问题,本公开的方案提供了一种分组运算装置及其方法、包括该分组运算装置的集成电路芯片、计算装置和板卡。
在一个方面中,本公开提供一种分组运算装置,包括:第一处理单元,其配置用于根据预设传输方式来传输指令和输入数据;多个第二处理单元,其配置用于:接收来自于所述第一处理单元的指令和输入数据;以及根据接收到的所述指令和输入数据来进行分组运算,以获得分组运算结果。
在另一方面中,本公开提供一种分组运算方法,包括:令第一处理单元根据预设传输方式来传输指令和输入数据;以及令第二处理单元执行:接收来自于所述第一处理单元的指令和输入数据;以及根据接收到的所述指令和输入数据来进行分组运算,以获得分组运算结果。
在又一方面中,本公开提供一种集成电路芯片,其包括所述分组运算装置。在另一个实施例中,本公开的分组运算装置可以构成一个独立的集成电路芯片。
在又一方面中,本公开提供一种计算装置,其包括上述分组运算装置或上述集成电路芯片。
在又一方面中,本公开提供一种板卡,其包括上述计算装置。
利用本公开的分组运算装置、相应的运算方法、集成电路芯片、计算装置和板卡,可以通过预设传输方式传输指令和输入数据来进行分组运算,从而能够有效避免电阻压降(也即瞬时功耗较大)问题,提高分组运算的运算算力。进一步地,本公开还通过数据分发模式控制输入数据的分发,从而提高了运算中的传输效率并且更好地实现快速分组运算。由此,本公开的分组运算装置适用灵活,可以广泛应用于各种加速运算。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本公开实施例的板卡的结构图;
图2是示出根据本公开实施例的集成电路装置的结构图;
图3是示出根据本公开实施例的单核计算装置的内部结构示意图;
图4是示出根据本公开实施例的多核计算装置的内部结构示意图;
图5是示出根据本公开实施例的处理器核的内部结构示意图;
图6是示出根据本公开实施例的分组运算装置的示意性框图;
图7a-7b是示出根据本公开实施例的串行、并行传输指令或输入数据的示意性框图;
图8是示出根据本公开实施例的分组运算装置的另一示意性框图;
图9是示出根据本公开实施例的分组运算装置的又一示意性框图;以及
图10是示出根据本公开实施例的分组运算方法的示意性流程图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,本公开的权利要求、说明书及附图中可能使用的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本公开的具体实施方式。
图1示出根据本公开实施例的一种板卡100的结构示意图。可以理解的是图1所示结构和组成仅仅是一种示例,其并不用于在任何方面对本公开的方案进行限制。
如图1所示,板卡100包括芯片101,其可以是一种系统级芯片(System on Chip,SoC),也即本公开上下文中所描述的片上系统。在一个实施场景中,其可以集成有一个或多个组合处理装置。前述组合处理装置可以是一种人工智能运算单元,用以支持各类深度学习和机器学习算法,满足计算机视觉、语音、自然语言处理、数据挖掘等领域复杂场景下的智能处理需求,特别是深度学习技术大量应用在云端智能领域。云端智能应用的一个显著特点是输入数据量大,对平台的存储能力和计算能力有很高的要求,而本实施例的板卡100适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
进一步如图中所示,芯片101通过对外接口装置102与外部设备103相连接。根据不同的应用场景,外部设备103例如可以是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备103通过对外接口装置102传递至芯片101。芯片101的计算结果可以经由对外接口装置102传送回外部设备103。根据不同的应用场景,对外接口装置102可以具有不同的接口形式,例如PCIe接口等。
板卡100还可以包括用于存储数据的存储器件104,其包括一个或多个存储单元105。存储器件104通过总线与控制器件106和芯片101进行连接和数据传输。板卡100中的控制器件106可以配置用于对芯片101的状态进行调控。为此,在一个应用场景中,控制器件106可以包括单片机(Micro Controller Unit,MCU)。
图2是示出根据上述实施例的芯片101中的组合处理装置的结构图。如图2中所示,组合处理装置200可以包括计算装置201、接口装置202、处理装置203和动态随机存取存储器(Dynamic Random Access Memory,DRAM)DRAM 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整合共同考虑时,二者视为形成异构多核结构。
DRAM 204用以存储待处理的数据,为DDR内存,大小通常为16G或更大,用于保存计算装置201和/或处理装置203的数据。
图3示出了计算装置201为单核的内部结构示意图。单核计算装置301用以处理计算机视觉、语音、自然语言、数据挖掘等输入数据,单核计算装置301包括三大模块:控制模块31、运算模块32及存储模块33。控制模块31用以协调并控制运算模块32和存储模块33的工作,以完成深度学习的任务,其包括取指单元(Instruction Fetch Unit,IFU)311及指令译码单元(Instruction Decode 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示出了计算装置201为多核的内部结构示意图。多核计算装置41采用分层结构设计,多核计算装置41作为一个片上系统,其包括根据本公开的至少一个集群(cluster),每个集群又包括多个处理器核。换言之,多核计算装置41是以片上系统-集群-处理器核的层次所构成的。以片上系统的层级来看,如图4所示,多核计算装置41包括外部存储控制器401、外设通信模块402、片上互联模块403、同步模块404以及多个集群405。
外部存储控制器401可以有多个(如图中示例性地示出2个),其用以响应处理器核发出的访问请求,访问外部存储设备,也即本公开上下文中的片外存储器(例如图2中的DRAM 204),从而自片外读取数据或是将数据写入。外设通信模块402用以通过接口装置202接收来自处理装置203的控制信号,启动计算装置201执行任务。片上互联模块403将外部存储控制器401、外设通信模块402及多个集群405连接起来,用以在各个模块间传输数据和控制信号。同步模块404是一种全局同步屏障控制器(Global Barrier Controller,GBC),用以协调各集群的工作进度,确保信息的同步。本公开的多个集群405是多核计算装置41的计算核心。尽管在图4中示例性地示出4个集群,然而,随着硬件的发展,本公开的多核计算装置41还可以包括8个、16个、64个、甚至更多的集群405。在一个应用场景中,集群405可以用于高效地执行深度学习算法。
以集群的层级来看,如图4所示,每个集群405可以包括多个处理器核(IPU core)406及一个存储核(MEM core)407,其例如可以包括本公开上下文所描述的高速缓冲存储器(例如LLC)。
处理器核406在图中示例性地示出为4个,本公开不限制处理器核406的数量,并且其内部架构如图5所示。每个处理器核406类似于图3的单核计算装置301,并且同样可以包括三个模块:控制模块51、运算模块52和存储模块53。控制模块51、运算模块52及存储模块53的功用及结构大致与控制模块31、运算模块32及存储模块33相同,此处不再赘述。需特别说明的是,存储模块53可以包括输入/输出直接内存访问模块(Input/Output DirectMemory Access,IODMA)533、搬运直接内存访问模块(Move Direct Memory Access,MVDMA)534。IODMA 533通过广播总线409控制NRAM 531/WRAM 532与DRAM 204的访存;MVDMA534则用以控制NRAM 531/WRAM 532与存储单元(SRAM)408的访存。
回到图4,存储核407主要用以存储和通信,即存储处理器核406间的共享数据或中间结果、以及执行集群405与DRAM 204之间的通信、集群405间彼此的通信、处理器核406间彼此的通信等。在其他实施例中,存储核407可以具有标量运算的能力,用以执行标量运算。
存储核407可以包括静态随机存取存储器(Static Random-Access Memory,SRAM)408、广播总线409、集群直接内存访问模块(Cluster Direct Memory Access,CDMA)410及全局直接内存访问模块(Global Direct Memory Access,GDMA)411。在一个实施场景中,SRAM 408可以承担高性能数据中转站的角色。由此,在同一个集群405内不同处理器核406之间所复用的数据不需要通过处理器核406各自向DRAM 204获得,而是经SRAM 408在处理器核406间中转。进一步,存储核407仅需要将复用的数据从SRAM 408迅速分发给多个处理器核406即可,从而可以提高核间通信效率,并显著减少片上片外的输入/输出访问。
广播总线409、CDMA 410及GDMA 411则分别用来执行处理器核406间的通信、集群405间的通信和集群405与DRAM 204的数据传输。以下将分别说明。
广播总线409用以完成集群405内各处理器核406间的高速通信,此实施例的广播总线409支持核间通信方式包括单播、多播与广播。单播是指点对点(例如单一处理器核至单一处理器核)的数据传输,多播是将一份数据从SRAM 408传输到特定几个处理器核406的通信方式,而广播则是将一份数据从SRAM 408传输到所有处理器核406的通信方式,属于多播的一种特例。
CDMA 410用以控制在同一个计算装置201内不同集群405间的SRAM 408的访存。GDMA 411与外部存储控制器401协同,用以控制集群405的SRAM 408到DRAM 204的访存,或是将数据自DRAM 204读取至SRAM 408中。从前述可知,DRAM 204与NRAM 431或WRAM 432间的通信可以经由2种方式来实现。第一种方式是通过IODAM 433直接和DRAM 204与NRAM 431或WRAM 432通信;第二种方式是先经由GDMA 411使得数据在DRAM 204与SRAM 408间传输,再经过MVDMA534使得数据在SRAM 408与NRAM 431或WRAM 432间传输。尽管第二种方式可能需要更多的元件参与且数据流较长,但实际上在部分实施例中,第二种方式的带宽远大于第一种方式,因此通过第二种方式来执行DRAM 204与NRAM 431或WRAM 432间的通信可能更为有效。可以理解的是,这里所描述的数据传输方式仅仅是示例性的,并且本领域技术人员根据本公开的教导,也可以根据硬件的具体布置来灵活地选择和适用各种数据传输方式。
在其他的实施例中,GDMA 411的功能和IODMA 533的功能可以整合在同一部件中。尽管本公开为了方便描述,将GDMA 411和IODMA 533视为不同的部件,然而对于本领域技术人员来说,只要其实现的功能以及达到的技术效果与本公开类似,即属于本公开的保护范围。进一步地,GDMA 411的功能、IODMA 533的功能、CDMA 410的功能、MVDMA 534的功能也可以由同一部件来实现。
以上结合图1-图5对本公开的硬件架构及其内部结构进行了详细的描述。可以理解的是上述描述仅仅是示例性的而非限制性的。根据不同的应用场景和硬件规格,本领域技术人员也可以对本公开的板卡及其内部结构进行改变,而这些改变依然落入本公开的保护范围内。下面将对本公开的用于分组运算装置的方案进行详细地描述。
图6是示出根据本公开实施例的分组运算装置600的示意性框图。如图6中所示,所述分组运算装置600可以包括第一处理单元601和多个第二处理单元602。第一处理单元601可以用于根据预设传输方式将指令和输入数据传输至多个第二处理单元。响应于接收到指令和输入数据,启动多个第二处理单元602可以对接收到的指令和输入数据进行分组运算。
在一些实施例中,上述预设传输方式可以包括指令串行且数据并行、指令并行且数据串行、指令并行且数据并行或者指令串行且数据串行。可以理解,前述串行指的是指令或者输入数据可以由第一处理单元601传输给一个第二处理单元602,并从该一个第二处理单元602开始在多个第二处理单元602之间按序传递(例如图7a所示)。例如一个第二处理单元602接受到第一处理单元601发送的指令或输入数据后,将指令或输入数据复制一份使用,而指令或输入数据可以继续传输给下一个第二处理单元602。前述并行指的是指令或输入数据可以由第一处理单元601并行传输给多个第二处理单元602(例如图7b所示)。
应当理解,在以上操作中,第一处理单元和第二处理单元之间存在指令和输入数据的传输。在一个实施例中,当预设传输方式为指令串行且数据并行时,第一处理单元将指令串行传输给多个第二处理单元,并且将输入数据并行传输给多个第二处理单元。具体而言,第一处理单元将指令发送到一个第二处理单元,并从该一个第二处理单元开始在多个第二处理单元之间按序传递,并且第一处理单元将输入数据并行传输给多个第二处理单元。类似地,当预设传输方式为指令并行且数据串行时,第一处理单元将指令并行传输给多个第二处理单元,并且将输入数据串行传输给多个第二处理单元。也即,第一处理单元将指令并行传输给多个第二处理单元,并且将输入数据传输给一个第二处理单元,并从该一个第二处理单元开始在多个第二处理单元之间按序传递。在本公开的前述两种传输方式下,可以有效的避免该运算装置的瞬时功耗过大的问题。
在一些实施例中,上述预设传输方式还可以为指令并行且数据并行时,第一处理单元将指令并行传输给多个第二处理单元,并且将输入数据并行传输给多个第二处理单元。该实施例可以提高运算速度,从而使得运算效率较高。此外,预设传输方式也可以是指令串行且数据串行时,第一处理单元将指令串行传输给多个第二处理单元,并且将输入数据串行传输给多个第二处理单元,从而可以使得多个第二处理单元依次启动,进而可以有效的避免该运算装置的瞬时功耗过大的问题。该实施例中相对于上述的串行和并行结合的方式,瞬时功耗的增长会更加缓慢。
进一步地,当第二处理单元同时接收到指令和输入数据时,多个第二处理单元中的每个可以用于基于其各自接收到的指令和输入数据进行分组运算。需要理解的是,在一些场景中,为了避免瞬时功耗过大的问题,也可以控制每个第二处理单元进行运算的时间。换句话说,可以令指令和输入数据不同时到达每个第二处理单元。根据本公开的实施例,上述第一处理单元可以用于将前述多个第二处理单元获得的运算结果拼接在一起,获得拼接后的运算结果。
在该实施例中,当多个第二处理单元进行分组运算时,多个第二处理单元在运算完成后分别获得运算结果。为了提高数据传输效率,第一处理单元可以通过指令控制多个第二处理单元的运算结果拼接在一起,并通过输出通路返回给第一处理单元。为此,可以设置输入数据的输入通路的位宽小于拼接结果的输出通路的位宽,如此可以根据输出通路的位宽来对相应数量的运算结果进行拼接,并返回第一处理单元。
在一些实施例中,上述第一处理单元601也可以根据不同的数据分发模式,将指令和输入数据发送给不同数量的指定的第二处理单元602。而接收到同一指令和输入数据的多个第二处理单元602可以共享该指令和输入数据,并且通过指令对自身存储的本地数据和该输入数据进行运算。另外,上述共享指令和输入数据的第二处理单元602可以作为一组,但该一组第二处理单元602所调用的与该输入数据共同参与运算的本地数据可以相同或不同。
根据本公开的实施例,上述数据分发模式可以根据存储本地数据的多个第二处理单元的分组信息来确定,并且所述数据分发模式可以包括广播模式、多播模式和单播模式中的一种或者多种模式。
在该实施例中,对于数据分发模式,可以根据存储本地数据的多个第二处理单元的分组来确定。而多个第二处理单元的分组可以根据预先设定的分组运算所需输入数据和本地数据来确定的,从而第二处理单元的分组可以发生变化。因此,数据分发模式可以根据第二处理单元分组的变化来调整并且可以包括广播模式、多播模式和单播模式。
下面以三个示例对上述三种数据分发模式进行详细说明,其中每种数据分发模式可以视为一种并行传输方式。
根据第一个示例,在输入数据的数据分发模式为广播模式时,第一处理单元可以将输入数据发送给多个第二处理单元中的每个。
在该示例中,广播模式对应的分组信息可以是全部第二处理单元作为一组来接收输入数据,因此第一处理单元可以将输入数据发送给所有第二处理单元。
根据第二个示例,在输入数据的数据分发模式为多播模式时,所述第一处理单元可以将输入数据发送给多播模式指示的多个第二处理单元中的一部分第二处理单元。
在该示例中,多播模式对应的分组信息是至少两个第二处理单元且非全部第二处理单元作为一组来接收输入数据,因此第一处理单元可以将输入数据发送给该一组第二处理单元。此外,例如当前输入数据发送给一组第二处理单元时,而下一个输入数据可以发给该一组第二处理单元或另一组第二处理单元。
根据第三个示例,在输入数据的数据分发模式为单播模式时,第一处理单元可以将输入数据发送给多播模式指示的多个第二处理单元中的一个。
在该示例中,单播模式对应的分组信息是一个第二处理单元作为一组来接收输入数据,因此第一处理单元可以将输入数据发送给该一个第二处理单元。此外,例如当前输入数据发送给一个第二处理单元时,而下一个输入数据可以发给该一个第二处理单元或另一个第二处理单元。
根据本公开的实施例,上述第一处理单元601还可以包括寻址模块。前述寻址模块可以用于根据数据分发模式指示的第二处理单元602的地址寻址到待接收输入数据的第二处理单元602。
在该实施例中,为了第一处理单元能够找到需要接收输入数据的第二处理单元,第一处理单元可以包括寻址模块,并且数据分发模式可以指示待接收输入数据的第二处理单元的地址。因此,寻址模块可以根据输入数据的数据分发模式寻址到待接收该输入数据的第二处理单元。
此外,为了更好地实现第一处理单元和第二处理单元之间的指令和输入数据传输,并且为了更好地完成数据运算,第一处理单元和多个第二处理单元可以被布置为H型结构、树状结构或阵列机结构中的一种或者多种结构。
根据本公开的实施例,上述输入数据可以是神经元数据或者权值数据;当输入数据是神经元数据时,上述本地数据是权值数据;当输入数据是权值数据时,则本地数据是神经元数据。
在该实施例中,在本公开的分组运算装置例如执行神经网络相关运算时,分组运算可以是针对卷积的分组运算。在此情况下,参与运算的数据可以是神经元和权值。因此,当输入数据是神经元时,本地数据可以是权值;当输入数据是权值时,本地数据可以是神经元。
参照图8,图8是示出根据本公开实施例的分组运算装置800的另一示意性框图。图8中所示的分组运算装置800与图6中所示的分组运算装置600的区别仅在于,所述分组运算装置800还可以包括数据控制单元801。该数据控制单元801可以用于获取数据分发模式并向第一处理单元601分笔传输输入数据,并且为每笔输入数据配置数据分发模式。
在该实施例中,数据控制单元可以通过解析外部指令来获得数据分发模式。并且数据控制单元可以直接接收分笔输入的输入数据并向第一处理单元分笔传输输入数据。或者数据控制单元还可以通过解析外部指令来获得数据切分信息,并根据该数据切分信息将接收的数据进行切分而形成多笔输入数据,以向第一处理单元分笔传输输入数据。并且,数据控制单元可以先为每笔输入数据配置上述数据分发模式,然后将配置有数据分发模式的每笔输入数据传输给第一处理单元。进一步地,数据控制单元还可以向第一处理单元传输进行分组运算的指令。
因此,通过单个外部指令,可以实现单笔输入数据的各种数据分发模式,即可以实现任意数量的第二处理单元共享该单笔输入数据来参与分组运算。
进一步地,参照图9,图9是示出根据本公开实施例的分组运算装置900的又一示意性框图。图9中所示的分组运算装置900与图8中所示的分组运算装置800的区别仅在于,该数据控制单元801包括控制器单元901和输入输出单元902。前述控制器单元901用于获取数据分发模式,并向输入输出单元902发送该数据分发模式;前述输入输出单元902用于向第一处理单元601分笔传输输入数据,并为每笔输入数据配置数据分发模式。
在一个实施例中,控制器单元可以通过解析外部指令来获得输入数据的数据分发模式,并且将数据分发模式发送给输入输出单元。输入输出单元可以直接接收分笔输入的输入数据(例如从DMA单元(直接存储器存取单元,未示出)或其它装置获得的分笔输入数据),并向第一处理单元分笔传输输入数据。此外,输入输出单元可以先为每笔输入数据配置上述数据分发模式,然后将配置有数据分发模式的每笔输入数据传输给第一处理单元。进一步地,输入输出单元还可以向第一处理单元传输进行分组运算的指令。
在另一个实施例中,控制器单元可以通过解析外部指令来获得输入数据的数据分发模式和数据切分信息,并且将数据分发模式和数据切分信息发送给输入输出单元。该输入输出单元可以根据该数据切分信息将接收的数据(例如从DMA单元(直接存储器存取单元,未示出)或其它装置获得的数据)进行切分而形成多笔输入数据,以向第一处理单元分笔传输输入数据。并且,输入输出单元可以先为每笔输入数据配置上述数据分发模式,然后将配置有数据分发模式的每笔输入数据传输给第一处理单元。
在当前一笔输入数据的数据分发模式为广播模式时,待接收当前一笔输入数据的第二处理单元是所有第二处理单元,第一处理单元可以例如利用寻址模块将当前一笔输入数据发送给所有第二处理单元。在当前一笔输入数据的数据分发模式为多播模式时,待接收当前一笔输入数据的第二处理单元是由至少两个且非全部第二处理单元构成的一组第二处理单元,第一处理单元可以例如利用寻址模块将当前一笔输入数据发送给该一组第二处理单元。此外,例如当前一笔输入数据发送给一组第二处理单元时,而下一笔输入数据可以发给该一组第二处理单元或另一组第二处理单元。在当前一笔输入数据的数据分发模式为单播模式时,待接收当前一笔输入数据的第二处理单元是一个第二处理单元,第一处理单元可以例如利用寻址模块将当前一笔输入数据发送给该一个第二处理单元。此外,例如当前一笔输入数据发送给一个第二处理单元时,而下一笔输入数据可以发给该一个第二处理单元或另一个第二处理单元。
此外,当多个第二处理单元进行分组运算时,多个第二处理单元在运算完成后分别获得运算结果。第一处理单元可以通过指令将多个第二处理单元的运算结果拼接在一起,并返回给第一处理单元。而第一处理单元可以根据需要将拼接的结果利用输出通路通过输入输出单元输出到其它任何需要该结果的装置或存储单元(例如DMA单元);或者第一处理单元可以先将拼接的结果拆分回多个原运算结果,然后将多个原运算结果根据需要利用输出通路通过输入输出单元输出到其它任何需要该结果的装置或存储单元(例如DMA单元);又或者第一处理单元可以先将拼接的结果拆分回多个原运算结果,然后对多个原运算结果进行融合计算,以获得希望获得的中间结果或最终结果,并将该中间结果或最终结果利用输出通路通过输入输出单元输出到其它任何需要该结果的装置或存储单元(例如DMA单元)。
本公开还提供一种分组运算方法。参照图10,图10是示出根据本公开实施例的分组运算方法1000的流程图。如图10中所示,可以理解的是,此处分组运算方法所使用的分组运算装置即前面结合图6-图9详细描述的分组运算装置,因此在前关于该分组运算装置及其内部组成、功能和操作的描述也同样适用于此处的描述。
如图所示,在步骤S1001中,令第一处理单元根据预设传输方式来传输指令和输入数据。基于第一处理单元传输的前述指令和输入数据,在步骤S1002中,令第二处理单元执行接收来自于第一处理单元的指令和输入数据以及根据接收到的指令和输入数据来进行分组运算,以获得分组运算结果。
在一些实施例中,在上述步骤S1001之前,还可以包括利用分组运算装置的数据控制单元,获取数据分发模式并向分组运算装置的第一处理单元分笔传输输入数据,并且为每笔输入数据配置数据分发模式。
根据本公开的实施例,预设传输方式可以包括指令串行且数据并行、指令并行且数据串行、指令并行且数据并行或者指令串行且数据串。当预设传输方式为指令串行且数据并行时,第一处理单元将指令串行传输给多个第二处理单元,并且将输入数据并行传输给多个第二处理单元。当预设传输方式为指令并行且数据串行时,第一处理单元将指令并行传输给多个第二处理单元,并且将输入数据串行传输给多个第二处理单元。
根据本公开的实施例,当预设传输方式为指令并行且数据并行时,第一处理单元将指令并行传输给多个第二处理单元,并且将输入数据并行传输给多个第二处理单元。当预设传输方式为指令串行且数据串行时,第一处理单元将指令串行传输给多个第二处理单元,并且将输入数据串行传输给多个第二处理单元。
根据本公开的实施例,可以根据存储本地数据的多个第二处理单元的分组信息来确定数据分发模式,并且所述数据分发模式可以包括广播模式、多播模式和单播模式中的一种或者多种模式。
下面以三个示例对上述三种数据分发模式进行详细说明。
在输入数据的数据分发模式为广播模式时,可以利用第一处理单元将输入数据发送给多个第二处理单元中的每个。
在输入数据的数据分发模式为多播模式时,可以利用第一处理单元将输入数据发送给多播模式指示的多个第二处理单元中的一部分第二处理单元。
在输入数据的数据分发模式为单播模式时,可以利用第一处理单元将输入数据发送给多播模式指示的多个第二处理单元中的一个。
根据本公开的实施例,可以利用第一处理单元所包括的寻址模块,根据数据分发模式指示的第二处理单元的地址寻址到待接收输入数据的第二处理单元。
根据本公开的实施例,还可以利用第一处理单元将多个第二处理单元获得的运算结果拼接在一起,获得拼接后的运算结果。
根据本公开的实施例,可以将第一处理单元和多个第二处理单元布置为H型结构、树状结构或阵列机结构中的一种或者多种结构。
根据本公开的实施例,输入数据可以是神经元或者权值;当输入数据是神经元时,本地数据是权值;当输入数据是权值时,本地数据是神经元。
根据本公开的实施例,可以利用数据控制单元所包括的控制器单元获取数据分发模式,并向数据控制单元所包括的输入输出单元发送数据分发模式;并且利用输入输出单元向第一处理单元分笔传输输入数据,并为每笔输入数据配置数据分发模式。
结合以上根据图10所述的内容可知,在当前一笔输入数据的数据分发模式为广播模式时,待接收当前一笔输入数据的第二处理单元是所有第二处理单元,可以利用第一处理单元的例如寻址模块将当前一笔输入数据发送给所有第二处理单元。在当前一笔输入数据的数据分发模式为多播模式时,待接收当前一笔输入数据的第二处理单元是由至少两个且非全部第二处理单元构成的一组第二处理单元,可以利用第一处理单元的例如寻址模块将当前一笔输入数据发送给该一组第二处理单元。在当前一笔输入数据的数据分发模式为单播模式时,待接收当前一笔输入数据的第二处理单元是一个第二处理单元,可以利用第一处理单元的例如寻址模块将当前一笔输入数据发送给该一个第二处理单元。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在一些实施例里,本公开还公开了一种电子设备或装置,其包括了上述板卡。根据不同的应用场景,电子设备或装置可以包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所公开的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述电路的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个电路或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或电路的间接耦合或通信连接,可以是电性、光学、声学、磁性或其它的形式。
所述作为分离部件说明的电路可以是或者也可以不是物理上分开的,作为电路显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能电路可以集成在一个处理单元中,也可以是各个电路单独物理存在,也可以两个或两个以上电路集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,当本公开的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(“ROM”,Read-OnlyMemory)、随机存取存储器(“RAM”,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
依据以下条款可更好地理解前述内容:
条款A1,一种分组运算装置,包括:第一处理单元,其配置用于根据预设传输方式来传输指令和输入数据;多个第二处理单元,其配置用于:接收来自于所述第一处理单元的指令和输入数据;以及根据接收到的所述指令和输入数据来进行分组运算,以获得分组运算结果。
条款A2,根据条款A1所述的分组运算装置,其中,在所述预设传输方式为指令串行且数据并行时,所述第一处理单元将所述指令串行传输给所述多个第二处理单元,并且将所述输入数据并行传输给所述多个第二处理单元。
条款A3,根据条款A1所述的分组运算装置,其中,在所述预设传输方式为指令并行且数据串行时,所述第一处理单元将所述指令并行传输给所述多个第二处理单元,并且将所述输入数据串行传输给所述多个第二处理单元。
条款A4,根据条款A1所述的分组运算装置,其中,在所述预设传输方式为指令并行且数据并行时,所述第一处理单元将所述指令并行传输给所述多个第二处理单元,并且将所述输入数据并行传输给所述多个第二处理单元。
条款A5,根据条款A1所述的分组运算装置,其中,在所述预设传输方式为指令串行且数据串行时,所述第一处理单元将所述指令串行传输给所述多个第二处理单元,并且将所述输入数据串行传输给所述多个第二处理单元。
条款A6,根据条款A1-A5任意一项所述的分组运算装置,其中,所述第一处理单元还配置用于根据所述输入数据的数据分发模式,将所述输入数据和所述指令分发到所述多个第二处理单元中的至少一个,所述多个第二处理单元中的至少一个对各自接收到的所述指令、所述输入数据以及各自存储的本地数据进行分组运算。
条款A7,根据条款A1所述的分组运算装置,其中,所述分组运算装置还包括:数据控制单元,其配置用于:获取所述数据分发模式并向所述第一处理单元分笔传输所述输入数据,并且为每笔输入数据配置所述数据分发模式;以及向所述第一处理单元传输进行所述分组运算的指令。
条款A8,根据条款A7所述的分组运算装置,其中,所述数据控制单元包括控制器单元和输入输出单元,其中:所述控制器单元配置用于:获取所述数据分发模式;以及向所述输入输出单元发送所述数据分发模式,所述输入输出单元配置用于:向所述第一处理单元分笔传输所述输入数据,并为每笔输入数据配置所述数据分发模式;以及向所述第一处理单元传输进行所述分组运算的指令。
条款A9,根据条款A6-A8中任意一项所述的分组运算装置,其中,所述数据分发模式根据存储本地数据的所述多个第二处理单元的分组信息来确定,并且所述数据分发模式包括广播模式、多播模式和单播模式中的一种或多种模式。
条款A10,根据条款A6-A8中任意一项所述的分组运算装置,其中,所述第一处理单元包括:寻址模块,其配置用于根据所述数据分发模式指示的所述第二处理单元的地址寻址到待接收所述输入数据的第二处理单元。
条款A11,根据条款A6-A8中任意一项所述的分组运算装置,其中,所述第一处理单元还配置用于将所述多个第二处理单元获得的运算结果拼接在一起,获得拼接后的运算结果。
条款A12,根据条款A6-A8中任意一项所述的分组运算装置,其中,所述第一处理单元和所述多个第二处理单元被布置为H型结构、树状结构或阵列机结构中的一种或多种结构。
条款A13,根据条款A6-A8中任意一项所述的分组运算装置,其中,所述输入数据是神经元数据或者权值数据,并且其中:当所述输入数据是神经元数据时,所述本地数据是权值数据;或者当所述输入数据是权值数据时,所述本地数据是神经元数据。
条款A14,一种分组运算方法,包括:令第一处理单元根据预设传输方式来传输指令和输入数据;以及令第二处理单元执行:接收来自于所述第一处理单元的指令和输入数据;以及根据接收到的所述指令和输入数据来进行分组运算,以获得分组运算结果。
条款A15,一种集成电路芯片,包括根据条款A1-A13中任意一项所述的分组运算装置。
条款A16,一种计算装置,包括根据条款A1-A13中任意一项所述的分组运算装置或根据条款A15所述的集成电路芯片。
条款A17,一种板卡,包括根据条款A16所述的计算装置。
虽然本文已经示出和描述了本公开的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本公开思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本公开的过程中,可以采用对本文所描述的本公开实施例的各种替代方案。所附权利要求书旨在限定本公开的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。

Claims (12)

1.一种分组运算装置,包括:
第一处理单元,其配置用于根据预设传输方式来传输指令和输入数据;
多个第二处理单元,其配置用于:
接收来自于所述第一处理单元的指令和输入数据;以及
根据接收到的所述指令和输入数据来进行分组运算,以获得分组运算结果。
2.根据权利要求1所述的分组运算装置,其中,在所述预设传输方式为指令串行且数据并行时,所述第一处理单元将所述指令串行传输给所述多个第二处理单元,并且将所述输入数据并行传输给所述多个第二处理单元。
3.根据权利要求1所述的分组运算装置,其中,在所述预设传输方式为指令并行且数据串行时,所述第一处理单元将所述指令并行传输给所述多个第二处理单元,并且将所述输入数据串行传输给所述多个第二处理单元。
4.根据权利要求1所述的分组运算装置,其中,在所述预设传输方式为指令并行且数据并行时,所述第一处理单元将所述指令并行传输给所述多个第二处理单元,并且将所述输入数据并行传输给所述多个第二处理单元。
5.根据权利要求1所述的分组运算装置,其中,在所述预设传输方式为指令串行且数据串行时,所述第一处理单元将所述指令串行传输给所述多个第二处理单元,并且将所述输入数据串行传输给所述多个第二处理单元。
6.根据权利要求1-5任意一项所述的分组运算装置,其中,所述第一处理单元还配置用于根据所述输入数据的数据分发模式,将所述输入数据和所述指令分发到所述多个第二处理单元中的至少一个,
所述多个第二处理单元中的至少一个对各自接收到的所述指令、所述输入数据以及各自存储的本地数据进行运算。
7.根据权利要求1所述的分组运算装置,其中,所述分组运算装置还包括:
数据控制单元,其配置用于:
获取所述数据分发模式并向所述第一处理单元分笔传输所述输入数据,并且为每笔输入数据配置所述数据分发模式;以及
向所述第一处理单元传输进行所述分组运算的指令。
8.根据权利要求7所述的分组运算装置,其中,所述数据控制单元包括控制器单元和输入输出单元,其中:
所述控制器单元配置用于:
获取所述数据分发模式;以及
向所述输入输出单元发送所述数据分发模式,
所述输入输出单元配置用于:
向所述第一处理单元分笔传输所述输入数据,并为每笔输入数据配置所述数据分发模式;以及
向所述第一处理单元传输进行所述分组运算的指令。
9.根据权利要求6-8中任意一项所述的分组运算装置,其中,所述数据分发模式根据存储本地数据的所述多个第二处理单元的分组信息来确定,并且所述数据分发模式包括广播模式、多播模式或单播模式中的一种或多种模式。
10.根据权利要求6-8中任意一项所述的分组运算装置,其中,所述第一处理单元包括:
寻址模块,其配置用于根据所述数据分发模式指示的所述第二处理单元的地址寻址到待接收所述输入数据的第二处理单元。
11.根据权利要求6-8中任意一项所述的分组运算装置,其中,所述第一处理单元还配置用于将所述多个第二处理单元获得的运算结果拼接在一起,获得拼接后的运算结果。
12.一种集成电路芯片,包括权利要求1至11中任一项所述的分组运算装置。
CN202110679088.4A 2021-06-18 2021-06-18 分组运算装置、方法、集成电路芯片、计算装置和板卡 Pending CN115495157A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110679088.4A CN115495157A (zh) 2021-06-18 2021-06-18 分组运算装置、方法、集成电路芯片、计算装置和板卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110679088.4A CN115495157A (zh) 2021-06-18 2021-06-18 分组运算装置、方法、集成电路芯片、计算装置和板卡

Publications (1)

Publication Number Publication Date
CN115495157A true CN115495157A (zh) 2022-12-20

Family

ID=84465148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110679088.4A Pending CN115495157A (zh) 2021-06-18 2021-06-18 分组运算装置、方法、集成电路芯片、计算装置和板卡

Country Status (1)

Country Link
CN (1) CN115495157A (zh)

Similar Documents

Publication Publication Date Title
CN110096309B (zh) 运算方法、装置、计算机设备和存储介质
US11797467B2 (en) Data processing device with transmission circuit
CN110096310B (zh) 运算方法、装置、计算机设备和存储介质
CN112799726A (zh) 数据处理装置、方法及相关产品
CN110059797B (zh) 一种计算装置及相关产品
CN112686379B (zh) 集成电路装置、电子设备、板卡和计算方法
CN111047005A (zh) 运算方法、装置、计算机设备和存储介质
US20230259737A1 (en) Integrated computing apparatus, chip, board card, device and computing method
CN115495157A (zh) 分组运算装置、方法、集成电路芯片、计算装置和板卡
CN114281558A (zh) 多核处理器、用于多核处理器的方法及相应产品
CN112232498B (zh) 一种数据处理装置、集成电路芯片、电子设备、板卡和方法
CN112395008A (zh) 运算方法、装置、计算机设备和存储介质
CN113742266B (zh) 集成电路装置、电子设备、板卡和计算方法
CN111210011B (zh) 数据处理装置及相关产品
CN111026440B (zh) 运算方法、装置、计算机设备和存储介质
CN113791996B (zh) 集成电路装置、电子设备、板卡和计算方法
CN113469365B (zh) 基于神经网络模型的推理和编译方法及其相关产品
CN111275197B (zh) 运算方法、装置、计算机设备和存储介质
CN111353125B (zh) 运算方法、装置、计算机设备和存储介质
CN114661356A (zh) 分组运算装置、方法、集成电路芯片、计算装置和板卡
CN115543329A (zh) 对运行于人工智能芯片上的区域候选网络进行优化的编译方法及其相关产品
CN117742566A (zh) 访存处理装置、处理器、芯片、板卡和指令执行方法
CN114692846A (zh) 数据处理装置、数据处理方法及相关产品
CN114648438A (zh) 处理图像数据的设备、方法及可读存储介质
CN117311812A (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