CN116974510A - 数据流式处理电路、电路模组、电子芯片、方法和装置 - Google Patents
数据流式处理电路、电路模组、电子芯片、方法和装置 Download PDFInfo
- Publication number
- CN116974510A CN116974510A CN202211399208.6A CN202211399208A CN116974510A CN 116974510 A CN116974510 A CN 116974510A CN 202211399208 A CN202211399208 A CN 202211399208A CN 116974510 A CN116974510 A CN 116974510A
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- data stream
- stream processing
- processing
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 519
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000011159 matrix material Substances 0.000 claims description 61
- 238000007667 floating Methods 0.000 claims description 47
- 238000004891 communication Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 24
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000005111 flow chemistry technique Methods 0.000 description 39
- 238000007792 addition Methods 0.000 description 38
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 18
- 238000004458 analytical method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 239000000470 constituent Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000005405 multipole Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000008719 thickening Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请涉及一种数据流式处理电路、电路模组、电子芯片、方法、装置和计算机设备。数据流式处理电路包括第一选通单元、多个数据处理单元及第二选通单元;第一选通单元包括第一输入端和多个第一输出端,第一输入端用于输入待处理数据,第一选通单元用于按数据流式处理逻辑控制第一输入端到各第一输出端的通断;各数据处理单元的输入端分别连接部分第一输出端,各数据处理单元用于执行各自的数据处理逻辑;第二选通单元的第二输入端连接各数据处理单元的输出端,第二选通单元包括第二输出端和第三输出端,第二输出端与第一输入端连接,第三输出端用于输出处理结果,第二选通单元用于按数据流式处理逻辑控制第二输入端到第二输出端或第三输出端连通。
Description
技术领域
本申请涉及电路技术领域,特别是涉及一种数据流式处理电路、电路模组、电子芯片、方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
在AI处理器领域,需要对数据进行各种运算,包括推理、训练过程中的预处理、后处理等,包含了大量的对数据的流式处理。流式处理通俗来讲是对一整块数据的处理,对这些数据进行定点或浮点的加减乘除、比较、转换等运算。
相关技术中,对于数据运算处理,一般是基于寄存器组,通过微指令的方式对数据进行处理,在实现数据处理的过程中,需要反复调用运算类指令,并且需要在寄存器组中进行数据的中转,存在处理性能较差的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据处理性能的数据流式处理电路、电路模组、电子芯片、方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种数据流式处理电路,所述数据流式处理电路包括第一选通单元、多个数据处理单元以及第二选通单元;
所述第一选通单元包括第一输入端和多个第一输出端,所述第一输入端用于输入待处理数据,所述第一选通单元,被配置为基于数据流式处理逻辑控制所述第一输入端到各所述第一输出端的通断;
各所述数据处理单元的输入端分别连接多个所述第一输出端中的一部分,各所述数据处理单元,被配置为执行各自的数据处理逻辑,所述数据处理逻辑为所述数据流式处理逻辑的组成单元;
所述第二选通单元的第二输入端连接各所述数据处理单元的输出端,所述第二选通单元包括第二输出端和第三输出端,所述第二输出端与所述第一输入端连接,所述第三输出端用于输出所述待处理数据的处理结果,所述第二选通单元,被配置为基于所述数据流式处理逻辑控制所述第二输入端到所述第二输出端或所述第三输出端连通。
第二方面,本申请还提供了一种数据流式处理电路模组,所述数据流式处理电路模组包括至少两个如以上各实施例所述的数据流式处理电路;
其中一个所述数据流式处理电路的所述第二选通单元还包括第四输出端,所述第四输出端与其中另一个所述数据流式处理电路的第一输入端连接。
第三方面,本申请还提供了一种电子芯片,所述电子芯片包括如以上各实施例所述的数据流式处理电路、或如以上各实施例所述的数据流式处理电路模组;
所述电子芯片具有配置接口,所述配置接口用于配置所述数据流式处理电路或所述数据流式处理电路模组的数据流式处理逻辑。
第四方面,本申请还提供了一种数据流式处理方法,应用于上述各实施例所述的数据流式处理电路、或上述各实施例所述的数据流式处理电路模组中的至少一个数据流式处理电路,所述方法包括:
基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;
将与所述数据流式处理逻辑匹配的待处理数据,输入所述数据流式处理电路,以对所述待处理数据执行所述数据流式处理逻辑;
确定所述数据流式处理电路对所述待处理数据的处理结果。
第五方面,本申请还提供了一种数据流式处理装置,应用于上述各实施例所述的数据流式处理电路、或上述各实施例所述的数据流式处理电路模组中的至少一个数据流式处理电路,所述装置包括:
参数配置模块,用于基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;
数据输入模块,用于将与所述数据流式处理逻辑匹配的待处理数据,输入所述数据流式处理电路,以对所述待处理数据执行所述数据流式处理逻辑;
结果确定模块,用于确定所述数据流式处理电路对所述待处理数据的处理结果。
第六方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如以上各实施例所述的方法的步骤。
第七方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如以上各实施例所述的方法的步骤。
第八方面,本申请还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时如以上各实施例所述的方法的步骤。
上述数据流式处理电路、电路模组、电子芯片、方法、装置、计算机设备、存储介质和计算机程序产品,基于第一选通单元的各第一输出端与各数据处理单元的固定连接关系,能够通过第一选通单元对第一输入端到各第一输出端的通断控制,将第一输入端在不同阶段的输入数据分别传输到指定的数据处理单元,通过数据处理单元对相应数据执行各自的数据处理逻辑后,将处理得到的结果输出至第二选通单元,并由第二选通单元根据数据流式处理逻辑控制与第二输出端或第三输出端连通,即控制数据处理结果返回至第一选通单元作为下一阶段的输入或直接输出,从而对待处理数据实现符合数据流式处理逻辑的流式处理,在整个数据处理过程中,可直接通过第一输入端输入待处理数据,在第三输出端得到待处理数据的处理结果,不依赖于运算类指令的调用,也无需对处理得到的中间数据进行寄存,有效提高了数据处理性能。
附图说明
图1为一个实施例中数据流式处理电路的示意图;
图2为一个实施例中数据流式处理电路模组的示意图;
图3为另一个实施例中数据流式处理电路的示意图;
图4为再一个实施例中数据流式处理电路的示意图;
图5为一个实施例中数据流式处理电路中第一选通单元的结构示意图;
图6为另一个实施例中数据流式处理电路中第一开关矩阵的结构示意图;
图7为一个实施例中数据流式处理电路中时序同步单元的连接关系示意图;
图8为一个实施例中数据流式处理电路中基于数据队列进行时序同步的原理图;
图9为另一个实施例中数据流式处理电路时序同步的原理示意图;
图10为一个实施例中数据流式处理电路中常数配置单元和第二数据选择器的连接关系示意图;
图11为另一个实施例中数据流式处理电路的示意图;
图12为一个的实施例中数据流式处理电路的数据流示意图;
图13为一个实施例中数据流式处理电路模组的示意图;
图14为一个实施例中数据流式处理电路模组的数据流示意图;
图15为一个实施例中数据流式处理方法的流程示意图;
图16为一个实施例中数据流式处理装置的结构框图;
图17为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1是本申请一个实施例提供的一种数据流式处理电路10的结构示意图,如图1所示,数据流式处理电路10包括第一选通单元100、多个数据处理单元200以及第二选通单元300。
第一选通单元100包括第一输入端110和多个第一输出端120,数据处理单元200包括输入端210和输出端220,第二选通单元300包括第二输入端310、第二输出端320以及第三输出端330。
第一输入端110用于输入待处理数据,第一输出端120与数据处理单元200的输入端210连接,数据处理单元200的输出端220与第二输入端310连接,第二输出端320与第一输入端110连接,第三输出端330用于输出待处理数据的处理结果。
其中,第一选通单元100,被配置为基于数据流式处理逻辑,控制第一输入端110到各第一输出端120的通断。
各数据处理单元200,被配置为执行各自的数据处理逻辑,数据处理逻辑为数据流式处理逻辑的组成单元。
第二选通单元300,被配置为基于数据流式处理逻辑,控制第二输入端310到第二输出端320或第三输出端330连通。
可选的,第一选通单元100和第二选通单元300的控制逻辑,可以基于待处理数据所需的数据流式处理逻辑进行配置。基于不同的数据流式处理逻辑,对待处理数据实现不同的逻辑运算。上述数据流式处理电路10可以实现不同数据流式处理逻辑的应用,扩大数据流式处理电路10对各种数据流式处理逻辑的应用。
本申请的实施例还提供了一种数据流式处理电路模组20,如图2所示,上述数据流式处理电路10可以作为数据流式处理电路模组20的组成单元,数据流式处理电路模组20由至少两个数据流式处理电路10连接而成。
例如,数据流式处理电路模组20包括数据流式处理电路10a和数据流式处理电路10b,数据流式处理电路10a的第四输出端340a与数据流式处理电路10b的第一输入端110b连接,数据流式处理电路10b的第四输出端340b与数据流式处理电路10a的第一输入端110a连接,从而实现多个数据流式处理电路的互通,将数据流式处理电路模组中一个数据流式处理电路的输出作为另一个数据流式处理电路的出入,能够针对待处理数据快速实现复杂的运算逻辑,得到数据处理结果。
在一个实施例中,如图3所示,提供了一种数据流式处理电路10,数据流式处理电路10包括第一选通单元100、多个数据处理单元200以及第二选通单元300;第一选通单元100包括第一输入端110和多个第一输出端120,第一输入端110用于输入待处理数据,第一选通单元100,被配置为基于数据流式处理逻辑控制第一输入端110到各第一输出端120的通断;各数据处理单元200的输入端210分别连接多个第一输出端120中的一部分,各数据处理单元200,被配置为执行各自的数据处理逻辑;第二选通单元300的第二输入端310连接各数据处理单元200的输出端220,第二选通单元300包括第二输出端320和第三输出端330,第二输出端320与第一输入端110连接,第三输出端330用于输出待处理数据的处理结果,第二选通单元300,被配置为基于数据流式处理逻辑控制第二输入端310到第二输出端320或第三输出端330连通。
其中,第一选通单元100的输入数据包括外部输入的待处理数据以及第二选通单元300返回的数据处理结果,第一选通单元100通过控制自身所包括的第一输入端110到多个第一输出端120的通断,能够将通过第一输入端110输入第一选通单元100的输入数据选通到多个第一输出端120中的一个或多个,进而基于选通的第一输出端120所连接的数据处理单元200,执行该数据处理单元200对应的数据处理逻辑。将第一输入端110输入第一选通单元100的输入数据选通到不同的第一输出端120,进会被不同的数据处理单元200执行不同的数据处理逻辑,得到不同的数据处理结果。
上述数据流式处理电路,基于第一选通单元的各第一输出端与各数据处理单元的固定连接关系,能够通过第一选通单元对第一输入端到各第一输出端的通断控制,将第一输入端在不同阶段的输入数据分别传输到指定的数据处理单元,通过数据处理单元对相应数据执行各自的数据处理逻辑后,将处理得到的结果输出至第二选通单元,并由第二选通单元根据数据流式处理逻辑控制与第二输出端或第三输出端连通,即控制数据处理结果返回至第一选通单元作为下一阶段的输入或直接输出,从而对待处理数据实现符合数据流式处理逻辑的流式处理,在整个数据处理过程中,可直接通过第一输入端输入待处理数据,在第三输出端得到待处理数据的处理结果,不依赖于运算类指令的调用,也无需对处理得到的中间数据进行寄存,有效提高了数据处理性能。
可选的,第一选通单元100的第一输入端110可以是在一次流式处理过程中按顺序依次输入多次数据的时序多输入端口,该时序多输入端口的数量可以是一个,也可以是多个。
当第一选通单元100的时序多输入端口为多个时,时序多输入端口的数量可以根据输入数据的来源进行确定。例如,在仅存在一个数据流式处理电路10的情况下,时序多输入端口的数量可以是两个,其中一个时序多输入端口用于输入待处理数据,其中另一个时序多输入端口用于输入第二选通单元300返回的数据处理结果。再例如,如图2所示,在数据流式处理电路10a为数据流式处理电路模组20中的一个组成单元的情况下,数据流式处理电路10a中第一选通单元100a的时序多输入端口的数量可以为三个,第一个时序多输入端口用于输入待处理数据,第二个时序多输入端口用于输入数据流式处理电路10a中第二选通单元300a返回的数据处理结果,第三个时序多输入端口用于输入数据流式处理电路10b中第二选通单元300b输出的数据处理结果。其中,数据流式处理电路10b为数据流式处理电路模组20的另一组成单元。
对于第一输入端110为时序多输入端口的情况,对于第一选通单元100的输入数据中的待处理数据,可以按照数据流式处理逻辑确定待处理数据中的每一个数据的输入阶段,对于第一选通单元100的输入数据中的由第二选通单元300返回的各项数据处理结果,其本身是具有顺序的,因此第一选通单元100可以通过按照数据流式处理逻辑配置选通参数,针对每一个输入数据确定其对应的第一输出端,在不同的阶段按照当前所需执行的数据处理逻辑,将输入数据路由至相应的数据处理单元200。
示例性的,如图4所示,第一选通单元100的包括用于输入待处理数据的第一输入端110-1、以及用于输入第二选通单元300返回的数据处理结果的第一输入端110-2。
对于要进行的流式计算a+b-c,数据处理单元200包括加法运算单元和减法运算单元,加法运算单元的输入端与第一选通单元100的一个第一输出端120-1连接,减法运算单元的输入端与第一选通单元100的另一个第一输出端120-2连接。
基于数据流式处理逻辑,可以确定流式计算a+b-c需要通过二阶运算来实现,第一阶运算的输入数据为a和b,第一阶运算对应的数据处理单元为加法运算单元,第二阶运算的输入数据为加法运算单元的运算结果和c,第二阶运算对应的数据处理单元为减法运算单元。
基于数据流式处理逻辑,首先确定第一输入端110-1第一次输入数据为a和b,第二次输入数据为c,第一输入端110-2的第一次输入数据为加法运算单元的运算结果。
在处理过程中,第一选通单元100将第一输入端110-1第一次接收到的输入数据选通至第一输出端120-1,以将输入数据a和b输入加法运算单元进行加法运算,加法运算单元的运算结果首先通过第二输入端310输入第二选通单元300,第二选通单元300基于数据流式处理逻辑,将加法运算单元的运算结果选通到第二输出端320,第二输出端320与第一输入端110-2连接,通过第一输入端110-2将加法运算单元的运算结果输入第一选通单元100,第一选通单元100将第一输入端110-2第一次接收到的输入数据、以及第一输入端110-1第二次接收到的输入数据即加法运算单元的运算结果,选通至第一输出端120-2,即将加法运算单元的运算结果和输入数据输入至减法运算单元进行减法运算,从而得到a+b-c的运算结果并输入第二选通单元300,第二选通单元300基于数据流式处理逻辑,将a+b-c的运算结果选通到第三输出端330,以从第三输出端330输出a+b-c的运算结果。
在本实施例中,第一选通单元100采用时序多输入端口作为输入端口,能够有效减少第一选通单元100的端口数量,简化数据流式处理电路10的电路布局。
考虑到对将第一选通单元100的第一输入端110设计为时序多输入端口,在处理过程中需要控制输入数据的输入时序,基于数据流式处理逻辑对第一选通单元100以及第二选通单元300配置的选通控制参数较为复杂,为简化对第一选通单元100以及第二选通单元300配置的选通控制参数,将第一选通单元100以及第二选通单元300设计为多输入多输出的结构,并且使得每一输入端和每一输出端在针对同一组待处理数据进行处理时,最多输入或输出一次数据,对于流式运算过程中不同阶段涉及到相同的数据处理逻辑,例如a+b-c+d的运算过程中,涉及到两次加法运算,此时可以通过两个加法运算单元来进行两次加法运算。
在一个实施例中,第一输入端110、第二输入端310以及第二输出端320的数量均为多个,即第一选通单元100包括多个第一输入端110、多个第一输出端120,第二选通单元300包括多个第二输入端310和多个第二输出端320。
其中,每一第一输入端110和每一第二输入端310均为单输入端口,每一第一输出端120和每一第二输出端320均为单输出端口。单输入端口是指在针对同一组待处理数据进行处理时,最多输入一次数据,单输出端口是指在针对同一组待处理数据进行处理时,最多输出一次数据。
由于每一第一输入端110和每一第二输入端310均为单输入端口,每一第一输出端120和每一第二输出端320均为单输出端口,因此针对同一组待处理数据进行处理时,不存在端口的重复使用,基于数据流式处理逻辑,可以直接完成整个数据流式处理过程中每一阶段所需的连通关系的配置,在不同的阶段也不再需要对连通关系进行切换。
其中,第一选通单元100,被配置为基于数据流式处理逻辑确定每一第一输入端110到各第一输出端120的通断;第二选通单元300,被配置为基于数据流式处理逻辑确定每一第二输入端310到各第二输出端320和第三输出端330的通断。
在本实施例中,通过将第一选通单元100设计为包括多个第一输入端110和多个第一输出端120,将第二选通单元300设计为包括多个第二输入端310和多个第二输出端320,并使得第一选通单元100以及第二选通单元300的各输入端和输出端,针对同一组待处理数据进行处理时不重复使用,从而不再需要在不同的阶段对连通关系进行切换,一步即可实现整个数据流式处理过程中的连通关系的全部配置,处理过程简单便捷,且在数据处理过程中无需分阶段控制输入的输入,能够有效提高数据流式处理效率。
由于针对不同的数据流式处理逻辑,第一选通单元100和第二选通单元300的对自身所包含的输入端到各输出端的通断关系需要随之发生变化,为便于实现对通断关系的调整,将第一选通单元和第二选通单元均设计为配置单元与通断执行单元相结合的结构。其中,通断执行单元可以为多刀多掷开关、矩阵式开关(又称开关矩阵)等。
在一个实施例中,以第一选通单元100为例,如图5所示,第一选通单元100包括第一配置单元130和第一开关矩阵140;其中第一开关矩阵140,包括每一第一输入端110到每一第一输出端120的连通通道;
第一配置单元130,被配置为向第一开关矩阵140发送通断配置参数,通断配置参数用于控制各连通通道的通断,通断配置参数为基于数据流式处理逻辑配置的参数。
其中,通断配置参数的配置可以基于软件来实现,以实现针对不同的数据流式处理逻辑,配置不同的通断配置参数,实现不同的数据流式处理。示例性的,第一配置单元130可以为通断配置参数的输入接口,处理器可以通过该第一配置单元130向第一开关矩阵140输入基于数据流式处理逻辑配置的通断配置参数,以使第一开关矩阵140基于通断配置参数控制各连通通道的通断。
第一开关矩阵140是具有多个输入端和多个输出端的开关矩阵。开关矩阵包括每一个输入端到每一个输出端的通路,并且通过通断配置参数可以控制每一个通路的连通或关断,基于开关矩阵能够实现任意输入端到任意输出端的路由。
示例性的,第一开关矩阵140具有编号为1至10的10个输入端口和编号为11至20的10个输出端口,通过调整输入第一开关矩阵140的通断配置参数,可以实现编号1的输入端口到编号11至20的任意输出端口的连通。在其中一个实施例中,编号1的输入端口可以与编号11至20的输出端口中的一个输出端口连通,也可以与编号11至20的输出端口中的两个以上的输出端口连通。具体的连通数量和连通的输出端口基于通断配置参数来确定。可以理解,对于第二选通单元,其组成部分可以与第一选通单元相同或相似,不再重复描述。
可选的,通断配置参数的获取可以是通过外部分析单元对数据处理表达式进行解析得到数据流式处理逻辑,外部分析单元将基于数据流式处理逻辑生成的通断配置参数输入第一配置单元来得到通断配置参数。第一配置单元也可以基于自身具备的解析功能,对输入的数据处理表达式进行解析,得到数据流式处理逻辑,并基于数据流式处理逻辑生成通断配置参数。在实际的应用中,可以根据第一配置单元的算力确定是否配置解析功能,进而确定通断配置参数的获取方式
在本实施例中,通过将第一选通单元设计为第一配置单元与第一开关矩阵相结合的结构,能够直接通过第一配置单元实现通断配置参数的配置,实现配置单元与执行单元的分离,能够简化执行单元的数据处理量,提高配置通断配置参数的过程中的响应速度。
对于第一选通单元100中的第一开关矩阵140,可以有多种不同的内部组成结构。
在其中一个实施例中,第一开关矩阵140包括多个第一数据选择器;第一数据选择器142,包括各第一输入端110到同一第一输出端120的一组连通通道;第一数据选择器142,被配置为基于通断配置参数,控制一组连通通道中的一个连通通道连通。
其中,数据选择器是指在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路。示例性的,数据选择器包括四个数据输入端D0、D1、D2、D3和一个输出端Y,基于通断配置参数,能够从D0、D1、D2、D3这四个输入端的输入数据中选出任何一个并送到输出端Y实现四选一的功能。
示例性的,如图6所示,图6中以第一开关矩阵为4输入4输出的交叉开关矩阵(crossbar)为例,通过4个4选1的数据选择器MUX,可实现4个输入到4个输出的任意路由。其中,针对数据选择器MUX1,其输入端包括input1、input2、input3和input4,其输出端包括output1。从而实现input1、input2、input3和input4中的一个到output1的路由。
第二选通单元300中的第二开关矩阵的内部实现与第一选通单元100中第一开关矩阵140类似,区别在于其输入端和输出端的数量可能存在差异。示例性的,通过软件配置与第一开关矩阵连接的第一配置单元和与第二开关矩阵连接的第二配置单元,这两个配置单元产生crossbar中每个数据选择器MUX的选择信号即通断配置参数,后续电路进行流式处理时,通过选择信号控制输入到输出的路由关系。
在本实施例中,通过多个第一数据选择器来实现对第一输出端对其中一个第一输入端的选择,能够确保每一个输出端仅输出一个数据,便于实现对每一个传输数据的定位和溯源,提高数据处理结果的准确性。
上面介绍了第一选通单元100相关的实施例,与第一选通单元100连接的是数据处理单元200,以下各实施例为针对数据处理单元200的相关介绍。首先
数据流式处理电路10所包括的数据处理单元200的数量为多个。在流式处理的不同数据处理阶段,可以通过不同的数据处理单元来实现。其中,数据流式处理电路10所包含的多个数据处理单元200可以是分别用于执行不同的数据处理逻辑的单元,也可以是多个数据处理单元200中的一部分数据处理单元用于执行相同的数据处理逻辑。举例来说,在a+b-c+d的运算过程中,涉及到两次加法运算,则可以通过两个加法运算单元来进行两次加法运算,这两个加法运算单元都是用于对输入数据进行加法运算,具有相同的数据处理逻辑即加法运算。
可选的,对于第一输入端为时序多输入端口的情况,也可以基于同一数据处理单元执行多次数据处理逻辑,对于第一输入端为单输入端口的情况,则需要基于多个相同的数据处理单元分别执行一次数据处理逻辑。为便于描述,以下各实施例以第一输入端为单输入端口的情况为例进行说明。
在一个实施例中,数据处理单元200包括多数据处理单元200和单数据处理单元200中的至少一种。多数据处理单元200,即为对多项数据进行处理的数据处理单元,其输入数据需要为多项。多数据处理单元200的输入端210连接至少两个第一输出端120。单数据处理单元200,即为对单项数据进行处理的数据处理单元,其输入数据需要为一项,单数据处理单元200的输入端210连接一个第一输出端120。
多数据处理单元200包括两项输入数据的数据处理单元、以及两项以上输入数据的数据处理单元。例如,对于数据运算的场景,如加减乘除等基本运算,每一多数据处理单元200的输入数据均可以设置为两项,能够实现数据阶段的快速划分,快速解析得到数据流式处理逻辑,从而有效提高通道配置参数的生成效率。再例如,在图形绘制场景,需要对于某些图形基于两项以上的图像参数来确定图像的具体形状,则需要输入的数据包括至少两项,例如正方体的长宽高,三角形的三条变长等。
对于数据处理单元200,在其所需的数据的项数为两项以上的情况下,在将数据传输至数据处理单元200时,可以先将该数据处理单元200进行时序同步。以避免数据处理单元200处于等待状态导致对数据处理单元200的无效占用。
在一些实施例中,如图7所示,数据流式处理电路10还包括时序同步单元250;时序同步单元250是用于对多项数据进行时序同步的处理单元。时序同步单元250的输入端与至少两个第一输出端120连接,时序同步单元250的输出端与数据处理单元200的输入端210连接;时序同步单元250,被配置为将至少两个第一输出端120的输出数据同步传输至数据处理单元200的输入端210。以时序同步单元250连接的第一输出端120的数量为2为例,时序同步单元250将两个第一输出端120输出的数据进行数据时序同步之后,将时序同步的两项数据经由数据处理单元200的输入端210传输至数据处理单元200。
在本实施例中,对于需要传输至数据处理单元200的数据,在传输至数据处理单元200之前,通过在至少两个第一输出端120和数据处理单元200增加时序同步单元,对至少两个第一输出端120输出的数据进行数据时序同步后再传输至数据处理单元200,能够避免出现仅有一项数据传输至数据处理单元200,导致对数据处理单元200由于缺乏处理数据处于等待状态,能够提高数据处理单元200的有效利用率。
下面通过一些实施例来阐述时序同步单元进行时序同步的实现原理。
在一些实施例中,时序同步单元250包括至少两个数据队列252;每一数据队列252用于写入一个第一输出端120的输出数据;时序同步单元250,被配置为当各数据队列252均为非空队列时,将各数据队列252中写入的数据同步传输至数据处理单元200的输入端210。
其中,数据队列252与数据处理单元200所需连接的第一输出端120一一对应。例如,如图8所示,当数据处理单元200所需连接的输入数据分别为input1和input2时,时序同步单元250包含两个2表项(entry)的数据队列(queue),两个queue分别和input1和input2对应。
对于先接收到的输入数据,输入数据首先被压入数据队列的尾部,当数据队列非空时,该数据队列对应的valid信号拉高,下游的数据处理单元输入ready信号对时序同步单元进行反压,以实现输入数据时序的调整。
如果两个数据队列都非空,表示两个输入数据都已经就绪,可将数据发射至下游的数据处理单元。其中,两个数据队列均为非空的判断,可以使用两个与门(and gate)来实现,在与门满足导通条件时,得到两个数据队列的读信号,当两个输入数据均已经就绪,并且下游的数据处理单元没有反压时序同步单元时,可将两个输入数据发射给下游的数据处理单元。
示例性的,如图9所示,一个输入数据input1在T1时刻输入,此时另一个输入数据input2还没有输入,不能进行数据的发射,此时input1进入队列进行等待,input2直到T3时刻才输入,T4时,检测到两个数据队列都为非空,可以进行数据的发射,T4时刻将两个输入数据发射给下游的数据处理单元。
在本实施例中,通过检测数据队列是否均为非空的方式来同时将各数据队列中写入的数据传输至数据处理单元,提供了一种简单且可靠的同步方式,能够简化数据的时序同步处理的复杂度,提高数据时序同步的处理效率。
在对数据进行流式运算时,输入数据除了均为可变数据的情况,还存在部分基于常量的运算的情况,在数据流式处理电路的设计时,还可以考虑基于常量的相关计算。
在一些实施例中,如图10所示,数据流式处理电路10还包括常量配置单元270和第二数据选择器280;第二数据选择器280,被配置为基于数据流式处理逻辑,对常量配置单元270所配置的常量以及至少一个第一输出端120的输出数据进行选择并输出;第二数据选择器280的输出端与多数据处理单元200的输入端210连接。
其中,常量配置单元270用于配置在数据流式处理过程中所需要使用的常量,常量配置单元270所配置的常量可以作为任意一个多数据处理单元的其中一项输入数据,以对配置的常量数据与其他的变量数据进行运算。为了确保每一数据处理单元的输入端的数量与其执行数据处理逻辑所需的数据项数相同,可以将常量配置单元270的输出段与多数据处理单元的所对应的其中一个第一输出端连接至第二数据选择器280,通过第二数据选择器280根据数据流式处理逻辑对常量数据或从第一选通单元100输出的其中一项数据中进行选择。
可选的,第二数据选择器280可以设置与时序同步单元250与数据处理单元之间,当第二数据选择器导通至数据处理单元200的对象为时序同步单元250,则数据处理单元200会接收到来自时序同步单元250的ready信号,进行数据同步处理,当当第二数据选择器导通至数据处理单元200的对象为常量配置单元270所配置的常量,则数据处理单元200不会接收到来自时序同步单元250的ready信号,此时数据处理单元200的处理对象为常量配置单元270所配置的常量以及第一选通单元100输出的另一项数据时,此时不需要对第一选通单元100输出的另一项数据进行反压,从而直接传输至数据处理单元200。
在一个实施例中,多数据处理单元200包括浮点数据运算单元、定点数据运算单元、数据移位单元中的至少一种;单数据处理单元200包括数据类型转换单元。
其中,浮点数据运算单元是指对浮点数进行运算的单元,浮点数是指小数点的位置不固定,可以浮动的数。定点数据运算单元是指对定点数进行运算的单元,定点数是指规定小数点位置固定不变的数。定点与浮点是指计算机存储数字的格式,在计算机中,通常是用定点数来表示整数和纯小数,分别称为定点整数和定点小数。对于既有整数部分、又有小数部分的数,一般用浮点数表示。对于浮点数据运算单元和定点数据运算单元,其输入数据的项数均为两项,且输入数据的类型相同,例如均为浮点数或者均为定点数。基于两项输入数据,可以进行加减乘除等基本运算。
示例性的,浮点数据运算单元包括浮点数加法运算单元、浮点数减法运算单元、浮点数乘法运算单元、浮点数除法运算单元等中的至少一种。定点数据运算单元包括定点数加法运算单元、定点数减法运算单元、定点数乘法运算单元、定点数除法运算单元等中的至少一种。在其他实施例中,浮点数据运算单元和定点数据运算单元的运算类型还可以为幂运算、开方运算等。数据移位单元是指对定点数据进行移位处理的单元,在定点处理过程中,可以使用数据移位单元进行数据的定点化操作。
数据类型转换单元包括浮点到定点转换单元和定点到浮点转换单元两种,数据类型转换单元是一种单目运算单元,是将第一数据按照相应的转换逻辑进行转换处理后得到的第二数据。即,数据类型转换单元的输入数据和输出数据的数量均为1个。
在一个具体的应用中,数据流式处理电路的结构如图11所示,各部分的功能具体包括四部分,第一部分为缓存读取部分,第二部分为第一连通控制部分,第三部分为数据处理部分,第四部分为第二连通控制部分。
如图11所示,第一部分包括缓存读取接口(buffer read interface(master)),作为主设备发送读缓存的请求,具有多个读口,可满足较高的并行数据处理场景。
第二部分包括:数据源交叉开关矩阵(source crossbar)和数据源交叉开关矩阵配置单元(source crossbar config unit)。
其中,数据源交叉开关矩阵,即第一选通单元,用于将不同来源的数据源选通到相应的输出端口。数据源交叉开关矩阵配置单元,即第一配置单元,用于在执行数据流式处理之前,通过软件配置好数据源交叉开关矩阵的开关,后续流式处理过程中可直接进行大批量的数据处理。
第三部分包括:数据源时序同步单元(source syn unit)、常量配置单元(constconfig unit)和数据处理单元。
其中,数据源时序同步电路用于对不同数据源间进行时序的同步处理,将不同步的数据进行对齐,然后发送给后续的数据运算单元;常量配置单元,用于在运算过程中,有些数据处理是与常量进行运算的,通过软件配置好常量值,后续流式处理过程中可直接使用这些配置好的常量。
数据处理单元包括定点加减法单元int_add、定点乘法单元int_mul、定点除法单元int_div、定点移位单元int_shift、浮点加减法单元fp_add、浮点乘法单元fp_mul、浮点除法单元fp_div、浮点到定点转换单元fp2int_cvt以及定点到浮点转换单元int2fp_cvt中的至少一部分,对于在数据流式处理过程中经常使用的数据处理单元,可以布局多个相同的数据处理单元。在其他实施例中,数据流式处理电路可以仅设置用于处理定点数据的数据处理单元或仅设置用于处理浮点数据的数据处理单元。
第三部分包括:数据目的交叉开关矩阵(destination crossbar)和数据目的交叉开关矩阵配置单元(destination crossbar config unit)。
其中,数据目的交叉开关矩阵,为第二选通单元,用于将不同运算单元的计算结果选通到相应的输出端口。
数据目的交叉开关矩阵配置单元,为第二配置单元,用于在执行数据流式处理之前,通过软件配置好crossbar的开关,后续流式处理过程中可直接进行大批量的数据处理。
示例性的,一种基于数据流式处理电路内部流式处理示意图12所示,该数据流式处理电路的数据处理单元为仅用于处理定点数据的定点处理单元(INT ALU GROUP)。数据流式处理电路的配置单元一共有三个,分别为数据源交叉开关矩阵配置单元(第一配置单元)、数据目的交叉开关矩阵配置单元(第二配置单元)和常量配置单元,三个配置单元可以通过配置接口进行参数配置。
数据源交叉开关矩阵配置单元用于配置数据源交叉开关矩阵(第一选通单元)中输入端口到输出端口的选通,数据目的交叉开关矩阵配置单元用于配置数据目的交叉开关矩阵(第二选通单元)中输入端口到输出端口的选通,常量配置单元用于配置常量数据所连通的数据处理单元的输入端。
在进行定点处理之前,确定数据处理逻辑中是否需要使用到常量,若是,则需要基于数据流式处理电路中的常量配置单元配置常量数据与数据处理单元的输入端的连通,若否,则不需要进行常量数据与数据处理单元的输入端的连通。
以进行(a+b)/c的流式运算为例,其中a和b为矢量数据流,c为常量数据,需要先基于数据流式处理电路中的数据源交叉开关矩阵配置单元、常量配置单元、数据目的交叉开关矩阵配置单元进行选通配置,具体包括:通过数据源交叉开关矩阵配置单元对数据源交叉开关矩阵配置3条通路,分别为数据a的读取接口到定点加减法单元的输入端的选通通路,数据b的读取接口到定点加减法单元的输入端的选通通路,数据目的交叉开关矩阵的输出端到定点除法单元的输入端的选通通路。
通过常量配置单元配置常量数据到定点除法单元的输入端的连通。
通过数据目的交叉开关矩阵配置单元对数据目的交叉开关矩阵配置2条通路,分别为定点加减法单元的输出端到数据源交叉开关矩阵的输入端的选通,定点除法单元的输出端到写入缓存接口的选通通路。
在具体的应用中,还是以进行(a+b)/c的流式运算,其中a和b为矢量数据流,c为常量数据为例。首先通过读取缓存得到数据a和数据b,通过配置好的数据源交叉开关矩阵,将数据a和数据b路由到定点加减法单元对应的输入口,通过数据目的交叉开关矩阵将定点加减法的运算结果路由到数据源交叉开关矩阵的输入,再通过数据源交叉开关矩阵将定点加减法的运算结果路由到定点除法单元对应的输入口,另外常量数据c事先通过常量配置单元配置好,选通到定点除法单元,定点除法单元完成计算后,通过数据目的交叉开关矩阵,将定点除法单元的计算结果路由到缓存写入接口进行数据输出。
数据流不断从缓存读取接口流入,经过流式处理后,流出至缓存写入接口。数据流式处理电路每一次数据流执行完即为完成一组数据处理,得到一组数据处理结果。例如定点除法单元在计算第一组数据(a1+b1)/c1时,定点加减法单元可以计算第二组数据中a2+b2。定点除法单元在输出第一组数据(a1+b1)/c1的结果后,可以继续计算第二组数据中(a2+b2)/c2,能够实现多组数据的快速计算,有效提高流式数据处理效率。
当需要进行新的流式数据处理时,可以通过配置接口,将新的流式数据处理处理逻辑,输入数据流式处理电路中的配置单元,以更新配置单元的配置参数,以使配置单元基于新的配置参数重新配置数据流式处理电路中的各个选通通路。
本申请还提供了一种数据流式处理电路模组,如图13所示,数据流式处理电路模组包括至少两个数据流式处理电路如10a和10b;其中一个数据流式处理电路10a的第二选通单元300还包括第四输出端340,第四输出端340与其中另一个数据流式处理电路10b的第一输入端110连接。
进一步地,数据流式处理电路10b的第二选通单元300还包括第四输出端340,第四输出端340与其中另一个数据流式处理电路10a的第一输入端110连接。实现数据流式处理电路10a与数据流式处理电路10b的双向数据互通。
其中,数据流式处理电路10a与数据流式处理电路10b可以是具有不同数据处理单元的两个电路,也可以是具有相同数据处理单元的两个电路。例如,数据流式处理电路10a中每一类数据处理单元的数量为1,数据流式处理逻辑需执行同样的数据处理逻辑两次,则另一次可通过数据流式处理电路10b来完成。
在一个实施例中,数据流式处理电路模组20包括第一数据流式处理电路10a和第二数据流式处理电路10b;第一数据流式处理电路10a的数据处理单元200为定点处理单元;第二数据流式处理电路10a的数据处理单元200为浮点处理单元。定点数据处理由数据流式处理电路10a来完成,浮点数据处理由数据流式处理电路10b来完成。
数据流式处理电路模组的配置单元也为三个,同一数据流式处理电路模组中的不同数据流式处理电路的多个数据源交叉开关矩阵,通过同一个数据源交叉开关矩阵配置单元进行配置;不同数据流式处理电路的多个数据目的交叉开关矩阵,通过同一个数据目的交叉开关矩阵配置单元进行配置;不同数据流式处理电路的通过同一个常量配置单元进行配置。
以进行c+int2fp_cnt(a*b)的流式运算为例,其中a和b为定点数INT32,c为浮点数FP32,数据流式处理电路模组包括定点数据流式处理电路和浮点数据流式处理电路。
基于数据源交叉开关矩阵配置单元、常量配置单元、数据目的交叉开关矩阵配置单元,分别对定点数据流式处理电路和浮点数据流式处理电路进行选通通路配置,具体包括:
通过数据源交叉开关矩阵配置单元对定点数据流式处理电路的数据源交叉开关矩阵配置2条通路,分别为数据a的读取接口到定点乘单元输入端的选通通路,数据b的读取接口到定点乘单元输入端的选通通路。
通过数据源交叉开关矩阵配置单元对浮点数据流式处理电路的数据源交叉开关矩阵配置2条通路,分别为定点数据流式处理电路中数据目的交叉开关矩阵的输出端到浮点数据流式处理电路中定点到浮点转换单元的输入端的选通通路,浮点数据流式处理电路中数据目的交叉开关矩阵的输出端到浮点数据流式处理电路中浮点加减法单元的输入端的选通通路。
通过常量配置单元配置常量数据到浮点数据流式处理电路中的浮点加减法单元的输入端的连通通路;
通过数据目的交叉开关矩阵配置单元对定点数据流式处理电路的数据目的交叉开关矩阵配置1条通路,即定点乘法单元的输出端到浮点数据流式处理电路的数据源交叉开关矩阵的输入端的选通通路。
通过数据目的交叉开关矩阵配置单元对浮点数据流式处理电路的数据目的交叉开关矩阵配置2条通路,分别为浮点加减法单元的输出端到浮点数据流式处理电路的数据源交叉开关矩阵的输入端的选通通路,以及浮点加减法单元的输出端到缓存写入接口的选通通路。如图14所示,以c+int2fp_cnt(a*b)为例进行说明,其中a和b为定点数INT32,c为浮点数FP32,首先进行a*b运算,数据流为加粗箭头所示。然后跨group到FP ALU GROUP,通过加粗箭头进行定点到浮点转换操作,进行定点到浮点的转换,转换后通过数据源交叉开关矩阵路由到浮点加减法单元的入口处,与常量操作数c进行浮点加法运算,得到结果经数据目的交叉开关矩阵路由到缓存写入接口,写入到缓存中。
通过上述数据流式处理电路模组进行数据流式处理,即使涉及到不同数制之间的转换操作,中间也无气泡,全部由硬件进行操作,效率很高。利用流式处理无点间依赖的特点,在处理数据流前配置好crossbar,然后输入数据进行流式处理,完成一阶处理后,通过开关矩阵将结果送入下个阶段的数据处理单元,无需数据中转,从数据输入到输出可完成多阶运算逻辑,效率很高;通过同步逻辑进行输入数据的同步,软件无需关注数据的输入输出时序,全部由硬件完成,对软件编程友好,数据源和目的交叉开关矩阵均为局部互联线,对芯片后端布局布线友好,非常容易扩展为高性能矢量处理单元。
在本实施例中,通过多个数据流式处理电路来构成数据流式处理电路模组,能够实现数据流式处理电路的有效扩展,便于实现复杂的数据流式处理流程。数据流式处理电路模组和数据流式处理电路,可高效处理AI运算中大多数流式数据处理场景,数据流式处理电路模组中的数据流式处理电路,通过局部的交叉连线对输入端口和输出端口进行选通,布局布线压力小,如果只例化一份,可以作为标量流式处理器,也可重复例化多份,作为矢量流式处理器。
本申请还提供了一种电子芯片,电子芯片包括数据流式处理电路10和数据流式处理电路模组20中的至少一种,电子芯片具有配置接口,配置接口用于配置电子芯片中的数据流式处理电路或数据流式处理电路模组的数据流式处理逻辑。电子芯片可以应用于具有数据流式处理的需要的电子设备,实现高效的数据流式处理。
其中,电子芯片中的配置接口分别连接数据流式处理电路或数据流式处理电路模组中的第一配置单元、常量配置单元以及第二配置单元,可以通过软件程序直接对第一配置单元、常量配置单元以及第二配置单元进行参数输入和参数更新,以使第一配置单元、常量配置单元以及第二配置单元基于当前参数对第一选通单元、数据处理单元以及第二选通单元之间进行选通控制,基于选通通路实现相应的数据流式处理逻辑。
在一个具体的应用场景中,数据流式处理电路10、数据流式处理电路模组20以及电子芯片,可以应用于AI处理器,AI处理器可以高效地对数据进行各种流式运算,例如AI领域的推理、训练过程中的预处理、后处理等包含了大量的对数据的流式处理的处理过程,具体如图像数据、feature map数据等的处理,通过流式运算实现对这些数据进行定点或浮点的加减乘除、比较、转换等运算。
本申请的实施例还提供了一种数据流式处理方法,上述数据流式处理方法可以应用于处理器,该处理器包括上述数据流式处理电路10,或是数据流式处理电路模组20。如图15所示,数据流式处理方法具体包括以下步骤:
步骤1502,基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置。
其中,数据流式处理逻辑可以通过对待处理数据所对应的数据处理表达式进行解析得到,基于数据流式处理逻辑可以生成通断配置参数,以对数据流式处理电路进行选通参数配置。可选的,数据流式处理逻辑的解析过程,可以是通过处理器对数据处理表达式进行解析得到,处理器还可以基于数据流式处理逻辑生成通断配置参数,并将通断配置参数输入数据流式处理电路的第一选通单元实现选通参数的配置。在其他实施例中,第一选通单元中的第一配置单元自身具备的解析功能,可以直接对输入的数据处理表达式进行解析,得到数据流式处理逻辑,并基于数据流式处理逻辑生成通断配置参数进行选通参数配置。在实际的应用中,可以根据第一配置单元的算力确定是否配置解析功能,进而确定进行选通参数的配置方式。
步骤1504,将与数据流式处理逻辑匹配的待处理数据,输入数据流式处理电路,以对待处理数据执行数据流式处理逻辑。
其中,待处理数据是需要基于数据流式处理逻辑进行流式数据处理的处理对象。待处理数据可以是以组为单位,每一组待处理数据可以包括一个或多个待处理数据。例如a+b-c这一表达式中,待处理数据为a、b、c构成的一组数据。再例如a+b-c+d这一表达式中,待处理数据为a、b、c、d构成的一组数据。
在一个实施例中,处理器从缓存中读取与数据流式处理逻辑匹配的待处理数据,将待处理数据输入数据流式处理电路,以使得数据流式处理电路对待处理数据执行数据流式处理逻辑。可选的,数据流式处理电路可以是单个的数据流式处理电路,也可以是数据流式处理电路模组中的至少一个数据流式处理电路。当数据流式处理电路为单个数据流式处理电路时,处理器可以将待处理数据输入该单个数据流式处理电路的第一选通单元的第一输入端,使得第一选通单元基于数据流式处理逻辑控制待处理数据到各数据处理单元之间的连通,再经由第二选通单元,按照数据流式处理逻辑确定数据处理单元的输出结果的传输方式为传输至第一选通单元还是直接输出,当数据处理单元的输出结果的传输方式为直接输出时,该数据处理结果即为待处理数据的处理结果。
步骤1506,确定数据流式处理电路对待处理数据的处理结果。
其中,数据流式处理电路对待处理数据的处理结果可以直接从数据流式处理电路中的输出端口获得,处理器从数据流式处理电路中的输出端口所输出的数据,即为输入数据流式处理电路的待处理数据的处理结果,待处理数据的处理结果的确定方式简单且高效。
在本实施例中,通过基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置,可以针对不同的数据流式处理需求确定出不同的数据流式处理逻辑,进而对数据流式处理电路配置相应的选通参数,以使进行参数配置后的数据流式处理电路能够实现数据流式处理需求对应的数据流式处理逻辑。通过将待处理数据输入数据流式处理电路,能够通过数据流式处理电路直接进行数据流式处理,直接得到待处理数据的处理结果,在整个处理过程中无需数据中转,从数据输入到输出可完成多阶运算逻辑,有效提高了数据流式处理效率。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据流式处理方法的数据流式处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据流式处理装置实施例中的具体限定可以参见上文中对于数据流式处理方法的限定,在此不再赘述。
在一个实施例中,如图16所示,提供了一种数据流式处理装置,包括:参数配置模块1602、数据输入模块1604和结果确定模块1606,其中:
参数配置模块1602,用于基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置。
数据输入模块1604,用于将与所述数据流式处理逻辑匹配的待处理数据,输入所述数据流式处理电路,以对所述待处理数据执行所述数据流式处理逻辑。
结果确定模块1606,用于确定所述数据流式处理电路对所述待处理数据的处理结果。
上述数据流式处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图17所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待处理数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据流式处理方法。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;将与数据流式处理逻辑匹配的待处理数据,输入数据流式处理电路,以对待处理数据执行数据流式处理逻辑;确定数据流式处理电路对待处理数据的处理结果。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;将与数据流式处理逻辑匹配的待处理数据,输入数据流式处理电路,以对待处理数据执行数据流式处理逻辑;确定数据流式处理电路对待处理数据的处理结果。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;将与数据流式处理逻辑匹配的待处理数据,输入数据流式处理电路,以对待处理数据执行数据流式处理逻辑;确定数据流式处理电路对待处理数据的处理结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (17)
1.一种数据流式处理电路,其特征在于,所述数据流式处理电路包括第一选通单元、多个数据处理单元以及第二选通单元;
所述第一选通单元包括第一输入端和多个第一输出端,所述第一输入端用于输入待处理数据,所述第一选通单元,被配置为基于数据流式处理逻辑控制所述第一输入端到各所述第一输出端的通断;
各所述数据处理单元的输入端分别连接多个所述第一输出端中的一部分,各所述数据处理单元,被配置为执行各自的数据处理逻辑,所述数据处理逻辑为所述数据流式处理逻辑的组成单元;
所述第二选通单元的第二输入端连接各所述数据处理单元的输出端,所述第二选通单元包括第二输出端和第三输出端,所述第二输出端与所述第一输入端连接,所述第三输出端用于输出所述待处理数据的处理结果,所述第二选通单元,被配置为基于所述数据流式处理逻辑控制所述第二输入端到所述第二输出端或所述第三输出端连通。
2.根据权利要求1所述的电路,其特征在于,所述第一输入端、所述第二输入端以及所述第二输出端的数量均为多个,且每一所述第一输入端和每一所述第二输入端均为单输入端口,每一所述第一输出端和每一所述第二输出端均为单输出端口;
所述第一选通单元,被配置为基于数据流式处理逻辑确定每一所述第一输入端到各所述第一输出端的通断;
所述第二选通单元,被配置为基于所述数据流式处理逻辑确定每一所述第二输入端到各所述第二输出端和所述第三输出端的通断。
3.根据权利要求2所述的电路,其特征在于,所述第一选通单元包括第一配置单元和第一开关矩阵;
所述第一开关矩阵,包括每一所述第一输入端到每一所述第一输出端的连通通道;
所述第一配置单元,被配置为向所述第一开关矩阵发送通断配置参数,所述通断配置参数用于控制各所述连通通道的通断,所述通断配置参数为基于所述数据流式处理逻辑配置的参数。
4.根据权利要求3所述的电路,其特征在于,所述第一开关矩阵包括多个第一数据选择器;
所述第一数据选择器,包括各所述第一输入端到同一所述第一输出端的一组连通通道;
所述第一数据选择器,被配置为基于所述通断配置参数,控制所述一组连通通道中的一个连通通道连通。
5.根据权利要求1所述的电路,其特征在于,所述数据流式处理电路还包括时序同步单元;
所述时序同步单元的输入端与至少两个所述第一输出端连接,所述时序同步单元的输出端与所述数据处理单元的输入端连接;
所述时序同步单元,被配置为将至少两个所述第一输出端的输出数据同步传输至所述数据处理单元的输入端。
6.根据权利要求5所述的电路,其特征在于,所述时序同步单元包括至少两个数据队列;每一所述数据队列用于写入一个所述第一输出端的输出数据;
所述时序同步单元,被配置为当各所述数据队列均为非空队列时,将各所述数据队列中写入的数据同步传输至所述数据处理单元的输入端。
7.根据权利要求1所述的电路,其特征在于,所述数据处理单元包括多数据处理单元和单数据处理单元中的至少一种;
所述多数据处理单元的输入端连接至少两个所述第一输出端;所述单数据处理单元的输入端连接一个所述第一输出端。
8.根据权利要求7所述的电路,其特征在于,所述数据流式处理电路还包括常量配置单元和第二数据选择器;
所述第二数据选择器,被配置为基于所述数据流式处理逻辑,对所述常量配置单元所配置的常量以及至少一个所述第一输出端的输出数据进行选择并输出;
所述第二数据选择器的输出端与所述多数据处理单元的输入端连接。
9.根据权利要求7所述的电路,其特征在于,所述多数据处理单元包括浮点数据运算单元、定点数据运算单元、数据移位单元中的至少一种;所述单数据处理单元包括数据类型转换单元。
10.一种数据流式处理电路模组,其特征在于,所述数据流式处理电路模组包括至少两个如权利要求1至9中任一项所述的数据流式处理电路;
其中一个所述数据流式处理电路的所述第二选通单元还包括第四输出端,所述第四输出端与其中另一个所述数据流式处理电路的第一输入端连接。
11.根据权利要求10所述的数据流式处理电路模组,其特征在于,所述数据流式处理电路模组包括第一数据流式处理电路和第二数据流式处理电路;
所述第一数据流式处理电路的数据处理单元为定点处理单元;所述第二数据流式处理电路的数据处理单元为浮点处理单元。
12.一种电子芯片,其特征在于,所述电子芯片包括如权利要求1至9中任一项所述的数据流式处理电路、或如权利要求10至11中任一项所述的数据流式处理电路模组;
所述电子芯片具有配置接口,所述配置接口用于配置所述数据流式处理电路或所述数据流式处理电路模组的数据流式处理逻辑。
13.一种数据流式处理方法,其特征在于,应用于如权利要求1至9中任一项所述的数据流式处理电路、或如权利要求10至11中任一项所述的数据流式处理电路模组中的至少一个数据流式处理电路,所述方法包括:
基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;
将与所述数据流式处理逻辑匹配的待处理数据,输入所述数据流式处理电路,以对所述待处理数据执行所述数据流式处理逻辑;
确定所述数据流式处理电路对所述待处理数据的处理结果。
14.一种数据流式处理装置,其特征在于,应用于如权利要求1至9中任一项所述的数据流式处理电路、或如权利要求10至11中任一项所述的数据流式处理电路模组中的至少一个数据流式处理电路,所述装置包括:
参数配置模块,用于基于数据流式处理逻辑,对数据流式处理电路进行选通参数配置;
数据输入模块,用于将与所述数据流式处理逻辑匹配的待处理数据,输入所述数据流式处理电路,以对所述待处理数据执行所述数据流式处理逻辑;
结果确定模块,用于确定所述数据流式处理电路对所述待处理数据的处理结果。
15.一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求13所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求13所述的方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求13所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211399208.6A CN116974510A (zh) | 2022-11-09 | 2022-11-09 | 数据流式处理电路、电路模组、电子芯片、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211399208.6A CN116974510A (zh) | 2022-11-09 | 2022-11-09 | 数据流式处理电路、电路模组、电子芯片、方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974510A true CN116974510A (zh) | 2023-10-31 |
Family
ID=88477217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211399208.6A Pending CN116974510A (zh) | 2022-11-09 | 2022-11-09 | 数据流式处理电路、电路模组、电子芯片、方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974510A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117195989A (zh) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
-
2022
- 2022-11-09 CN CN202211399208.6A patent/CN116974510A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117195989A (zh) * | 2023-11-06 | 2023-12-08 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
CN117195989B (zh) * | 2023-11-06 | 2024-06-04 | 深圳市九天睿芯科技有限公司 | 向量处理器、神经网络加速器、芯片及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11995027B2 (en) | Neural processing accelerator | |
CN107341541B (zh) | 一种用于执行全连接层神经网络训练的装置和方法 | |
EP0644492B1 (en) | Apparatus for adaptively processing video signals | |
JPH0922404A (ja) | 同報通信プロセッサ命令を備えたアレイ・プロセッサ通信アーキテクチャ | |
CN114781632B (zh) | 基于动态可重构脉动张量运算引擎的深度神经网络加速器 | |
US7734896B2 (en) | Enhanced processor element structure in a reconfigurable integrated circuit device | |
CN102122275A (zh) | 一种可配置处理器 | |
CN113064852B (zh) | 一种可重构处理器及配置方法 | |
WO2023065701A1 (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
CN110737628A (zh) | 一种可重构处理器和可重构处理器系统 | |
CN116974510A (zh) | 数据流式处理电路、电路模组、电子芯片、方法和装置 | |
CN114219699A (zh) | 匹配代价处理方法及电路和代价聚合处理方法 | |
CN210295181U (zh) | 一种用于执行神经网络计算的脉动阵列系统及处理设备 | |
CN111178492B (zh) | 计算装置及相关产品、执行人工神经网络模型的计算方法 | |
CN111078286A (zh) | 数据通信方法、计算系统和存储介质 | |
JP7250953B2 (ja) | データ処理装置、及び人工知能チップ | |
CN115081600A (zh) | 执行Winograd卷积的变换单元、集成电路装置及板卡 | |
CN117806590B (zh) | 一种矩阵乘硬件架构 | |
US8150949B2 (en) | Computing apparatus | |
JP3532102B2 (ja) | 間接ローテータグラフネットワーク及び間接ローテータグラフネットワークにおける伝送経路の設定方法 | |
CN115081602A (zh) | 执行Winograd卷积的计算装置、集成电路装置及板卡 | |
CN114443146A (zh) | 基于存算一体存储器的矢量处理器及其运行方法 | |
CN118550504A (zh) | 一种基-2低延迟蒙哥马利模乘asic模块及其方法 | |
CN113867797A (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
JP4958224B2 (ja) | 処理回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |