掌桥专利:专业的专利平台
掌桥专利
首页

数据处理装置及其操作方法以及电子装置

文献发布时间:2023-06-19 19:30:30


数据处理装置及其操作方法以及电子装置

技术领域

本公开的实施例涉及一种用于并行计算的数据处理装置及其操作方法以及电子装置。

背景技术

随着人工智能技术的发展,对于并行处理器的带宽和计算能力提出了更高的要求。但是由于现有工艺和材料的限制,带宽和计算能力存在明显的物理极限。对于矩阵运算等数据重复率高的工作,如果能提高数据的复用量,则能够有效降低带宽的使用,使得计算效率得到有效提升。

发明内容

本公开至少一实施例提供一种用于并行计算的数据处理装置,包括多个计算单元和至少一个第一传输通道,每个计算单元包括多个处理元件、命令队列和向量存储器,多个计算单元包括第一计算单元和第二计算单元,至少一个第一传输通道耦接所述第一计算单元和所述第二计算单元,以在第一计算单元和第二计算单元之间传输指令、地址和数据。

例如,在本公开至少一实施例提供的数据处理装置中,在每个计算单元中,命令队列与多个处理元件和向量存储器分别耦接,以对多个处理元件和向量存储器进行控制;每个处理元件与向量存储器耦接,以在每个处理元件和向量存储器之间进行交互。

例如,本公开至少一实施例提供的数据处理装置还包括至少一个缓存,在每个计算单元中,向量存储器包括与至少一个缓存交互的接口。

例如,在本公开至少一实施例提供的数据处理装置中,至少一个第一传输通道包括指令传输通道和数据地址传输通道,指令传输通道用于在第一计算单元和第二计算单元之间传输指令,数据地址传输通道用于在第一计算单元和第二计算单元之间传输数据及地址。

例如,在本公开至少一实施例提供的数据处理装置中,指令传输通道耦接第一计算单元的命令队列和第二计算单元的命令队列;数据地址传输通道耦接第一计算单元的向量存储器和第二计算单元的向量存储器。

例如,在本公开至少一实施例提供的数据处理装置中,在每个计算单元中,向量存储器包括与多个处理元件和命令队列交互的接口。

例如,在本公开至少一实施例提供的数据处理装置中,在第一计算单元和第二计算单元的每个中,向量存储器包括:第一交互接口,配置为从另一个计算单元中的向量存储器接收地址和数据,第二交互接口,配置为向另一个计算单元中的向量存储器发送地址和数据,以及预处理模块,配置为对来自当前计算单元中的处理元件的地址和数据、来自当前计算单元中的命令队列的指令、来自另一个计算单元中的向量存储器的地址和数据进行预处理。

例如,在本公开至少一实施例提供的数据处理装置中,在第一计算单元和第二计算单元的每个中,向量存储器还包括:输入队列,配置为对分时到达的指令、地址和数据进行同步;调度器,配置为对不同线程间的存储体冲突进行预判,并且在出现存储体冲突的情况下,调整不同线程间的时隙;以及输出校准器,配置为对出现存储体冲突的向量存储器的输出数据进行缓存和重排。

例如,在本公开至少一实施例提供的数据处理装置中,在第一计算单元和第二计算单元的每个中,向量存储器还包括:第一多路选择器和第二多路选择器,第一多路选择器的输入端口分别通过第二通道连接输出校准器和通过第一通道连接预处理模块,第二多路选择器的输入端口分别通过第三通道连接输出校准器和通过第四通道连接预处理模块。

例如,在本公开至少一实施例提供的数据处理装置中,向量存储器配置有多种工作模式,在不同的工作模式下,向量存储器中的不同通道进行数据传输。

例如,在本公开至少一实施例提供的数据处理装置中,多种工作模式包括:第一工作模式,用于将从当前计算单元的处理元件接收到的地址和数据转发到另一个计算单元的向量存储器中,第二工作模式,用于将从当前计算单元的向量存储器中读取的数据传输到另一个计算单元的向量存储器中,第三工作模式,用于将从当前计算单元中的向量存储器中读取的数据返回给当前计算单元的处理元件,第四工作模式,用于将从另一个计算单元的向量存储器中读取的数据转发到当前计算单元的处理元件。

例如,在本公开至少一实施例提供的数据处理装置中,在第一工作模式下,连接预处理模块和第一多路选择器的第一通道进行数据传输,在第二工作模式下,连接输出校准器和第一多路选择器的第二通道进行数据传输,在第三工作模式下,连接输出校准器和第二多路选择器的第三通道进行数据传输,在第四工作模式下,连接预处理模块和第二多路选择器的第四通道进行数据传输。

例如,在本公开至少一实施例提供的数据处理装置中,多个计算单元被划分为多个计算单元组,每个计算单元组包括两个计算单元,多个计算单元组包括第一计算单元组,第一计算单元组包括第一计算单元和第二计算单元。

例如,在本公开至少一实施例提供的数据处理装置中,每个计算单元组包括的两个计算单元之间都通过至少一个相应的传输通道耦接以传输指令、地址和数据。

本公开至少一实施例提供一种本公开至少一实施例提供的数据处理装置的操作方法,包括通过至少一个第一传输通道,在第一计算单元和第二计算单元之间传输指令、地址和数据。

例如,在本公开至少一实施例提供的操作方法中,在第一计算单元和第二计算单元之间传输指令、地址和数据,包括:第一计算单元的处理元件对第二计算单元的向量存储器进行读写操作。

例如,在本公开至少一实施例提供的操作方法中,第一计算单元的处理元件对第二计算单元的向量存储器进行读写操作,包括:第一计算单元中的命令队列向第二计算单元中的命令队列发送请求;第二计算单元中的命令队列接收请求并判断是否进行对应操作;在确定进行对应操作的情况下,第二计算单元中的命令队列向第一计算单元中的命令队列发送反馈信息,并对第二计算单元中的向量存储器发出第一操作指令;在第一计算单元中的命令队列接收到反馈信息后,向第一计算单元中的处理元件和向量存储器发出第二操作指令;第一计算单元中的处理元件在接收到第二操作指令后,向第一计算单元中的向量存储器传输地址和数据;第一计算单元中的向量存储器基于第二操作指令对接收到的地址和数据进行操作,并将第三操作指令和地址和数据转发到第二计算单元中的向量存储器;第二计算单元中的向量存储器对地址和数据进行操作。

例如,在本公开至少一实施例提供的操作方法中,第二计算单元中的向量存储器对地址和数据进行操作,包括:对于第一操作指令,第二计算单元中的向量存储器不返回写操作的值,将读操作或存在返回值的原子操作的返回值输出到第二计算单元中的处理元件;对于第三操作指令,第二计算单元中的向量存储器不返回写操作的值,将读操作或存在返回值的原子操作的返回值发送到第一计算单元中的向量存储器中;第一计算单元中的向量存储器基于第二操作指令进行判断,将来自第二计算单元中的向量存储器的返回值存储到第一计算单元中的处理元件中。

本公开至少一实施例提供一种电子装置,包括本公开至少一实施例提供的数据处理装置。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。

图1示出了一种用于并行计算的数据处理装置的结构示意图;

图2示出了一种计算单元的内部结构示意图;

图3示出了一种向量存储器的结构示意图;

图4示出了本公开至少一实施例提供的一种数据处理装置的示意图;

图5示出了本公开至少一实施例提供的一种向量存储器的示意图;

图6示出了本公开至少一实施例提供的计算单元组的示意图;

图7示出了步骤S711的一个示例的示意性示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

图1示出了一种用于并行计算的数据处理装置的结构示意图。例如,该数据处理装置为并行处理器,例如通用图形处理器(GPGPU)。

如图1所示,数据处理装置包括多个计算单元(Computing Unit,CU)CU0~CU15和缓存(图中未示出),每个计算单元通过缓存输入输出接口(cache_IO)与缓存进行数据交互(例如,CU0通过cache_IO0与缓存进行数据交互)。在该数据处理装置中,一个计算单元与另一个计算单元之间没有用于直接的数据交互的通路,因此如果存在交互需求,则需要一个计算单元先将数据存储进入缓存中,另一个计算单元再从缓存中读取。在GPGPU中,用于计算单元运行的预定任务的最小单元称之为线程束,例如,每一个线程束包含32个线程或64个线程,计算单元内部运行的线程束相互独立。

图2示出了一种用于图1的数据处理装置的计算单元200的内部结构示意图。如图2所示,计算单元200包括处理元件201、处理元件202、向量存储器203以及命令队列204。处理元件201和202每个用于完成向量数据的计算,处理元件201和处理元件202包含大量的向量寄存器用于进行计算(例如浮点乘除计算、三角函数cos、sin等复杂的计算)。向量存储器203用于完成处理元件201和处理元件202之间的数据存储和交互,例如通过接口PE0 idx/data和PE1 idx/data完成处理元件201和处理元件202之间的数据存储和交互。命令队列204基于具体的程序对处理元件201和202以及向量存储器203的工作进行控制,例如通过接口PE0_cmd、VM_cmd和PE1_cmd完成命令队列204和对应设备的交互和通信以用于完成命令队列204对对应设备的控制。计算单元200的向量数据通过cache_IO与外界进行交互。

图3示出了一种用于上述计算单元200的向量存储器300的结构示意图。如图3所示,向量存储器300通过接口cmd_from_CQ接收命令队列输入的指令并通过接口idx/data_from_PE接收处理元件输入的向量地址/向量数据,当两者齐备,则进行对应的计算,例如,该技术包括简单的定点及浮点加减、比较、数据交换等计算,这一类计算统称为原子(atomic)计算;计算结果通过接口data_PE输送到处理元件中。当缓存数据目标为向量存储器300,则通过接口cache_VM_channel完成数据的传输并存储进入向量存储器300中。

向量存储器300包括输入队列301、调度器302、多路选择器303、存储器304和输出校准器305。例如,存储器304可以包括多个存储体(bank)。输入队列301的两个输入端分别连接接口cmd_from_CQ和idx/data_from_PE,输入队列301的输出端连接调度器302,输入队列301例如用于完成分时到达的指令和向量地址/向量数据的同步操作,使得其输出端连接的调度器302能够同时获得当前操作的指令、地址和数据信息。调度器302通过输入的指令和操作的向量地址,完成同时进行操作的不同线程间存储体冲突(bank conflict)的预判,当出现存储体冲突时,调整线程间的处理时隙以进行调度。多路选择器303的两个输入端分别连接调度器302和接口cache_VM_channel,多路选择器303的输出端连接存储器304。存储器304的两个输入端分别连接调度器302和多路选择器303,输出端连接输出校准器305。输出校准器305的输入端连接存储器304而输出端连接接口data_PE,输出校准器305用于对出现存储体冲突的存储器304的输出数据进行缓存和重排操作,最终满足处理元件的要求,并通过接口data_PE输出到处理元件中。

图1所示的数据处理装置的结构虽然能够很好地处理相互独立的向量数据的计算,但是对于数据处理装置内部的数据共享显然是不利的。该数据处理装置中,计算单元之间的计算具有较高的独立性,但是对于现有应用越来越高的带宽需求,这种完全独立的计算单元不利于数据的重复利用。

本公开至少一实施例提供一种用于并行计算的数据处理装置,包括多个计算单元和至少一个第一传输通道,每个计算单元包括多个处理元件、命令队列和向量存储器,多个计算单元包括第一计算单元和第二计算单元,至少一个第一传输通道耦接所述第一计算单元和所述第二计算单元,以在第一计算单元和第二计算单元之间传输指令、地址和数据。

本公开上述实施例提供的数据处理装置能够实现数据在计算单元之间的重复使用,不仅能够有效降低带宽的需求,而且能够大幅提高运算的效率。

本公开至少一实施例还提供上述数据处理装置的操作方法以及包括上述数据处理装置的电子装置。

下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。

图4示出了本公开至少一实施例提供的一种数据处理装置400的示意图。例如,该数据处理装置为并行处理器,例如通用图形处理器(GPGPU)、数据处理器、张量处理器等。

如图4所示,数据处理装置400包括多个计算单元,该多个计算单元包括第一计算单元401和第二计算单元402(图中未示出其他计算单元),该数据处理装置400还包括设置在第一计算单元401和第二计算单元402之间的至少一个(即一个或多个)第一传输通道。第一计算单元401和第二计算单元402中每个包括处理元件403、处理元件404、命令队列405和向量存储器406。第一传输通道耦接第一计算单元401和第二计算单元402,在第一计算单元401和第二计算单元402之间传输指令、地址和数据。

例如,在本公开的一些实施例中,在每个计算单元中,命令队列405与处理元件403、处理元件404、向量存储器406分别耦接,以对处理元件403、处理元件404、向量存储器406进行控制;处理元件403和处理元件404分别与向量存储器406耦接,以在处理元件403和处理元件404与向量存储器406之间进行交互。

具体地,如图4所示,在第一计算单元401中,命令队列405_1通过接口PE0_cmd与处理元件403_1耦接,命令队列405_1通过接口PE1_cmd与处理元件404_1耦接,命令队列405_1通过接口VM_cmd与向量存储器406_1耦接,以对处理元件403_1、处理元件404_1、向量存储器406_1进行控制。处理元件403_1通过接口PE0 idx/data与向量存储器406_1耦接,处理元件404_1通过接口PE1 idx/data与向量存储器406_1耦接,以在处理元件403_1、处理元件404_1、向量存储器406_1之间进行交互。

具体地,如图4所示,在第二计算单元402中,命令队列405_2通过接口PE0_cmd与处理元件403_2耦接,命令队列405_2通过接口PE1_cmd与处理元件404_2耦接,命令队列405_2通过接口VM_cmd与向量存储器406_2耦接,以对处理元件403_2、处理元件404_2、向量存储器406_2进行控制。处理元件403_2通过接口PE0 idx/data与向量存储器406_2耦接,处理元件404_2通过接口PE1 idx/data与向量存储器406_2耦接,以在处理元件403_2、处理元件404_2、向量存储器406_2之间进行交互。

例如,数据处理装置400还包括至少一个缓存(未示出),在每个计算单元中,向量存储器406包括与至少一个缓存交互的通道。

例如,如图4所示,第一计算单元401包括与缓存交互的接口cache_IO0,例如接口cache_IO0直接或间接地与向量存储器406_1连接;第二计算单元402包括与缓存交互的接口cache_IO1,例如接口cache_IO1直接或间接地与向量存储器406_2连接。

例如,在本公开的一些实施例中,上述至少一个第一传输通道包括指令传输通道和数据地址传输通道,指令传输通道用于在第一计算单元和第二计算单元之间传输指令,数据地址传输通道用于在第一计算单元和第二计算单元之间传输数据及地址。

例如,在本公开的一些实施例中,指令传输通道耦接第一计算单元的命令队列和第二计算单元的命令队列;数据地址传输通道耦接第一计算单元的向量存储器和第二计算单元的向量存储器。

例如,如图4所示,第一计算单元401和第二计算单元402之间设置有多个第一传输通道,这些第一传输通道包括指令传输通道message和数据地址传输通道idx/data。指令传输通道message耦接第一计算单元401的命令队列405_1和第二计算单元402的命令队列405_2,指令传输通道message用于在第一计算单元401和第二计算单元402之间传输指令,数据地址传输通道idx/data耦接第一计算单元401的向量存储器406_1和第二计算单元402的向量存储器406_2,数据地址传输通道ix/data用于在第一计算单元401和第二计算单元402之间传输数据及地址。

在本公开的至少一个实施例中,通过在计算单元之间添加至少一个传输通道,能够让处理元件自由读取其余计算单元中同一个工作组的数据,从而能够有效减少重复数据的载入,进一步提升数据处理装置的计算效率。

图5示出了本公开至少一实施例提供的一种向量存储器500的示意图。

例如,在本公开的一些实施例中,例如在上述数据处理装置400的每个计算单元中,向量存储器包括与多个处理元件和命令队列交互的接口。

例如,如图5所示,向量存储器500包括与处理元件交互的接口idx/data_from_PE和接口data_PE以及和命令队列交互的接口cmd_from_CQ。通过接口idx/data_from_PE,向量存储器500可以从处理元件接收地址/数据;通过接口data_PE,向量存储器500可以向处理元件传输数据;通过接口cmd_from_CQ,向量存储器500可以从命令队列接收指令。

例如,如图5所示,向量存储器500包括第一交互接口idx/data_from_VM、第二交互接口idx/data_to_VM、预处理模块501、输入队列502、调度器503、输出校准器504、第一多路选择器505和第二多路选择器506。下面以第一计算单元的向量存储器500为例进行说明,第二计算单元的向量存储器500是对应的,因此不再重复。

该向量存储器500的第一交互接口idx/data_from_VM配置为从另一个计算单元(即第二计算单元)中的向量存储器接收地址和数据。

该向量存储器500的第二交互接口idx/data_to_VM配置为向另一个计算单元中的向量存储器发送地址和数据。

该向量存储器500的预处理模块501配置为对来自当前计算单元(即第一计算单元)中的处理元件的地址和数据、来自当前计算单元中的命令队列的指令、来自另一个计算单元中的向量存储器的地址和数据进行预处理。

该向量存储器500的输入队列502配置为对分时到达的指令、地址和数据进行同步。

该向量存储器500的调度器503配置为对不同线程间的存储体冲突进行预判,并且在出现存储体冲突的情况下,调整不同线程间的时隙。

该向量存储器500的输出校准器504配置为对出现存储体冲突的向量存储器的输出数据进行缓存和重排。

例如,如图5所示,向量存储器500还包括接口cmd_from_CQ、idx/data_from_PE、接口data_PE、第三多路选择器507、存储器508,关于接口cmd_from_CQ、idx/data_from_PE、data_PE的作用可以参考上文的相关描述,在此不再赘述。例如,存储器508包括多个存储体(bank)。预处理模块501的输入端连接接口cmd_from_CQ、idx/data_from_PE、idx/data_from_VM,其用于对通过接口获取的指令、地址和数据进行预处理并输出到输入队列502中。输入队列502用于完成分时到达的指令、地址、数据的同步操作,使得其输出端连接的调度器503能够同时获得当前操作的指令、地址和数据信息。调度器503通过输入的指令和操作的向量地址,完成同时进行操作的不同线程间存储体冲突(bank conflict)的预判,当出现存储体冲突时,调整线程间的时隙。第三多路选择器507的输入端连接调度器503和接口cache_VM_channel,输出端连接存储器508。存储器508的输入端连接调度器503和多路选择器507,输出端连接输出校准器504。输出校准器504用于对出现存储体冲突的存储器508的输出数据进行缓存和重排操作,最终满足处理元件的要求。第一多路选择器505的两个输入端口分别通过第二通道连接输出校准器504和通过第一通道连接预处理模块501,第二多路选择器506的两个输入端口分别通过第三通道连接输出校准器504和通过第四通道连接预处理模块501。第一多路选择器505的输出端口连接第二交互接口idx/data_to_VM以向另一个计算单元(即第二计算单元)中的向量存储器发送地址和数据,第二多路选择器506的输出端口连接接口data_PE以向当前计算单元(即第一计算单元)中的处理元件发送数据。

例如,如图5所示,第一通道用数字1表示(即通道1),第二通道用数字2表示(即通道2),第三通道用数字3表示(即通道3),第四通道用数字4表示(即通道4)。

例如,在本公开的一些实施例中,向量存储器配置有多种工作模式,在不同的工作模式下,向量存储器中的不同通道进行数据传输。

例如,在本公开的一些实施例中,多种工作模式可以包括:第一工作模式、第二工作模式、第三工作模式和第四工作模式。第一工作模式用于将从当前计算单元的处理元件接收到的地址和数据转发到另一个计算单元的向量存储器中,第二工作模式用于将从当前计算单元的向量存储器中读取的数据传输到另一个计算单元的向量存储器中,第三工作模式用于将从当前计算单元中的向量存储器中读取的数据返回给当前计算单元的处理元件,第四工作模式用于将从另一个计算单元的向量存储器中读取的数据转发到当前计算单元的处理元件。

例如,向量存储器在不同的工作模式下,各通道(通道1~通道4)是否传输数据存在差异性,具体如下表1所示。设备1表示进行读/原子操作或写操作时的源设备,设备2表示进行读/原子操作或写操作时的目的地设备。例如,在第三工作模式下,设备1是第一计算单元中的处理元件(CU0.PE0/1),设备2是第一计算单元中的向量存储器(CU0.VM),进行的操作是读/原子操作,即将第一计算单元中的向量存储器中读取的数据返回给第一计算单元中的处理元件,在第一计算单元中的向量存储器(CU0.VM)中需要通过通道3进行传输,而第二计算单元中的向量存储器(CU1.VM)由于没有涉及,因此不需要通过通道进行数据传输。又例如,在第一工作模式下,设备1是第一计算单元中的处理元件(CU0.PE0/1),设备2是第二计算单元中的向量存储器(CU1.VM),进行的操作是写操作,即将从第一计算单元的处理元件接收到的地址和数据转发到第二计算单元的向量存储器中,在第一计算单元中的向量存储器(CU0.VM)中需要通过通道1进行传输,而第二计算单元中的向量存储器(CU1.VM)由于没有涉及,因此不需要通过通道进行数据传输。

表1——向量存储器的不同工作模式

例如,在上述图5所示的实施例中,在第一工作模式下,连接预处理模块501和第一多路选择器505的通道1进行数据传输,在第二工作模式下,连接输出校准器504和第一多路选择器505的通道2进行数据传输,在第三工作模式下,连接输出校准器504和第二多路选择器506的通道3进行数据传输,在第四工作模式下,连接预处理模块501和第二多路选择器506的通道4进行数据传输。

例如,在本公开的一些实施例中,多个计算单元被划分为多个计算单元组,每个计算单元组包括两个计算单元,例如,多个计算单元组包括第一计算单元组,第一计算单元组包括第一计算单元和第二计算单元。

例如,在本公开的一些实施例中,每个计算单元组包括的两个计算单元之间都通过至少一个相应的传输通道耦接以传输指令、地址和数据,例如,上述第一计算单元和第二计算单元为这两个计算单元的示例。

例如,在至少一个实施例中,完成数据处理装置中所有计算单元间的数据交换需要消耗大量的硬件资源,因此综合考虑计算效率的提升和硬件资源的消耗,可以对奇偶计算单元之间同一个工作组的数据进行数据共享。

图6示出了本公开至少一实施例提供的计算单元组的示意图。

如图6所示,以一个包含16个计算单元的数据处理装置为例,连接相邻的奇偶计算单元,将16个计算单元划分为8个计算单元组,每个计算单元组包括两个计算单元。例如,计算单元CU0和CU1组成1个计算单元组;又例如,计算单元CU2和CU3组成1个计算单元组,依次类推,将奇数标号的计算单元和偶数标号的计算单元组成1个计算单元组。每个计算单元组包括的两个计算单元之间都通过指令传输通道(message)和数据地址传输通道(idx/data)耦接以传输指令、地址和数据。

需要说明的是,对多个计算单元进行奇偶划分以实现数据共享仅仅是一个示例,本公开的实施例对计算单元的个数、计算单元组的划分方式等不作限制,例如,每个计算单元组可以包括一对(即两个)计算单元,在其他实施例中,每个计算单元组还可以包括更多计算单元,例如三个或四个计算单元;每个计算单元组中的各个计算单元可以彼此之间通过与上述描述的一个或多个第一传输通道(例如指令传输通道message和数据地址传输通道idx/data)相同的方式彼此通信连接,以用于传输指令、地址和数据,具体方式不再赘述。

本公开至少一实施例提供一种上述实施例中的数据处理装置的操作方法,该操作方法可以包括步骤S701:通过至少一个第一传输通道,在第一计算单元和第二计算单元之间传输指令、地址和数据。

例如,如上所述,如图4所示,数据处理装置在操作过程中通过指令传输通道message和数据地址传输通道idx/data在第一计算单元401和第二计算单元402之间传输指令、地址和数据。例如,第一计算单元401和第二计算单元402属于同一计算单元组;例如,该计算单元组还可以包括更多的计算单元,在这种情形,这些计算单元(不限于第一计算单元401和第二计算单元402)彼此之间可以相同的方式通过第一传输通道传输指令、地址和数据。

例如,在本公开的一些实施例中,上述步骤S701可以包括步骤S711:第一计算单元的处理元件对第二计算单元的向量存储器进行读写操作。

图7示出了步骤S711的一个示例的示意性示意图。图7所示的数据处理装置700与图4所示的数据处理装置400基本对应,不同之处不再赘述。

例如,在图7所示的数据处理装置700中,第一计算单元701的处理元件703_1对第二计算单元702的向量存储器706_2进行读写操作。如图7所示,该读写操作包括9个步骤,每个步骤用相应的数字表示,其中,圆圈1表示步骤S1,圆圈2表示步骤S2,以此类推。

S1:第一计算单元701中的命令队列705_1向第二计算单元702中的命令队列705_2发送请求,并等待命令队列705_2的反馈。

S2:第二计算单702中的命令队列705_2接收请求并判断是否进行对应操作,在确定进行对应操作的情况下,第二计算单元702中的命令队列705_2通过指令传输通道message向第一计算单元701中的命令队列705_1发送反馈信息。

S3:命令队列705_2在发送反馈信息的同时,对第二计算单元702中的向量存储器706_2发出第一操作指令;第一操作指令内部包括对应的操作指令和相关配置信息。

S4:在第一计算单701中的命令队列705_1接收到反馈信息后,通过接口PE0 cmd向第一计算单元701中的处理元件703_1发出第二操作指令;对于发送到处理元件703_1的指令标定了处理元件703_1内向量通用寄存器中地址和数据所在的位置,并要求进行传输。

S5:在第一计算单701中的命令队列705_1接收到反馈信息后,通过接口VM cmd向第一计算单元701中的向量存储器706_1发出第二操作指令;发送到向量存储器706_1的指令规定了向量存储器706_1所要进行的操作,包括转发、直接操作或是转发并操作,转发操作为对于第二计算单元702中的向量存储器706_2的写操作,直接操作对应对于第一计算单元701中的向量存储器706_1的操作,转发并操作作为对于第二计算单元702中向量存储器706_2的读操作以及原子操作。

S6:第一计算单元701中的处理元件703_1在接收到第二操作指令后,通过通道PE0idx/data向第一计算单元701中的向量存储器706_1传输地址和数据。

S7:第一计算单元701中的向量存储器706_1基于第二操作指令对接收到的地址和数据进行操作,并通过通道idx/data将第三操作指令和地址和数据转发到第二计算单元702中的向量存储器706_2。

S8:当第二计算单元702中的向量存储器706_2对地址和数据接收完毕,进行操作。对于第一操作指令,第二计算单元702中的向量存储器706_2不返回写操作的值,将读操作或存在返回值的原子操作的返回值输出到第二计算单元702中的处理元件(703_2和704_2);对于第三操作指令,第二计算单元702中的向量存储器706_2不返回写操作的值,将读操作或存在返回值的原子操作的返回值发送到第一计算单元701中的向量存储器706_1中。

S9:对于读操作或存在返回值的原子操作,第一计算单元701中的向量存储器706_1基于第二操作指令进行判断,将来自第二计算单元702中的向量存储器706_2的返回值存储到第一计算单元701中的处理元件703_1中。

上述操作方法的技术效果与图4所示的数据处理装置的技术效果相同,在此不再赘述。

根据本公开的至少一实施例还提供了一种电子装置,该电子装置包括上述数据处理装置。例如,该数据处理装置为并行处理器,例如通用图形处理器(GPGPU)、数据处理器、张量处理器。例如,该电子装置还可以包括例如中央处理器(CPU),该中央处理器与该数据处理装置通过系统总线组合构成异构计算系统,例如,该总线可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。

例如,在本公开的至少一个实施例中,该电子装置还可以包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等输入装置;包括诸如液晶显示器、扬声器、振动器等输出装置;包括例如磁带、硬盘(HDD或SDD)等存储装置;例如还可以包括诸如LAN卡、调制解调器等的网络接口卡等通信装置。通信装置可以允许电子装置与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。根据需要驱动器连接至I/O接口。可拆卸存储介质,诸如磁盘、光盘、磁光盘、半导体存储器等,根据需要安装在该驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储装置。

例如,该电子装置还可以进一步包括外设接口等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。

该电子装置例如可以是片上系统(SOC)或者包括该SOC的设备,例如,可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪、家用电器、通信基站、工业控制器、服务器等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。

对于本公开,还有以下几点需要说明:

(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。

(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。

以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 用以在电子装置显示与操作无人装置的操作方法
  • 数据处理方法、装置、存储介质和电子装置
  • 数据处理方法、装置、存储介质和电子装置
  • 话音数据处理方法以及支持该话音数据处理方法的电子装置
  • 一种样本数据处理方法、样本数据处理装置及电子设备
  • 数据处理操作方法、装置、存储介质和电子设备
  • 向另一电子装置传送数据并使该另一电子装置执行数据处理的电子装置及数据处理方法
技术分类

06120115929852