CN117425879A - 一种基于向量计算的处理方法及装置 - Google Patents
一种基于向量计算的处理方法及装置 Download PDFInfo
- Publication number
- CN117425879A CN117425879A CN202180098673.3A CN202180098673A CN117425879A CN 117425879 A CN117425879 A CN 117425879A CN 202180098673 A CN202180098673 A CN 202180098673A CN 117425879 A CN117425879 A CN 117425879A
- Authority
- CN
- China
- Prior art keywords
- processing
- request
- processed
- vector component
- destination
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 350
- 238000004364 calculation method Methods 0.000 title claims abstract description 39
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 376
- 238000000034 method Methods 0.000 claims abstract description 141
- 230000008569 process Effects 0.000 claims description 69
- 230000000977 initiatory effect Effects 0.000 claims description 39
- 230000005012 migration Effects 0.000 claims description 22
- 238000013508 migration Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 9
- 239000002699 waste material Substances 0.000 abstract description 10
- 238000013461 design Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 230000010354 integration Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 102100026693 FAS-associated death domain protein Human genes 0.000 description 1
- 101000911074 Homo sapiens FAS-associated death domain protein Proteins 0.000 description 1
- 241000497429 Obus Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种基于向量计算的处理方法及装置,用以提升向量部件的利用率,降低资源的浪费。该方法包括:向量部件接收多个请求者RQ分别发起的向量任务VT处理请求,所述VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求;获取所述一个或多个VT处理请求对应的待处理VT,得到VT集合;基于空闲的目的资源,对所述VT集合进行处理。
Description
本申请涉及通信技术领域,尤其涉及一种基于向量计算的处理方法及装置。
随着大数据时代的到来,处理器需要处理的数据越来越多,要求处理器能够低成本、高效率地处理数据。向量(vector)计算是目前非常流行的处理技术之一。参阅图1,若干个待处理的标量数据进行组合,可以得到一个向量单元;每个标量组成了向量单元中的一个通道(lane)。以及,若干条向量计算指令的集合可构成一个向量任务(vector task,VT)。通过将标量数据整合成向量,可以减少计算过程中性能和能耗的开销,从而提高数据计算的能耗比。
然而,由于向量通常由向量处理单元(vector process unit,VPU)进行统一处理,向量的最大可计算lane数由VPU的结构决定,若VT中待计算的向量lane数小于VPU中最大能够计算的向量lane数,则会存在VPU剩余的空闲资源较多,无法实现对资源的充分使用,从而导致向量部件利用率下降,造成资源的浪费。
发明内容
本申请提供一种基于向量计算的处理方法及装置,用以提升向量部件的利用率,降低资源的浪费。
第一方面,本申请实施例提供一种基于向量计算的处理方法,包括:向量部件接收多个请求者(requestor,RQ)分别发起的向量任务VT处理请求,所述VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求;然后,获取所述一个或多个VT处理请求对应的待处理VT,得到VT集合;基于空闲的目的资源,对所述VT集合进行处理。
其中,VT为由多个向量指令操作组成的集合,例如VT可以为定点乘加、浮点乘加、定点算数逻辑、浮点算术逻辑等向量指令操作中的至少一种指令组成的向量指令操作集合。向量部件可以为对VT进行向量计算的处理单元,向量部件包括但不限于向量计算部件(例如可以进行向量的加减乘除、逻辑计算或者移位等向量计算)、向量访存部件(例如可以对存储器中的向量数据进行读取或写入等向量计算)。示例性的,向量部件可以包括:用于缓存各个RQ中发送过来的VT和与各个RQ进行交互的向量任务池、用于根据获取的向量计算部件中的使用状态信息和向量任务池中缓存的VT来选取VT得到VT集合的调度模块、用于统计向量部件对资源的使用状态信息的资源表、用于负责执行VT集合的共享向量计算部件(share vector process unit,SVU)和负责对SVU处理后的处理结果进行整合的数据整合模块。RQ为VT的任一发起者,包括但不限于中央处理器(central processing unit,CPU)、CPU中的线程、图形处理器(graphics processing unit,GPU)、GPU中的线程、数字信号处理(digital signal processing,DSP)芯片。
通过该方法,在对VT进行处理之前,基于目的资源的空闲数量,以及多个RQ对目 的资源的请求数量,向量部件选择基于剩余的空闲目的资源有能力处理的一个或多个VT处理请求;然后,向量部件可以将选择的一个或多个VT处理请求对应的待处理VT的VT集合,作为一次输入数据进行向量计算,从而可以尽量避免向量部件中存在空闲的目的资源,并且可以实现对尽可能多的VT进行处理。向量部件的处理对象是VT集合,VT集合中包括多个待处理的VT,因此,相当于向量部件对多个待处理的VT实现了并行执行。这样,可以解决现有技术中VPU一次只能对一个RQ发起的一个待处理VT进行处理而导致的资源利用率低的问题,从而可以提升对向量部件中资源的利用率,降低资源的浪费。
在一种可能的设计中,为了提高RQ对VT处理请求申请成功的概率,RQ可以预先请求查询向量部件中目的资源的使用状态。本申请实施时,所述接收多个RQ分别发起的VT处理请求之前,向量部件可以接收第一RQ发起的查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;向所述第一RQ反馈所述使用状态信息。其中,第一RQ可以为任意一个RQ。
通过该设计,RQ通过查询向量部件中目的资源的使用状态信息,可以根据查询结果实现动态发起VT处理请求。例如,若向量部件中存在空闲的目的资源,RQ可以向向量部件申请空闲的目的资源的部分或全部;又例如,若向量部件中存在空闲的目的资源、但数量较少时,或者不存在空闲的目的资源时,RQ可以选择等待一定时长后再次向向量部件发起查询请求。这样,通过RQ与向量部件之间的交互,可以提高RQ申请目的资源的成功概率,以及可以提升对向量部件的利用率。
在一种可能的设计中,基于空闲的目的资源,对所述VT集合进行处理,可实施为:按照执行周期对所述VT集合进行处理;其中,所述VT集合中包含的不同待处理VT对应的执行周期数相同或不同,所述执行周期数由所述待处理VT确定。在每个执行周期中,执行:若目的资源的空闲数量大于或等于第一待处理VT对应的请求数量,对所述第一待处理VT的剩余未处理VT进行拆分;其中,所述第一待处理VT表示所述VT集合中任一未处理完成的待处理VT;通过所述第一待处理VT申请的请求数量的目的资源和所述向量部件中空闲的目的资源,对拆分之后的第一待处理VT进行处理。
通过该设计,向量部件可以实现对正在处理的VT的灵活处理,通过将未处理VT的拆分,一方面由于未处理VT的内容一定,在通过更多的目的资源对拆分之后的未处理VT进行处理的处理方式下,可以缩短该未处理完的VT的执行时间,另一方面还可以提高对向量部件的资源利用率。
在一种可能的设计中,所述VT处理请求还包含RQ标识信息,所述对所述VT集合进行处理之后,所述方法还包括:生成处理结果;根据所述RQ标识信息,将所述处理结果按照不同RQ进行划分,得到一个或多个子处理结果。
通过该设计,向量部件可以对得到的VT集合进行处理,还可以实现对来自不同RQ的待处理VT对应的处理结果进行拆分,从而可以区分不同RQ分别对应的子处理结果,进而还可以准确反馈回对应的RQ。
在一种可能的设计中,所述方法还包括:若存在第一RQ的VT处理请求未申请成功,向所述第一RQ反馈用于指示申请失败的应答信息。
通过该设计,向量部件可以及时对RQ发起的VT处理请求进行反馈,以使RQ及时变更VT处理请求或者采取其他对VT的处理途径,保证RQ对待处理VT的处理及时性。
基于上述设计,所述方法还包括:接收所述第一RQ重新发起的VT处理请求;其中,所述重新发起的VT处理请求中包含的目的资源的请求数量,小于上一次发起的VT处理请求中包含的目的资源的请求数量。
通过该设计,RQ可以根据对VT处理请求的申请失败的应答信息,可以确定向量部件无法提供RQ请求的目的资源的数量,则可以灵活变更VT处理请求,尝试向向量部件请求更少数量的目的资源,从而可以提升对目的资源的申请成功率,以及充分利用向量部件中空闲的目的资源,提高向量部件的资源利用率。
在一种可能的设计中,所述VT处理请求还包含以下信息:VT的优先级;所述方法还包括:若存在第一RQ对第一VT处理请求申请成功,接收所述第一RQ发起的第二VT处理请求,且所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级;通过所述第一VT处理请求对应申请的请求数量的目的资源,对所述第二VT处理请求对应的待处理VT进行处理。
通过该设计,RQ可以根据任务优先级,实现对已申请成功的目的资源的抢先占用,从而可以保证有优先级较高的VT可以得到及时处理。
基于上述设计,所述方法还包括:接收第一RQ发起的迁移指示;根据所述迁移指示,将所述第一RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
通过该设计,向量部件在正在处理的VT需要暂停处理时,可以根据RQ的迁移指示,及时对处理进度进行存储,从而可以避免VT的处理异常。
在一种可能的设计中,所述方法还包括:接收第一RQ发起的资源释放指示;根据所述资源释放指示,对所述第一RQ申请成功的请求数量的目的资源进行释放。
通过该设计,基于RQ与向量部件之间的交互,可以及时地对RQ已申请资源的释放,进而可以避免资源的浪费。
第二方面,本申请实施例还提供一种基于向量计算的处理方法,包括:RQ向向量部件发起第一VT处理请求,所述第一VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;若确定所述第一VT处理请求申请成功,将所述待处理VT或所述待处理VT的获取地址信息发送给所述向量部件,以使所述向量部件获取所述待处理VT,并基于申请成功的目的资源进行处理。
在一种可能的设计中,所述向向量部件发起第一VT处理请求之前,所述方法还包括:向所述向量部件发起查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;接收所述向量部件反馈的所述使用状态信息;根据所述使用状态信息,确定所述向量部件中的目的资源的空闲数量,并确定小于或等于所述空闲数量的请求数量;或者,或者,若确定所述空闲数量小于预设阈值,等待预设时长后再次发起所述查询请求、或由所述RQ对所述待处理VT进行处理。
在一种可能的设计中,所述方法还包括:将待处理VT编译成多个不同的VT版本;其中,不同的VT版本对应的所述目的资源的请求数量不同。
通过该设计,RQ通过预先准备待处理VT的多个VT版本,可以在对目的资源申请成功时,更加快速的提供给向量部件进行处理,从而可以提升向量计算的效率。
在一种可能的设计中,所述向向量部件发起第一VT处理请求,包括:根据所述空闲数量,从请求数量小于或等于所述空闲数量的至少一个VT版本中,以最大请求数量对应 的VT版本开始,依次将所述至少一个VT版本作为目的VT版本,发起所述第一VT处理请求,直至确定所述第一VT处理请求申请成功。
通过该设计,RQ从请求数量由大到小发起VT处理请求,可以在对目的资源申请成功的基础上,尽量申请到更多数量的目的资源,通过更多数量的目的资源对待处理VT进行处理,可以提升对待处理VT的处理效率。
在一种可能的设计中,所述向向量部件发起第一VT处理请求,包括:接收所述向量部件反馈的用于指示申请失败的应答信息;根据所述应答信息,重新发起第一VT处理请求;其中,所述重新发起的第一VT处理请求中包含的请求数量,小于上一次发起的第一VT处理请求中包含的请求数量。
在一种可能的设计中,所述第一VT处理请求还包含以下信息:VT的优先级;所述方法还包括:若确定所述第一VT处理请求申请成功,向所述向量部件发起第二VT处理请求,所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级。
在一种可能的设计中,所述方法还包括:向所述向量部件发起迁移指示,所述迁移指示用于所述向量部件将所述RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
在一种可能的设计中,所述方法还包括:向所述向量部件发起资源释放指示,所述资源释放指示用于所述向量部件对所述RQ申请成功的请求数量的目的资源进行释放。
第三方面,本申请实施例提供了一种基于向量计算的处理装置,该装置包括:收发单元和处理单元。其中,所述收发单元、所述处理单元执行的功能可以和上述第一方面中任一可能的设计或实现方式中涉及的向量部件执行的步骤相对应。
第四方面,本申请实施例还提供了一种基于向量计算的处理装置,该装置包括:收发单元和处理单元。其中,所述收发单元、所述处理单元执行的功能可以和上述第二方面中任一可能的设计或实现方式中涉及的RQ执行的步骤相对应。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码并运行时,使得上述第一方面中由向量部件执行的方法被执行,或使得上述第二方面中由RQ执行的方法被执行。
第六方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于实现上述第一方面的方法中向量部件的功能,或用于实现上述第二方面的方法中RQ的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
第七方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,当该计算机程序被运行时,实现上述第一方面中由向量部件执行的方法,或实现上述第二方面中由RQ执行的方法。
上述第二方面至第七方面中任一方面的有益效果请具体参阅上述第一方面中各种可能的设计的有益效果,在此不再赘述。
图1为标量、向量以及向量任务的示意图;
图2为私有制和共享制的示意图;
图3a为私有制和共享制的场景示意图之一;
图3b为私有制和共享制的场景示意图之二;
图4为本申请实施例提供的一种基于向量计算的处理系统的结构示意图;
图5为本申请实施例提供的一种向量部件的使用状态信息的示意图之一;
图6为本申请实施例提供的一种向量部件的使用状态信息的示意图之二;
图7为本申请实施例提供的一种向量部件的使用状态信息的示意图之三;
图8为本申请实施例提供的一种基于向量计算的处理装置的结构示意图;
图9a为本申请实施例提供的一种基于向量计算的处理方法的流程示意图之一;
图9b为本申请实施例提供的一种基于向量计算的处理方法的流程示意图之二;
图10为本申请实施例提供的一种基于向量计算的处理方法的场景示意图;
图11为本申请实施例提供的发起VT处理请求的一种流程示意图;
图12为本申请实施例提供的对待处理VT进行拆分的一种流程示意图;
图13a~图13d为本申请实施例提供的对待处理VT进行拆分的一种场景示意图;
图14为本申请实施例提供的一种基于向量计算的处理装置的另一结构示意图;
图15为本申请实施例中提供的一种芯片的结构示意图。
本申请实施例提供的技术方案可以应用于包含向量计算的各种设备中,例如,可以进行向量计算的网络设备或终端设备等。并且,设备可以为用于实现各种不同技术领域的计算设备。
其中,网络设备例如可以为服务器、中继站、车载设备以及未来演进的公共陆地移动网络(public land mobile network,PLMN)设备、设备到设备(device-to-device,D2D)网络中的设备、机器到机器(machine to machine,M2M)网络中的设备、物联网(internet of things,IoT)中的设备或者其他网络中的网络设备等。
终端设备是一种具有无线收发功能的设备,可以向网络设备发送信号,或接收来自网络设备的信号。所述终端设备用于连接人,物,机器等,可广泛用于各种场景,例如包括但不限于以下场景:蜂窝通信、设备到设备通信(device-to-device,D2D)、车到一切(vehicle to everything,V2X)、机器到机器/机器类通信(machine-to-machine/machine-type communications,M2M/MTC)、物联网(internet of things,IoT)、虚拟现实(virtual reality,VR)、增强现实(augmented reality,AR)、工业控制(industrial control)、无人驾驶(self driving)、远程医疗(remote medical)、智能电网(smart grid)、智能家具、智能办公、智能穿戴、智能交通,智慧城市(smart city)、无人机、机器人等场景的终端设备。所述终端设备有时可称为用户设备(user equipment,UE)、终端、接入站、站点(station,STA)、UE站、远方站、无线通信设备、或用户装置等等。例如,所述终端设备可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、IoT网络中智能音箱、远程医疗中的无线终端设备、智能电网中的无线终端设备、运输安全中的无线终端设备、智慧城市中的无线终端设备,或智慧家庭中的无线终端设备等等。终端设备也可以是固定的或者移动的,本申请实施例对此并不限定。此外,该终端设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备或智能穿戴式设备等,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。而如上介绍的各种终端设备,如果位于 车辆上(例如放置在车辆内或安装在车辆内),可以认为是车载终端设备,车载终端设备例如也称为车载单元(on-board unit,OBU)。
另外,本申请实施例中,终端设备可以是指用于实现终端的功能的装置,也可以是能够支持终端设备实现该功能的装置,例如芯片系统,该装置可以被安装在终端设备中。例如终端设备也可以是车辆探测器、加油站中的传感器。
结合背景技术中介绍的内容,在向量计算技术领域,会存在VPU剩余的空闲资源较多,无法实现对资源的充分使用的问题,也可以称为短向量问题。为便于理解,以下结合图2至图3b对短向量问题进一步说明。目前对VPU的集成方法主要可以分为私有制和共享制。参阅图2,分别为私有制和共享制的示意图。私有制的集成方法是指每一个发起VT的请求者(requestor,RQ),均对应一个VPU,而其他RQ无法访问该VPU。例如,在图2的(a)中,左侧的RQ无法访问右侧RQ对应的VPU。共享制的集成方法是指多个RQ可共享VPU,也即每一个VPU都可以被多个RQ访问。例如,在图2的(b)中,左侧的RQ和右侧的RQ均可以访问VPU。
然而,由于向量计算具有原子性,也即RQ每次发起一个VT,均需要占用整个VPU的资源。这样,目前提供的集成方法,无论私有制还是共享制,均无法很好地解决短向量问题。如图3a所示,在可向量化程度低的场景中,VPU无法整合足够多的标量来填充向量,从而导致会发生短向量问题。也即VPU在处理VT时,由于待处理的VT需要的资源小于VPU可提供的资源,且此时无法同时处理其他VT,从而无法达到对VPU较高的利用率。或者,如图3b所示,在存在多个RQ时,若第一个RQ的可向量化程度高,而第二个RQ的可向量化程度低,则在此场景中,如果采用私有制的集成方法,会存在第二个RQ的短向量问题;如果采用共享制的集成方法,出于效率优先的考虑,VPU可以首先对第一个RQ进行处理,此时第一个RQ会抢占所有的VPU资源,从而导致第二个RQ中的VT无法得到及时响应,影响调度平衡性;出于调度平衡的考虑,由于VPU一次只能对一个VT进行响应,在VPU对第二个RQ进行响应的时候,也可能存在VPU资源无法被全部使用,也即短向量问题。因此,目前对VPU采用的各类集成方法,没有很好的普适性,也并不能很好的解决向量计算中存在的短向量问题,导致资源的浪费。
有鉴于此,本申请实施例提供一种基于向量计算的处理方法及装置。通过本申请实施例提供的方法,可以灵活地进行资源的共享,减少向量部件中空闲资源的占比,从而可以提高向量部件的资源使用率,较好地解决短向量问题,避免资源的浪费。
需要说明的是,本申请实施例中的资源表示的为向量部件执行所需的资源,可以包括但不限于包括:计算资源、存储资源或者带宽资源等。以下实施例中以RQ请求目的资源作为示例。应理解,目的资源可以根据RQ的VT处理请求确定,例如RQ请求处理的待处理VT为需要向量部件进行向量计算的向量任务,则目的资源可以计算资源;又例如RQ请求处理的待处理VT为需要向量部件进行存储的向量数据,则目的资源可以为存储资源。
其中,RQ可以为与向量部件处于同一电子设备中的其他处理单元或处理线程,例如RQ可以为中央处理器(central processing unit,CPU)、CPU中的一个处理线程、图形处理器(graphics processing unit,GPU)、GPU中的一个处理线程等;或者,也可以为与向量部件处于不同电子设备的其他处理单元或处理线程等,例如数字信号处理(digital signal processing,DSP)芯片,本申请对此不进行限定。
首先,简单介绍本申请实施例所提供方法的设计思想。参阅图4,为本申请实施例提供的一种基于向量计算的处理系统的结构示意图。在该系统中可以包括:多个RQ,例如图4中示出的RQ0、RQ1、RQ2以及RQ3,用于发起VT;向量部件可以为用于对VT进行向量计算的处理单元,包括但不限于向量计算部件(例如可以进行向量的加减乘除、逻辑计算或者移位等向量计算)、向量访存部件(例如可以进行向量的读取或写入等向量计算)。
其中,向量部件可以具体包括:接口,用于实现多个RQ统一访问弹性向量共享(elastic share vector,ESV);ESV,用于实现对多个RQ分别请求的多个VT进行融合,以实现对向量部件的资源的弹性共享;共享向量计算部件(share vector process unit,SVU),用于执行融合之后的VT,表示进行向量计算的计算资源。其中,SVU可以包含在ESV中,SVU也可以与ESV属于相互独立的两个单元。
可以理解,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如向量部件还可以划分为收发单元和处理单元,其中收发单元用于与RQ进行信息交互,处理单元用于进行向量处理等,又例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
一方面,在本申请实施例中,从RQ角度来说,可以通过构建多个RQ共享的向量部件,实现每个RQ可以根据向量部件中的有效lane数,按需向向量部件申请目的资源,从而可以达到向量部件的弹性共享。
结合图4示出的内容,RQ在发起VT之前,可以向ESV请求SVU的使用状态信息;其中,使用状态信息可以用于指示所述目的资源的空闲数量、或还可以指示所述目的资源的已使用数量。这样,RQ可以根据SVU的使用状态信息,按照需求申请SVU中的目的资源来执行待处理的VT,例如RQ可以按照需求申请SVU中的部分或者全部的空闲目的资源。
例如,参阅图5,为本申请实施例提供的一种向量部件的使用状态信息的示意图。假设SVU最大可计算lane数为8,当前目的资源的使用状态信息为4个lane已经用于执行RQ0请求的VT,也即此时RQ1可以获取到SVU中空闲的lane数目为4。基于此,RQ可以将待处理的VT编译成lane数目为4的目的资源可以执行的目标VT版本;或者,RQ也可以预先将待处理的VT编译成多个VT版本,其中,多个VT版本中包含lane为4的目的资源可以执行的目标VT版本。然后,RQ1可以向ESV发送VT处理请求,申请SVU中的4个lane来执行目标VT版本对应的VT。这样,向量部件可以实现同时执行RQ0和RQ1发起的VT,可以对向量部件中的空闲向量目的资源进行充分的利用,从而提高向量部件的资源利用率,避免短向量问题。
另一方面,在本申请实施例中,从ESV角度来说,ESV可以接收来自多个RQ的不同VT的处理请求;或者,也可以接收来自相同RQ的不同VT的处理请求。相关技术中,VPU在同一时刻只能对一个VT进行处理。本申请实施时,ESV一方面可以确定SVU中 资源的使用状态信息;另一方面可以通过接口接收多个不同VT的处理请求,以及接收RQ对SVU中目的资源的使用状态信息的查询请求。然后,ESV可以从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求。可选的,ESV若确定多个VT处理请求的请求数量总和小于或等于空闲数量,则可以接收全部的VT处理请求;另一可选的,ESV若确定多个VT处理请求的请求数量总和大于空闲数量,则可以对多个VT处理请求进行仲裁,从多个VT处理请求中选择接收部分VT处理请求,而拒绝剩余部分VT处理请求。
进一步的,ESV可以对来自不同RQ的VT进行融合,从而可以实现不同RQ的VT在同一时刻由SVU同时进行处理。这样,本申请可以对多个不同VT进行整合,实现由向量部件同时处理多个不同的VT,从而可以提高向量部件的资源利用率,解决相关技术中可能存在的短向量问题。
例如,参阅图6,为本申请实施例提供的另一种向量部件的使用状态信息的示意图。假设SVU最大可计算lane数为8。RQ0申请SVU中的4个lane来执行待处理的VT,RQ1申请SVU中的3个lane来执行待处理的VT。ESV可以根据RQ0的VT处理请求和RQ1的VT处理请求以及SVU的使用状态信息,确定SVU可以同时对RQ0和RQ1的VT处理请求进行处理。然后,ESV可以将SVU中的空闲lane进行分配,分别用于对RQ0和RQ1的VT同时进行处理。也即,ESV将SVU中的4个空闲lane用于对RQ0的VT进行处理,另外3个空闲lane用于对RQ1的VT进行处理,最后剩余1个空闲lane,还可以接收其他RQ的VT处理请求。
再一方面,在本申请实施例中,从SVU角度来说,向量部件还可以根据正在执行的VT以及SVU中目的资源的使用状态信息,对VT进行灵活地拆分,从而可以实现更细粒度的优化。
示例性的,SVU对VT进行处理时,可以根据VT的内容由若干个执行周期执行,也即可能存在一个VT需要多个执行周期才能被处理完成的场景。在对该VT进行处理的过程中,可以检测每个执行周期的SVU的空闲lane的数目。若空闲lane的数目大于该未处理完的VT申请的lane数,则可以对该未处理完的VT的剩余未处理内容进行拆分;进而可以实现由该VT申请的lane和空闲lane同时来实现对该未处理完的VT的剩余未处理内容的处理。这样,可以缩短该未处理完的VT的执行时间,提高对向量部件的资源利用率。
例如,参阅图7,为本申请实施例提供的又一种向量部件的使用状态信息的示意图,假设SVU最大可计算lane数为8。如图7中的(a)所示,如果未采用对VT进行灵活拆分的处理方式,其中RQ0申请SVU中的4个lane来执行待处理的VT,并且需要占用向量部件中3个执行周期才能处理完成;RQ1也申请SVU中的4个lane来执行待处理的VT,需要占用向量部件中1个执行周期处理完成。这样,在第2执行周期和第3执行周期中,向量部件的利用率只有一半,从而导致资源的浪费。如图7中的(b)所示,若采用对VT进行灵活拆分的处理方式,当检测到第2执行周期存在空闲的目的资源的场景下,且空闲的lane数可以实现对RQ0对应的VT的处理,则可以对第2执行周期和第3执行周期需要执行的RQ0对应的VT进行拆分,从而可以实现在第2执行周期内完成对RQ0的VT的处理。应理解,通过该处理方式,还可以满足从第3执行周期开始,接收其他RQ的VT处理请求。这样,可以较好地解决短向量问题,提升向量部件的利用率,降低资源的浪费。
下面将结合附图,对本申请实施例进行详细描述。
需要说明的是,本申请实施例中“多个”指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
参阅图8,为本申请实施例提供的一种基于向量计算的处理装置的结构示意图。该装置可以部署在资源共享的处理器中,例如向量部件中。可选的,该装置可以为ESV,或者包含ESV的装置。其中,ESV可以包括:向量任务池(vector task pool,VTP)、调度模块(schedule module,SM)、资源表(resource table,RT)、SVU和数据整合(result integration,RI)模块。应理解,图8示出的结构是按照逻辑功能进行划分的,实际实现时可以有另外的划分方式。并且,实际实现时还可以包含更多的功能单元等,本申请对此不进行限定。其中,
所述VTP,主要可以用于缓存各个RQ中发送过来的VT,还可以用于与各个RQ进行交互,例如对RQ发起的VT处理请求进行应答(申请成功或申请失败的应答)等。
所述SM,可以用于获取SVU中的使用状态信息和VTP中缓存的VT。然后,SM可以根据SVU的使用状态信息,从VTP中选取VT以得到VT集合,并将VT集合发送到SVU中执行;其中,VT集合中包括多个待处理VT。换言之,SM可以实现VT处理请求与SVU的使用状态信息之间的匹配,实现对VT处理请求的执行调度,从而可以提高向量部件的利用率,避免短向量问题的发生。
所述RT,可以用于统计ESV中对资源的使用状态信息,其中资源可以为计算资源、存储资源或带宽资源等。并且,所述RT还可为RQ提供SVU的使用状态信息的查询请求(也可称为“资源查询请求”)、申请资源的接口或者释放资源的接口等。例如,RT可向RQ提供以下信息但不限于以下信息的查询请求:ESV中空闲的目的资源、VT的使用状态信息、目的资源的占用情况、VT的优先级等信息。
所述SVU,主要可以由若干个执行单元构成,负责执行VT集合。示例性的,SVU中的基本执行单元单位为lane。其中,不同lane的执行操作可不同。不同lane的数据可来自于相同VT,例如图6中左侧的4个lane的数据来自RQ0申请的VT;也可来自于不同的VT,例如图6中存在3个lane的数据来自RQ1申请的VT,与左侧4个lane的数据来源不同。由此可以实现来自不同VT的不同lane可在SVU中被同时执行。
所述RI,可以负责对SVU处理后的处理结果进行整合。以及,RI可以根据VT中指示的目的接收地址,将处理结果进行拆分,分别发送到VT指示的目的接收地址。示例性的,目的接收地址可以指示对应的RQ,还可以指示对应的指定地址等。例如,若处理结果中包含对RQ0申请的VT的第一子处理结果和RQ1申请的VT的第二子处理结果,则RI将第一子处理结果发送给RQ0指示的目的接收地址,将第二子处理结果发送给RQ1指示的目的接收地址。
参阅图9a,为本申请实施例提供的一种基于向量计算的处理方法的流程示意图。其中,图9a中的RQ可以为一个或多个,该实施例中以一个或多个RQ中的任一RQ作为示例进 行介绍。应理解,实际实现时,可以存在多个RQ,例如图4或图8示出的场景。图9a中的向量部件可以为前述实施例中介绍到的ESV,其结构以及各功能单元可以实现的功能可以参阅以上对图8介绍的内容。
一种可选的实施例中,为提高RQ对向量部件中资源的申请成功的可能性,RQ还可以在步骤900a之前,进行如下步骤900a~900c的处理。结合图9b,为本申请实施例提供的一种基于向量计算的处理方法的另一流程示意图。
步骤900a、RQ将待处理VT编译成多个不同的VT版本;其中,不同的VT版本对应的所述目的资源的请求数量不同。
示例性的,假设RQ已知向量部件的最大能够计算的向量lane数为32bit,则RQ可以将待处理VT对应的程序编译成128bit(对应需要4lane的目的资源)、256bit(对应需要8lane的目的资源)、512bit(对应需要16lane的目的资源)等VT版本。这样,一方面RQ可以根据向量部件中目的资源的空闲数量来选择对应的目的VT版本发起VT处理请求;另一方面,RQ也可以从最大请求数量对应的VT版本开始,依次向向量部件申请目的资源,直至申请成功。因此,通过该示例可以提高RQ申请目的资源的成功率,从而可以提升计算效率。
此外,另一示例性的,RQ编译的VT版本中还可以包含请求数量为0的VT版本。换言之,RQ编译的VT版本还可以包含可以在RQ内部执行的VT版本。这样,在RQ对目的资源未申请成功的场景下,RQ也可以自己实现对待处理VT的处理。
可选的,本申请实施时还可以将待处理VT预先划分成多个计算块(block),每个block可以由若干指令集合组成。然后将每个block均作为一个待处理VT,来向向量部件申请目的资源。可以理解,待处理VT的数据量越少,则申请目的资源的成功率越高,从而可以进一步提升计算效率。需要说明的是,不同block的待处理VT对应申请成功的请求数量也可以不同。
步骤900b、RQ向所述向量部件发起查询请求,所述查询请求用于获取所述向量部件中目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量。
步骤900c、所述向量部件反馈所述使用状态信息。
举例来说,RQ可以接收到向量部件反馈的使用状态信息为:目的资源的空闲数量为8lane、或者目的资源的已使用数量为24/32(向量部件的最大能够计算的向量lane数为32,已使用数量为24)。因此,通过该示例,RQ可以基于向量部件的使用状态信息,向向量部件发起VT处理请求,可以提高RQ申请目的资源的成功率,从而可以提升计算效率。例如,RQ基于向量部件中目的资源的空闲数量为8lane,则可以申请小于或等于8lane的目的资源。
需要说明的是,步骤900b和900c是一种可选的示例,可以根据实际情况选择性执行。例如,若向量部件(或在指定时间段内)接收RQ发起VT处理请求的频率或次数较少,通常RQ发起VT处理请求的申请成功概率较高,则RQ可以无需预先向向量部件发起查询请求,可以直接发起VT处理请求。同理,若RQ发起VT处理请求的申请成功概率较低,则RQ可以通过步骤900b和900c获取向量部件中的使用状态信息,以提高资源申请成功的可能性。示例性的,RQ可以记录每次发起VT处理请求的申请结果,通过对申请结果的分析,来确定是否需要发起查询请求;例如,RQ根据分析,确定在早晨的时间段内 的申请成功率较高,则在此时间段内直接发起VT处理请求,而在其他时间段内先发起查询请求。
步骤901、RQ向向量部件发起VT处理请求,所述VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量。可选的,RQ可以直接向VT发起处理请求。另一可选的,RQ也可以根据所述向量部件中目的资源的空闲数量,从请求数量小于或等于所述空闲数量的至少一个VT版本中,以最大请求数量对应的VT版本开始,依次将所述至少一个VT版本作为目的VT版本。这样,RQ可以尽量申请更多数量的目的资源,从而可以提升VT的处理效率。
示例性的,结合步骤900a和步骤900c中示出的例子,RQ可以从使用状态信息中确定向量部件的空闲数量为8lane,也即可以确定向量部件可以处理的VT版本包括128bit(对应需要4lane的目的资源)、或256bit(对应需要8lane的目的资源)。应理解,申请的目的资源越多,则向量计算的效率越高。因此,RQ可以首先向向量部件申请的请求数量为8lane的目的资源,若没有申请成功,则进一步向向量部件申请的请求数量为4lane的目的资源。或者,若RQ对8lane的目的资源没有申请成功,也可以直接决定由自身内部对待处理VT进行处理,不再选择向向量部件申请4lane的目的资源。具体实现方式可以根据RQ的预设策略决定,例如,在待处理VT的内容较少时,若较多数量的目的资源没有申请成功,可以直接由自身内部处理,而不再花费时间去申请较少数量的目的资源。
另一示例性的,若RQ在发起VT处理请求之前,未向向量部件发送查询请求,则RQ可以直接从编译的多个VT版本中,从最大请求数量对应的VT版本开始,向向量部件发起VT处理请求,例如步骤900a中的16lane的目的资源。
此外,另一可选的实施方式中,RQ也可以根据步骤900c中得到的使用状态信息,确定目的资源的空闲数量之后,再根据目的资源的空闲数量进行VT版本的编译。可选的,RQ可以预先不进行如步骤900a的VT版本编译,根据确定的目的资源的空闲数量生成对应的VT版本,例如假设空闲数量为8lane,则RQ向向量部件请求目的资源的请求数量为8lane。或者,若确定空闲数量为10lane,RQ确定编译的VT版本中小于或等于10lane的VT版本中,最大请求数量对应的VT版本为8lane对应的VT版本,为了提升对目的资源的利用率,RQ可以编译10lane对应的VT版本,也即向向量部件请求的目的资源的请求数量为10lane。
步骤902、向量部件从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求。
参阅图10,为本申请实施例提供的一种基于向量计算的处理方法的场景示意图。假设向量部件接收到RQ1发起的对VT1的处理请求和RQ2发起的对VT2的处理请求,基于目的资源为8lane,RQ1请求的为4lane,RQ2请求的为2lane,因为RQ1和RQ2的请求数量和为6lane,小于空闲数量8lane,因此可以对VT1和VT2进行整合,从而可以由ESV中的SVU进行处理。其中,图10中示出的VT1包含的程序指令集合包括:ADD指令、FLA指令和FADD指令;VT2包含的程序指令集合包括:FLA指令和SHA指令。
可选的,若RQ发起的所述VT处理请求未包含在所述向量部件在步骤905中选取一个或多个待处理VT中,也即本次资源申请失败(例如若向量部件已经选择了RQ1和RQ2,无法再选择图10中的RQ3,则RQ3本次资源申请失败),则可以继续执行以下步骤902a和902b;若包含,也即本次资源申请成功(例如图10中的RQ1和RQ2),则可以继续执 行步骤903。
步骤902a、RQ接收所述向量部件反馈的用于指示申请失败的应答信息。示例性的,如图10示出的场景中,假设同时存在RQ3发起的对VT3的处理请求,且RQ3请求的为4lane,向量部件根据目的资源的空闲数量2lane,确定向量部件当前无法支持对VT3的同时处理,则向RQ3反馈申请失败的应答信息。
步骤902b、RQ根据所述应答信息,重新发起VT处理请求;其中,所述重新发起的VT处理请求中包含的目的资源的请求数量,小于上一次发起的VT处理请求中包含的目的资源的请求数量。例如,图10中的RQ3将请求数量由4lane变为2lane再次发起VT处理请求。这样,向量部件可以接收RQ3重新发起的VT处理请求。并且,返回步骤905进行处理,进而判断RQ重新发起的VT处理请求是否可以申请成功。
需要说明的是,步骤902b是一种可选的实施例,可以根据实际情况选择性执行。例如,若RQ接收到指示申请失败的应答信息,还可以不再重新发起VT处理请求,由自身内部对待处理VT进行处理,不再向向量部件申请2lane的目的资源。具体实现方式可以根据RQ的预设策略决定,例如,在待处理VT的内容较少时,若较多数量的目的资源没有申请成功,可以直接由自身内部处理,而不再花费时间去申请较少数量的目的资源。
步骤903、若确定所述第一VT处理请求申请成功,将所述待处理VT或所述待处理VT的获取地址信息发送给所述向量部件,以使所述向量部件获取所述待处理VT,并基于申请成功的目的资源进行处理。这样,在RQ申请成功之后,再将需要向量部件处理的待处理VT发送给向量部件,可以避免对RQ与向量部件之间传输资源的浪费。
为便于理解,参阅图11,为本申请实施例提供的发起VT处理请求的一种流程示意图。
步骤1101、RQ将待处理VT划分为多个block。例如,RQ可以一个待处理VT的程序内容划分为11个block,每个block包含待处理VT中的部分程序指令集合,11个block包含的程序指令集合为待处理VT的程序内容。
步骤1102、RQ将每个block分别编译成多个不同的VT版本。示例性的,RQ可以分别对每个block进行处理,也即将待处理VT划分成不同block之后,block与block之间互不影响。例如,block1可以编译成128bit(对应需要4lane的目的资源)、256bit(对应需要8lane的目的资源)的VT版本;而block2包含的程序指令集合较大,可以编译成128bit(对应需要4lane的目的资源)、256bit(对应需要8lane的目的资源)和512bit(对应需要16lane的目的资源)的VT版本。
然后,RQ可以依次对每个block进行处理。针对当前block(假设为block2),执行:
步骤1103、选择最大请求数量对应的VT版本作为目的VT版本。示例性的,RQ可以从编译的多个VT版本中选择最大请求数量对应的VT版本作为目的VT版本;例如,针对block2,选择请求数量为16lane的VT版本作为目的VT版本。或者,RQ也可以向向量部件发送查询请求,在接收到向量部件反馈的使用状态信息,然后根据所述使用状态信息确定向量部件中目的资源的空闲数量之后,再从请求数量小于或等于所述空闲数量的至少一个VT版本中,选择最大请求数量对应的VT版本作为目的VT版本。例如,针对block2,RQ确认当前向量部件的空闲数量为8lane,则从请求数量为4lane和8lane中,选择8lane对应的VT版本作为目标VT版本。这样,可以实现尽量对更多数量的目的资源进行请求,从而可以提升VT处理效率。
步骤1104、所述目的VT版本申请目的资源是否成功。可选的,如果申请成功,则继续执行步骤1105a;如果申请失败,则执行步骤1105b。
步骤1105a、是否还存在未处理的block。若是,则继续执行步骤1106a,若否,则结束程序。
步骤1106a、推进下一个block。例如,假设当前block为block1,下一个block为block2,则将block2作为当前block从步骤1103重复执行。
步骤1105b、目的VT版本是否为最小请求数量对应的VT版本。若是,则表示不存在请求数量更小的VT版本,也即所有VT版本在本执行周期均未申请成功;此时,RQ可以继续执行步骤1106b;若否,则表示还存在请求数量更小的VT版本;此时,RQ可以继续执行步骤1106c。
步骤1106b、重置该block对应的所有VT版本并排序。示例性的,若RQ对所有的VT版本的VT处理请求均未申请成功,可能由于向量部件在此执行周期内为忙碌状态,则RQ可以对编译的多个VT版本重新进行排序,等待一定时间之后在重新发起VT处理请求。或者,RQ也可以由自身内部对该block进行处理。需要说明的是,该block的处理方式不影响其他block的处理方式,其他block同样可以从步骤1103开始向向量部件申请目的资源。
步骤1106c、排除当前选择的VT版本。示例性的,若RQ对请求数量较大的VT处理请求未申请成功,表示向量部件此时目的资源的空闲数量较少或没有,RQ可以选择更小请求数量对应的VT版本作为目的VT版本重新发起VT处理请求。例如,如图10示出的场景,RQ3在以请求数量为4lane为目的VT版本发起VT3的处理请求时,接收到向量部件指示申请失败的应答信息,则RQ3可以以请求数量为2lane为目的VT版本重新发起VT3的处理请求,此时由于向量部件存在2lane的空闲资源,则此次处理请求可以申请成功。
在向量部件接收到RQ发送的待处理VT或者待处理VT的获取地址信息之后,可以继续执行以下步骤904。
步骤904、所述向量部件获取所述一个或多个VT处理请求对应的待处理VT,得到VT集合。
步骤905、所述向量部件基于空闲的目的资源,对所述VT集合进行处理。
一种可选的实施例中,RQ发起的VT处理请求中还可以包含VT的优先级。若存在RQ对第一VT处理请求申请成功,向量部件在对该RQ的待处理VT进行处理的过程中,还可以接收所述RQ发起的第二VT处理请求,且所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级。此时,向量部件可以通过所述第一VT处理请求对应申请的请求数量的目的资源,对所述第二VT处理请求对应的待处理VT进行处理。结合图10的示例,RQ1对lane0~lane3的资源申请成功,用来执行VT1;此时向量部件接收到RQ1的另一VT处理请求,用于执行VT1’,且VT1’的优先级高于VT1,则向量部件可以优先对VT1’进行处理。可以理解,RQ可以通过与向量部件的交互,通过已申请成功的资源来处理优先级更高的VT,从而可以满足RQ对VT的多种处理需求。
上述实施例中,RQ发起的第二VT处理请求之前,还可以发起迁移指示。向量部件接收到RQ发送的迁移指示后,可以将RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。其中,存储单元例如可以为内存等。这样,通过RQ与向量部件进行迁移指示的 交互,可以避免正在处理的VT的处理进度的丢失,导致处理异常。可以理解,在其他需要对剩余未处理VT进行迁移的场景下,RQ也可以发起迁移指示来通知向量部件对剩余未处理VT的存储。
另一种可选的实施例中,为了进一步提升对向量部件中的目的资源的利用率,本申请实施例中,向量部件可以实时或周期性监测资源的使用状态信息,得到空闲资源的数量;然后,根据空闲资源,向量部件还可以对正在执行的VT进行灵活拆分。示例性的,向量部件通常可以按照执行周期对所述VT集合进行数据处理;其中,不同待处理VT对应的执行周期数不同。在每个执行周期中,执行:若目的资源的空闲数量大于或等于第一VT对应的请求数量,对所述第一VT的剩余未处理VT进行拆分;通过所述第一VT申请的请求数量的目的资源和空闲的目的资源,对拆分之后的第一VT进行数据处理。
参阅图12,为本申请实施例提供的对待处理VT进行拆分的一种流程示意图。
步骤1201、向量部件对申请成功的第一VT,通过申请的目的资源进行处理。例如,结合图10所示的例子,RQ1申请4lane的目的资源,向量部件可以分配lane0~lane3的目的资源处理RQ1申请的VT1,或者RQ1也可以直接申请lane0~lane3的目的资源。然后,向量部件通过lane0~lane3的目的资源处理VT1。同理,向量部件通过lane4和lane5的目的资源处理VT2。
步骤1202、所述向量部件周期性检测向量部件中的目的资源的使用状态信息。可选的,检测目的资源的使用状态可以为检测目的资源的空闲数量。
步骤1203、所述向量部件确定第一VT是否执行完毕。若是,则结束程序。若否,则继续执行步骤1204;例如,第一VT需要3个执行周期才能执行完成,如果在第1执行周期结束后对第一VT是否执行完毕进行检测,得到第一VT未执行完成的结果。
步骤1204、所述向量部件检测当前执行周期是否存在空闲的目的资源。例如,若第一VT为图10中的VT1,且需要三个执行周期执行完成;以及,图10中的VT2需要一个执行周期可以执行完成。在第2执行周期时,假设不存在其他VT处理请求,向量部件可以检测到当前执行周期存在4lane的目的资源,则继续执行步骤1205。
步骤1205、所述向量部件对所述第一VT的剩余未处理VT进行拆分。例如,向量部件将第2执行周期和第3执行周期的待处理VT内容进行拆分,可以得到两部分待处理VT内容。
步骤1206、所述向量部件通过所述第一VT申请的请求数量的目的资源和空闲的目的资源,对拆分之后的第一VT进行数据处理。例如,向量部件可以继续通过lane0~lane3的目的资源对原本第2执行周期需要处理的待处理VT内容继续处理,而可以通过lane4~lane7的目的资源对原本第3执行周期需要处理的待处理VT内容进行处理。这样,在第2执行周期内,便可以对RQ1申请的VT1的处理请求执行完成,从而可以提升向量部件对VT的处理效率;并且,在第3执行周期还可以接收其他RQ发起的VT处理请求,例如接收RQ4发起的请求数量为8lane的VT4的处理请求,从而可以提升对向量部件的利用率。
为便于理解,以下通过图13a~图13d所示的场景示意图对本申请实施例提供的灵活拆分方式进行介绍,如下:
首先,对图13a~图13d所示的场景进行简要介绍,假设存在两个RQ,即RQ1和RQ2; 向量部件中存在4通道(lane)的目的资源,即lane0~lane3,并且,每个lane对应128字节(bit)。其中,通过发射队列(issue queue,IQ)来暂存下一执行周期的待处理VT,该场景中,假设RQ1对应IQ1,RQ2对应IQ2,需要说明的是,RQ与IQ不一定为一一对应的,也可以为多个RQ对应一个IQ。
如图13a所示,在第0执行周期(也可以理解为起始时刻),RQ1对应申请成功的待处理VT包括:需要1lane的目的资源和1执行周期的1-1、需要2lane的目的资源和1执行周期的1-2;其中1-1和1-2暂存在IQ1中。RQ2对应申请成功的待处理VT包括:需要1lane的目的资源和1执行周期的2-1;其中2-1暂存在IQ2中。以及,RQ1对应发起的待处理VT包括:需要3lane的目的资源和1执行周期的1-3。RQ2对应发起的待处理VT包括:需要1lane的目的资源和4执行周期的2-2、需要1lane的目的资源和1执行周期的2-3。
如图13b所示,在第1执行周期,第0执行周期中位于IQ1和IQ2中的待处理VT由向量部件进行处理。此时,向量部件同时可以选取1-3和2-2在下一执行周期进行整合。其中,在IQ1中暂存1-3,以及在IQ2中暂存2-2的1个执行周期的待处理VT内容。
如图13c所示,在第2执行周期,第1执行周期中位于IQ1和IQ2中的待处理VT由向量部件进行处理。此时,若不采用灵活拆分的方式,向量部件同时可以选取2-2的第2个执行周期的待处理VT内容和2-3在下一执行周期进行整合,则2-2还存在剩余的2个执行周期。本申请实施时,向量部件可以根据IQ中的处理任务进行检测,确定在下一执行周期中存在2lane的空闲资源,此时可以对2-2进行拆分,分为3个分别需要1执行周期的子任务。这样,在IQ2中可以包含3个2-2的子任务和2-3。
如图13d所示,在第3执行周期,第2执行周期中位于IQ1和IQ2中的待处理VT由向量部件进行处理。这样,通过本申请实施例提供的灵活拆分方式,可以在第3执行周期完成对1-1、1-2、1-3、2-1、2-2和2-3的处理,相比于未采用灵活拆分方式的实现场景下,可以提升对2-2的处理效率,减少处理时间,以及可以提升对向量部件的资源利用率;以及,还可以实现在第4执行周期和第5执行周期对更大请求数量的VT任务的处理,例如可以实现对512bit的VT的处理,从而可以提升申请目的资源的成功率。
步骤906a、所述VT处理请求中还可以包含RQ标识信息。此时,所述向量部件基于步骤905的处理可以得到处理结果,然后将所述处理结果按照不同RQ进行划分,得到一个或多个子处理结果。例如,如图10示出的例子,向量部件得到的包含VT1和VT2的处理结果之后,对处理结果进行划分,得到VT1对应的子处理结果和VT2对应的子处理结果。应理解,向量部件还可以对每个待处理VT在不同执行周期得到的子处理结果进行融合,得到每个待处理VT对应的处理结果。例如,如图13c、13d示出的例子,向量部件还可以对2-2在第2执行周期内由lane3处理得到的子处理结果和在第3执行周期内由lane0、2、3处理得到的子处理结果进行融合,进而得到2-2完整的处理结果。
步骤906b、所述向量部件将所述子处理结果发送给对应的目的接收地址。例如,向量部件可以将VT1对应的子处理结果反馈给RQ1或RQ1指示的地址,以及将VT2对应的子处理结果反馈给RQ2或RQ2指示的地址。
RQ在确定向量部件对待处理VT执行完成之后,可以通过以下步骤907a和907b实现对RQ已申请资源的释放。
步骤907a、RQ向所述向量部件发起资源释放指示,所述资源释放指示用于所述向量 部件对所述RQ申请成功的请求数量的目的资源进行释放。
步骤907b、向量部件根据所述资源释放指示,对所述RQ申请成功的请求数量的目的资源进行释放。
与上述基于向量计算的处理方法的同一技术构思,本申请实施例还提供另一种基于向量计算的处理装置1400,如图14所示,该装置可以设置在终端设备上。所述信道状态信息的反馈装置1400包括:收发单元1401以及处理单元1402,装置1400可用于实现上述方法实施例中描述的向量部件可实现的方法。其中,可选的收发单元1401以及处理单元1402可以通过通信线路1403相互连接;通信线路1403可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述通信线路1403可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述收发单元1401,用于接收多个请求者RQ分别发起的向量任务VT处理请求,所述VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;所述处理单元1402,用于从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求;所述处理单元1402,还用于获取所述一个或多个VT处理请求对应的待处理VT,得到VT集合;所述处理单元1402,还用于基于空闲的目的资源,对所述VT集合进行处理。
在一种可能的设计中,所述接收多个RQ分别发起的VT处理请求之前,所述收发单元1401,还用于:接收第一RQ发起的查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;向所述第一RQ反馈所述使用状态信息。
在一种可能的设计中,所述处理单元1402,用于基于空闲的目的资源,对所述VT集合进行处理,具体用于:按照执行周期对所述VT集合进行处理;其中,所述VT集合中包含的不同待处理VT对应的执行周期数相同或不同,所述执行周期数由所述待处理VT确定;在每个执行周期中,执行:若目的资源的空闲数量大于或等于第一待处理VT对应的请求数量,对所述第一待处理VT的剩余未处理VT进行拆分;其中,所述第一待处理VT表示所述VT集合中任一未处理完成的待处理VT;通过所述第一待处理VT申请的请求数量的目的资源和所述向量部件中空闲的目的资源,对拆分之后的第一待处理VT进行处理。
在一种可能的设计中,所述VT处理请求还包含RQ标识信息,所述对所述VT集合进行处理之后,所述处理单元1402,还用于:生成处理结果;根据所述RQ标识信息,将所述处理结果按照不同RQ进行划分,得到一个或多个子处理结果。
在一种可能的设计中,所述收发单元1401,还用于:若存在第一RQ的VT处理请求未申请成功,向所述第一RQ反馈用于指示申请失败的应答信息。
在一种可能的设计中,所述收发单元1401,还用于:接收所述第一RQ重新发起的VT处理请求;其中,所述重新发起的VT处理请求中包含的目的资源的请求数量,小于上一次发起的VT处理请求中包含的目的资源的请求数量。
在一种可能的设计中,所述VT处理请求还包含以下信息:VT的优先级;所述收发单 元1401,还用于若存在第一RQ对第一VT处理请求申请成功,接收所述第一RQ发起的第二VT处理请求,且所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级;所述处理单元1402,还用于通过所述第一VT处理请求对应申请的请求数量的目的资源,对所述第二VT处理请求对应的待处理VT进行处理。
在一种可能的设计中,所述收发单元1401,还用于接收第一RQ发起的迁移指示;所述处理单元1402,还用于根据所述迁移指示,将所述第一RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
在一种可能的设计中,所述收发单元1401,还用于接收第一RQ发起的资源释放指示;所述处理单元1402,还用于根据所述资源释放指示,对所述第一RQ申请成功的请求数量的目的资源进行释放。
另一可选的实施方式中,装置1400还可用于实现上述方法实施例中描述的RQ可实现的方法。其中,
所述收发单元1401,用于向向量部件发起第一VT处理请求,所述第一VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;所述处理单元1402,用于若确定所述第一VT处理请求申请成功,将所述待处理VT或所述待处理VT的获取地址信息发送给所述向量部件,以使所述向量部件获取所述待处理VT,并基于申请成功的目的资源进行处理。
在一种可能的设计中,所述向向量部件发起第一VT处理请求之前,所述收发单元1401,还用于:向所述向量部件发起查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;接收所述向量部件反馈的所述使用状态信息;所述处理单元,还用于:根据所述使用状态信息,确定所述向量部件中的目的资源的空闲数量,并确定小于或等于所述空闲数量的请求数量;或者,若确定所述空闲数量小于预设阈值,等待预设时长后再次发起所述查询请求、或由所述RQ对所述待处理VT进行处理。
在一种可能的设计中,所述处理单元1402,还用于将待处理VT编译成多个不同的VT版本;其中,不同的VT版本对应的所述目的资源的请求数量不同。
在一种可能的设计中,所述收发单元1401,用于向向量部件发起第一VT处理请求,具体用于:根据所述空闲数量,从请求数量小于或等于所述空闲数量的至少一个VT版本中,以最大请求数量对应的VT版本开始,依次将所述至少一个VT版本作为目的VT版本,发起所述第一VT处理请求,直至确定所述第一VT处理请求申请成功。
在一种可能的设计中,所述收发单元1401,用于向向量部件发起第一VT处理请求,具体用于:接收所述向量部件反馈的用于指示申请失败的应答信息;根据所述应答信息,重新发起第一VT处理请求;其中,所述重新发起的第一VT处理请求中包含的请求数量,小于上一次发起的第一VT处理请求中包含的请求数量。
在一种可能的设计中,所述第一VT处理请求还包含以下信息:VT的优先级;所述收发单元1401,还用于:若确定所述第一VT处理请求申请成功,向所述向量部件发起第二VT处理请求,所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级。
在一种可能的设计中,所述收发单元1401,还用于:向所述向量部件发起迁移指示,所述迁移指示用于所述向量部件将所述RQ对应的待处理VT中的剩余未处理VT迁移至 存储单元中。
在一种可能的设计中,所述收发单元1401,还用于:向所述向量部件发起资源释放指示,所述资源释放指示用于所述向量部件对所述RQ申请成功的请求数量的目的资源进行释放。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述所示的任一方法实施例的信道状态信息的反馈方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述所示的任一方法实施例的信道状态信息的反馈方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计 算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
如图15所示,本申请实施例还提供了一种芯片1500,包括输入输出接口1501和逻辑电路1502,输入输出接口1501用于接收/输出代码指令或信息,逻辑电路1502用于执行代码指令或根据信息,以执行上述所示的任一方法实施例的信道状态信息的反馈方法。
芯片1500可以实现上述实施例中处理单元和/或收发单元所示的功能。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。
Claims (36)
- 一种基于向量计算的处理方法,其特征在于,应用于向量部件,包括:接收多个请求者RQ分别发起的向量任务VT处理请求,所述VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求;获取所述一个或多个VT处理请求对应的待处理VT,得到VT集合;基于空闲的目的资源,对所述VT集合进行处理。
- 根据权利要求1所述的方法,其特征在于,所述接收多个RQ分别发起的VT处理请求之前,所述方法还包括:接收第一RQ发起的查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;向所述第一RQ反馈所述使用状态信息。
- 根据权利要求1或2所述的方法,其特征在于,基于空闲的目的资源,对所述VT集合进行处理,包括:按照执行周期对所述VT集合进行处理;其中,所述VT集合中包含的不同待处理VT对应的执行周期数相同或不同,所述执行周期数由所述待处理VT确定;在每个执行周期中,执行:若目的资源的空闲数量大于或等于第一待处理VT对应的请求数量,对所述第一待处理VT的剩余未处理VT进行拆分;其中,所述第一待处理VT表示所述VT集合中任一未处理完成的待处理VT;通过所述第一待处理VT申请的请求数量的目的资源和所述向量部件中空闲的目的资源,对拆分之后的第一待处理VT进行处理。
- 根据权利要求1至3中任一项所述的方法,其特征在于,所述VT处理请求还包含RQ标识信息,所述对所述VT集合进行处理之后,所述方法还包括:生成处理结果;根据所述RQ标识信息,将所述处理结果按照不同RQ进行划分,得到一个或多个子处理结果。
- 根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:若存在第一RQ的VT处理请求未申请成功,向所述第一RQ反馈用于指示申请失败的应答信息。
- 根据权利要求5所述的方法,其特征在于,所述方法还包括:接收所述第一RQ重新发起的VT处理请求;其中,所述重新发起的VT处理请求中包含的目的资源的请求数量,小于上一次发起的VT处理请求中包含的目的资源的请求数量。
- 根据权利要求1至6中任一项所述的方法,其特征在于,所述VT处理请求还包含以下信息:VT的优先级;所述方法还包括:若存在第一RQ对第一VT处理请求申请成功,接收所述第一RQ发起的第二VT处理请求,且所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级;通过所述第一VT处理请求对应申请的请求数量的目的资源,对所述第二VT处理请求对应的待处理VT进行处理。
- 根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:接收第一RQ发起的迁移指示;根据所述迁移指示,将所述第一RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
- 根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:接收第一RQ发起的资源释放指示;根据所述资源释放指示,对所述第一RQ申请成功的请求数量的目的资源进行释放。
- 一种基于向量计算的处理方法,其特征在于,应用于RQ,包括:向向量部件发起第一VT处理请求,所述第一VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;若确定所述第一VT处理请求申请成功,将所述待处理VT或所述待处理VT的获取地址信息发送给所述向量部件,以使所述向量部件获取所述待处理VT,并基于申请成功的目的资源进行处理。
- 根据权利要求10所述的方法,其特征在于,所述向向量部件发起第一VT处理请求之前,所述方法还包括:向所述向量部件发起查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;接收所述向量部件反馈的所述使用状态信息;根据所述使用状态信息,确定所述向量部件中的目的资源的空闲数量,并确定小于或等于所述空闲数量的请求数量;或者,若确定所述空闲数量小于预设阈值,等待预设时长后再次发起所述查询请求、或由所述RQ对所述待处理VT进行处理。
- 根据权利要求10或11所述的方法,其特征在于,所述方法还包括:将待处理VT编译成多个不同的VT版本;其中,不同的VT版本对应的所述目的资源的请求数量不同。
- 根据权利要求12所述的方法,其特征在于,所述向向量部件发起第一VT处理请求,包括:根据所述空闲数量,从请求数量小于或等于所述空闲数量的至少一个VT版本中,以最大请求数量对应的VT版本开始,依次将所述至少一个VT版本作为目的VT版本,发起所述第一VT处理请求,直至确定所述第一VT处理请求申请成功。
- 根据权利要求10至13中任一项所述的方法,其特征在于,所述向向量部件发起第一VT处理请求,包括:接收所述向量部件反馈的用于指示申请失败的应答信息;根据所述应答信息,重新发起第一VT处理请求;其中,所述重新发起的第一VT处理请求中包含的请求数量,小于上一次发起的第一VT处理请求中包含的请求数量。
- 根据权利要求10至14中任一项所述的方法,其特征在于,所述第一VT处理请求还包含以下信息:VT的优先级;所述方法还包括:若确定所述第一VT处理请求申请成功,向所述向量部件发起第二VT处理请求,所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级。
- 根据权利要求10至15中任一项所述的方法,其特征在于,所述方法还包括:向所述向量部件发起迁移指示,所述迁移指示用于所述向量部件将所述RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
- 根据权利要求10至16中任一项所述的方法,其特征在于,所述方法还包括:向所述向量部件发起资源释放指示,所述资源释放指示用于所述向量部件对所述RQ申请成功的请求数量的目的资源进行释放。
- 一种基于向量计算的处理装置,其特征在于,包括收发单元和处理单元,其中,所述收发单元,用于接收多个请求者RQ分别发起的向量任务VT处理请求,所述VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;所述处理单元,用于从多个所述VT处理请求中,选择请求数量和小于或等于向量部件中目的资源的空闲数量的一个或多个VT处理请求;所述处理单元,还用于获取所述一个或多个VT处理请求对应的待处理VT,得到VT集合;所述处理单元,还用于基于空闲的目的资源,对所述VT集合进行处理。
- 根据权利要求18所述的装置,其特征在于,所述接收多个RQ分别发起的VT处理请求之前,所述收发单元,还用于:接收第一RQ发起的查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;向所述第一RQ反馈所述使用状态信息。
- 根据权利要求18或19所述的装置,其特征在于,所述处理单元,用于基于空闲的目的资源,对所述VT集合进行处理,具体用于:按照执行周期对所述VT集合进行处理;其中,所述VT集合中包含的不同待处理VT对应的执行周期数相同或不同,所述执行周期数由所述待处理VT确定;在每个执行周期中,执行:若目的资源的空闲数量大于或等于第一待处理VT对应的请求数量,对所述第一待处理VT的剩余未处理VT进行拆分;其中,所述第一待处理VT表示所述VT集合中任一未处理完成的待处理VT;通过所述第一待处理VT申请的请求数量的目的资源和所述向量部件中空闲的目的资源,对拆分之后的第一待处理VT进行处理。
- 根据权利要求18至20中任一项所述的装置,其特征在于,所述VT处理请求还包含RQ标识信息,所述对所述VT集合进行处理之后,所述处理单元,还用于:生成处理结果;根据所述RQ标识信息,将所述处理结果按照不同RQ进行划分,得到一个或多个子处理结果。
- 根据权利要求18至21中任一项所述的装置,其特征在于,所述收发单元,还用于:若存在第一RQ的VT处理请求未申请成功,向所述第一RQ反馈用于指示申请失败的应答信息。
- 根据权利要求22所述的装置,其特征在于,所述收发单元,还用于:接收所述第一RQ重新发起的VT处理请求;其中,所述重新发起的VT处理请求中 包含的目的资源的请求数量,小于上一次发起的VT处理请求中包含的目的资源的请求数量。
- 根据权利要求18至23中任一项所述的装置,其特征在于,所述VT处理请求还包含以下信息:VT的优先级;所述收发单元,还用于若存在第一RQ对第一VT处理请求申请成功,接收所述第一RQ发起的第二VT处理请求,且所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级;所述处理单元,还用于通过所述第一VT处理请求对应申请的请求数量的目的资源,对所述第二VT处理请求对应的待处理VT进行处理。
- 根据权利要求18至24中任一项所述的装置,其特征在于,所述收发单元,还用于接收第一RQ发起的迁移指示;所述处理单元,还用于根据所述迁移指示,将所述第一RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
- 根据权利要求18至25中任一项所述的装置,其特征在于,所述收发单元,还用于接收第一RQ发起的资源释放指示;所述处理单元,还用于根据所述资源释放指示,对所述第一RQ申请成功的请求数量的目的资源进行释放。
- 一种基于向量计算的处理装置,其特征在于,包括收发单元和处理单元,其中,所述收发单元,用于向向量部件发起第一VT处理请求,所述第一VT处理请求包含:用于对待处理VT进行处理的目的资源的请求数量;所述处理单元,用于若确定所述第一VT处理请求申请成功,将所述待处理VT或所述待处理VT的获取地址信息发送给所述向量部件,以使所述向量部件获取所述待处理VT,并基于申请成功的目的资源进行处理。
- 根据权利要求27所述的装置,其特征在于,所述向向量部件发起第一VT处理请求之前,所述收发单元,还用于:向所述向量部件发起查询请求,所述查询请求用于获取所述目的资源的使用状态信息,所述使用状态信息用于指示所述目的资源的空闲数量、或指示所述目的资源的已使用数量;接收所述向量部件反馈的所述使用状态信息;所述处理单元,还用于:根据所述使用状态信息,确定所述向量部件中的目的资源的空闲数量,并确定小于或等于所述空闲数量的请求数量;或者,若确定所述空闲数量小于预设阈值,等待预设时长后再次发起所述查询请求、或由所述RQ对所述待处理VT进行处理。
- 根据权利要求27或28所述的装置,其特征在于,所述处理单元,还用于将待处理VT编译成多个不同的VT版本;其中,不同的VT版本对应的所述目的资源的请求数量不同。
- 根据权利要求29所述的装置,其特征在于,所述收发单元,用于向向量部件发起第一VT处理请求,具体用于:根据所述空闲数量,从请求数量小于或等于所述空闲数量的至少一个VT版本中,以最大请求数量对应的VT版本开始,依次将所述至少一个VT版本作为目的VT版本,发 起所述第一VT处理请求,直至确定所述第一VT处理请求申请成功。
- 根据权利要求27至30中任一项所述的装置,其特征在于,所述收发单元,用于向向量部件发起第一VT处理请求,具体用于:接收所述向量部件反馈的用于指示申请失败的应答信息;根据所述应答信息,重新发起第一VT处理请求;其中,所述重新发起的第一VT处理请求中包含的请求数量,小于上一次发起的第一VT处理请求中包含的请求数量。
- 根据权利要求27至31中任一项所述的装置,其特征在于,所述第一VT处理请求还包含以下信息:VT的优先级;所述收发单元,还用于:若确定所述第一VT处理请求申请成功,向所述向量部件发起第二VT处理请求,所述第二VT处理请求中VT的优先级高于所述第一VT处理请求中VT的优先级。
- 根据权利要求27至32中任一项所述的装置,其特征在于,所述收发单元,还用于:向所述向量部件发起迁移指示,所述迁移指示用于所述向量部件将所述RQ对应的待处理VT中的剩余未处理VT迁移至存储单元中。
- 根据权利要求27至33中任一项所述的装置,其特征在于,所述收发单元,还用于:向所述向量部件发起资源释放指示,所述资源释放指示用于所述向量部件对所述RQ申请成功的请求数量的目的资源进行释放。
- 一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1-9中任一项所述的方法,或执行如权利要求10至17中任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1-9中任一项所述的方法,或执行如权利要求10至17中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/141745 WO2023122899A1 (zh) | 2021-12-27 | 2021-12-27 | 一种基于向量计算的处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117425879A true CN117425879A (zh) | 2024-01-19 |
Family
ID=86996791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180098673.3A Pending CN117425879A (zh) | 2021-12-27 | 2021-12-27 | 一种基于向量计算的处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117425879A (zh) |
WO (1) | WO2023122899A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9870267B2 (en) * | 2006-03-22 | 2018-01-16 | Intel Corporation | Virtual vector processing |
CN108334396B (zh) * | 2017-01-19 | 2022-12-30 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置、资源组的创建方法和装置 |
CN111078287B (zh) * | 2019-11-08 | 2022-07-19 | 苏州浪潮智能科技有限公司 | 一种向量运算协处理方法与装置 |
CN111258655A (zh) * | 2020-01-14 | 2020-06-09 | 中科寒武纪科技股份有限公司 | 融合计算方法及可读存储介质 |
CN113806250B (zh) * | 2021-09-24 | 2022-10-18 | 中国人民解放军国防科技大学 | 通用处理器核心与向量部件的协同方法、接口及处理器 |
-
2021
- 2021-12-27 WO PCT/CN2021/141745 patent/WO2023122899A1/zh active Application Filing
- 2021-12-27 CN CN202180098673.3A patent/CN117425879A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023122899A1 (zh) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762703B2 (en) | Multi-region request-driven code execution system | |
CN107086908B (zh) | 一种量子密钥分发方法及装置 | |
US10372499B1 (en) | Efficient region selection system for executing request-driven code | |
CN105339897B (zh) | 高效的优先级感知线程调度 | |
US8478926B1 (en) | Co-processing acceleration method, apparatus, and system | |
CN109033001B (zh) | 用于分配gpu的方法和装置 | |
US10897428B2 (en) | Method, server system and computer program product for managing resources | |
CN106897299B (zh) | 一种数据库访问方法及装置 | |
WO2017185285A1 (zh) | 图形处理器任务的分配方法和装置 | |
CN114020470A (zh) | 资源分配方法、装置、可读介质及电子设备 | |
TW202246977A (zh) | 一種任務調度方法、任務調度裝置、電腦設備、電腦可讀儲存媒介和電腦程式產品 | |
US20220086097A1 (en) | Stream allocation using stream credits | |
CN111580974B (zh) | Gpu实例分配方法、装置、电子设备和计算机可读介质 | |
CN112286688A (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
CN112099728B (zh) | 一种执行写操作、读操作的方法及装置 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
JP6007516B2 (ja) | リソース配分システム、リソース配分方法、及びリソース配分プログラム | |
US20170344266A1 (en) | Methods for dynamic resource reservation based on classified i/o requests and devices thereof | |
CN109819674B (zh) | 计算机存储介质、嵌入式调度方法及系统 | |
WO2024037629A1 (zh) | 区块链的数据整合方法、装置、计算机设备及存储介质 | |
CN117850968A (zh) | 一种指定numa节点实现虚拟机迁移的方法、装置及系统 | |
CN107634978B (zh) | 一种资源调度方法及装置 | |
CN107045452B (zh) | 虚拟机调度方法和装置 | |
CN117425879A (zh) | 一种基于向量计算的处理方法及装置 | |
WO2020076394A1 (en) | Resource allocation using restore credits |
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 |