CN116680042A - 一种图像处理的方法及相关装置和*** - Google Patents
一种图像处理的方法及相关装置和*** Download PDFInfo
- Publication number
- CN116680042A CN116680042A CN202210162890.0A CN202210162890A CN116680042A CN 116680042 A CN116680042 A CN 116680042A CN 202210162890 A CN202210162890 A CN 202210162890A CN 116680042 A CN116680042 A CN 116680042A
- Authority
- CN
- China
- Prior art keywords
- computing device
- processing
- target image
- processing result
- gpu
- 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
- 238000003672 processing method Methods 0.000 title abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 340
- 230000015654 memory Effects 0.000 claims abstract description 111
- 238000000034 method Methods 0.000 claims abstract description 53
- 238000012805 post-processing Methods 0.000 claims description 43
- 238000013473 artificial intelligence Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 27
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 238000011143 downstream manufacturing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种图像处理的方法及相关装置,应用于人工智能AI图像处理***,AI图像处理***包括多个计算设备,多个计算设备之间建立远程直接内存访问RDMA连接,多个计算设备的内存构成AI图像处理***的共享内存;第二计算设备通过RDMA连接接收来自第一计算设备的第一处理结果,第一处理结果是第一计算设备根据目标图像生成的;第二计算设备通过RDMA连接从共享内存中获取目标图像;第二计算设备根据第一处理结果和目标图像生成第二处理结果。本申请中,将完整的图像处理任务分配到不同的多个计算设备完成,利用多个计算设备的资源来协同进行处理,不再由一个计算设备来独立完成所有任务,减少单个计算设备的算力开销,实现负载均衡,提高处理性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种图像处理的方法及相关装置。
背景技术
视频流的人工智能(artificial intelligence,AI)处理会串行经过多个处理模块,其中,主要包括视频读取模块、模型推理模块、逻辑后处理模块以及业务后处理模块。当前处理模块会处理输入图片以及上一处理模块的输出,从而得到当前处理模块的输出,而图片和元数据在各个处理模块间则通过队列的方式进行交互。
由于上述各个处理模块之间是串行地部署于一个计算设备当中,因此,各个视频的处理任务需要基于先进先出(first input first output,FIFO)机制进行队列等候。在面对并行处理多路视频的场景时,需要由多个线程(进程)来执行,一路视频由一个线程(进程)负责。
而面对多路视频并行处理的场景,这对计算设备的算力开销是巨大的,各个线程(进程)之间的资源竞争剧烈,造成处理性能下降。
发明内容
本申请提供了一种图像处理的方法及相关装置,用于提高计算设备在进行AI视频处理时的性能。
第一方面,本申请提供了一种图像处理的方法,该图像处理方法应用于AI视频处理***,AI视频处理***包括第一计算设备和第二计算设备在内的多个计算设备,多个计算设备之间建立远程直接内存访问(remote direct memory access,RDMA)连接,每个计算设备拥有处理功能(例如设置至少一个处理模块)。这些计算设备的内存构成AI视频处理***的共享内存,多个计算设备协同工作,共同参与AI视频处理流程。
本申请中,通过使用RDMA将多个计算设备的内存组成共享内存池,每个计算设备可以从共享内存池中获得目标图片以及前一个计算设备的处理结果,从而可以把完整一个图像处理(单独的静态图像或者视频中的图像帧)任务分解为串行的多个任务,不同的任务分配到不同的计算设备来完成。利用多个计算设备的资源来协同进行视频处理,不再由一个计算设备来独立完成所有的任务,从而减少了单个计算设备的算力开销,实现负载均衡,提高了处理性能。
在第一方面的一种可能的实现方式中,AI视频处理需要执行视频读取任务、模型推理任务、逻辑后处理任务以及业务后处理任务,每个任务需要由一个进程(或线程)来执行,即每个进程(或线程)相当于一个处理模块。换句话说,AI视频处理需要经过视频读取模块、模型推理模块、逻辑后处理模块以及业务后处理模块的处理,本申请中,可以将上述模块分布部署于整个AI视频处理***的各个计算设备中。基于内存的RDMA技术可以把不同计算设备的内存连通,形成一个整体的内存池(即本申请的共享内存),不同的模块就可以部署在不同的计算设备,通过多个计算设备的内存池形成数据的共享,则AI视频处理***中每个计算设备的内存均可以被其他计算设备通过RDMA技术所访问。示例性的,第一计算设备中部署有第一处理模块,第二计算设备中部署有第二处理模块,其中,第一处理模块为第二处理模块的上游处理模块。第一计算设备和第二计算设备均可以通过RDMA连接从共享内存中获取数据(例如本申请的目标图像)进行处理。需要说明的是,本申请的目标图像,可以是单独的静态图像或者是视频中的图像帧,具体此处不做限定。
本申请中,各个处理模块的部署具有较高的灵活性。在实际应用中,可以根据每个计算设备自身的性能、负载或场景需要等因素,来部署处理模块,本申请对此不做限定。例如,第一计算设备中的第一处理模块可以是视频读流模块,第二计算设备中的第二处理模块是模型推理模块;或者,第一计算设备中的第一处理模块可以是逻辑后处理模块,第二计算设备中的第二处理模块是业务后处理模块。另一方面,本申请也不限定计算设备中所部署的处理模块的数量,即一个计算设备中可以部署有一个处理模块,或者,一个计算设备中也可以部署有多个处理模块,本申请对此不做限定。
第一计算设备通过RDMA技术从AI视频处理***的共享内存中获取目标图像,并根据其所部署的处理模块来对目标图像进行处理,生成第一处理结果,并将该第一处理结果传递给第二计算设备,由第二计算设备进一步执行下游的处理任务。
AI视频处理流程中,上游处理任务的处理结果以及目标图像,会作为下游处理任务的输入。因此,第二计算设备在接收到来自第一计算设备的处理结果(即上游处理任务的处理结果)之后,还需要通过RDMA连接从共享内存中获取目标图像。第二计算设备获取到第一处理结果和目标图像之后,进一步执行下游任务,从而生成第二处理结果。
另一方面,本申请中的各个处理模块是通过封装成容器,来部署到各个计算设备当中的。所以,各个处理模块之间是解耦状态,从而便可以根据实际场景的需要,灵活地新增或删减处理模块,实现处理模块的热插拔,实现细粒度的业务部署,使得处理任务的分配更加灵活。例如,可以新增任意一个处理模块到当前AI视频处理***中的计算设备;又例如,也可以新增一个计算设备,来参与到该AI视频处理***中,从而执行AI视频处理任务。
基于第一方面,一种可选的实施方式中,为了第二计算设备能够获取到该目标图像,第一计算设备除了向第二计算设备发送第一处理结果之外,第一计算设备还需要向第二计算设备发送目标图像的指针,目标图像的指针用于指示目标图像在共享内存中的存储地址。第二计算设备获取到目标图像的指针之后,根据指针的指示,查找到目标图像在共享内存中的存储地址,从而获取该目标图像。
基于第一方面,一种可选的实施方式中,由于模型推理模块,是需要部署在显卡上的GPU来完成的,换句话说,计算设备需要配置有GPU,才可以用于部署模型推理模块,才能对目标图像执行模型推理任务;而对于视频读取模块、逻辑后处理模块以及业务后处理模块,则是通过中央处理器(central processing unit,CPU)来执行的,不需要GPU的参与,这些模块可以部署于未配置有GPU但配置有CPU的计算设备中,或者,也可以部署于同时配置有GPU和CPU的计算设备中。可选的,第二计算设备中包括CPU而不包括GPU,则第二计算设备中可以用于通过CPU来执行非GPU任务,其中,非GPU任务为不需要GPU参与执行的任务,具体包括视频读取任务、逻辑后处理任务或业务后处理任务。换句话说,第二计算设备可以通过CPU对第一处理结果和目标图像进行非GPU任务的处理,得到第二处理结果,其中,第二处理结果为视频读流任务、逻辑后处理任务或业务后处理任务的处理结果;而第一计算设备中包括GPU,则第一计算设备中即可以用于通过GPU来执行GPU任务,其中,GPU任务为需要GPU参与执行的任务,具体包括模型推理任务,或者,也可以用于通过CPU来执行非GPU任务,第一计算设备通过GPU对目标图像执行模型推理任务,得到第一处理结果。
传统的AI视频处理流程中,计算设备是必须要配置有GPU,才能够执行模型推理任务。因此,未配置GPU的计算设备,是不能执行AI视频处理流程的。而本申请中,通过将完整的、串行的AI视频处理流程分配到不同的多个计算设备来完成,因此,仍然可以将视频读取任务、逻辑后处理任务以及业务后处理任务,分配给未配置GPU的计算设备来执行,从而降低了AI视频处理流程的实施条件,让更多的计算设备能够参与到AI视频处理流程中,进一步地提高了AI视频处理的效率。
第二方面,本申请提供了一种人工智能AI视频处理***,AI视频处理***包括第一计算设备、第二计算设备在内的多个计算设备,多个计算设备之间建立远程直接内存访问RDMA连接,多个计算设备的内存通过RDMA连接构成AI视频处理***的共享内存,AI视频处理***包括:
第一计算设备,用于根据目标图像计算生成第一处理结果,将第一处理结果通过RDMA连接发送给第二计算设备;
第二计算设备,用于通过RDMA连接从共享内存中获取目标图像,根据第一处理结果和目标图像生成第二处理结果。
基于第二方面,一种可选的实施方式中,AI视频处理***还包括第三计算设备和第四计算设备;
第三计算设备,用于根据对目标图像执行视频读流任务,得到第三处理结果,将第三处理结果通过RDMA连接发送给第一计算设备,第一处理结果为第一计算设备对目标图像和第三处理结果执行模型推理任务所得到的,第二处理结果为第二计算设备对目标图像和第一处理结果执行逻辑后处理任务所得到的;
第四计算设备,用于根据目标图像和第二处理结果执行业务后处理任务,得到第四处理结果,并输出第四处理结果。
基于第二方面,一种可选的实施方式中,第二计算设备还用于:
通过RDMA连接接收来自第一计算设备的目标图像的指针,目标图像的指针用于指示目标图像在共享内存中的存储地址。
基于第二方面,一种可选的实施方式中,第二计算设备中包括中央处理器CPU不包括图形处理器GPU,第二计算设备在根据第一处理结果和目标图像生成第二处理结果时,具体用于:
通过CPU对第一处理结果和目标图像进行非GPU任务处理,得到第二处理结果,非GPU任务是不需要GPU参与的任务。
基于第二方面,一种可选的实施方式中,第一计算设备中包括GPU,第一计算设备在根据目标图像生成第一处理结果时,具体用于:
通过GPU对目标图像执行GPU任务,得到第一处理结果,GPU任务为需要GPU参与的任务。
第三方面,本申请提供了一种图像处理装置,图像处理装置应用于人工智能AI视频处理***,AI视频处理***包括第一计算设备、第二计算设备在内的多个计算设备,多个计算设备之间建立远程直接内存访问RDMA连接,多个计算设备的内存通过RDMA连接构成AI视频处理***的共享内存,图像处理装置包括:
接收单元,用于通过RDMA连接接收来自第一计算设备的第一处理结果,第一处理结果是第一计算设备根据目标图像生成的;
获取单元,用于通过RDMA连接从共享内存中获取目标图像;
生成单元,用于根据第一处理结果和目标图像生成第二处理结果。
基于第三方面,一种可选的实施方式中,接收单元还用于:
通过RDMA连接接收来自第一计算设备的目标图像的指针,目标图像的指针用于指示目标图像在共享内存中的存储地址。
基于第三方面,一种可选的实施方式中,图像处理装置中包括中央处理器CPU不包括图形处理器GPU,生成单元具体用于:
通过CPU对第一处理结果和目标图像进行非GPU任务处理,得到第二处理结果,非GPU任务是不需要GPU参与的任务。
基于第三方面,一种可选的实施方式中,第一计算设备中包括GPU,第一处理结果为第一计算设备通过GPU对目标图像执行GPU任务的处理结果,GPU任务为需要GPU参与的任务。
第四方面,本发明提供了一种计算机设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行上述任一方面所述的方法。
第五方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述任一方面所述的方法。
第六方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,当其在计算机上运行时,使得计算机执行上述任一方面所述的方法。
从以上技术方案可以看出,本申请具有以下优点:
本申请中,通过使用RDMA将多个计算设备的内存组成共享内存池,每个计算设备可以从共享内存池中获得目标图片以及前一个计算设备的处理结果,从而可以把完整一个图像处理(单独的静态图像或者视频中的图像帧)任务分解为串行的多个任务,分配到不同的多个计算设备来完成。利用多个计算设备的资源来协同进行视频处理,不再由一个计算设备来独立完成所有的任务,从而减少了单个计算设备的算力开销,实现负载均衡,提高了处理性能。另一方面,还可以根据场景需要在该AI视频处理***中,新增或删减处理模块,使得处理任务的分配更加灵活。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为视频流的AI处理流程示意图;
图2为AI视频处理的计算设备的功能模块示意图;
图3为本申请实施例中图像处理方法的流程示意图;
图4为本申请中将共享内存划分为三级缓存的场景示意图;
图5为本申请中生命周期管理器的工作场景示意图;
图6为本申请中的图像处理方法的实验结果示意图;
图7为本申请实施例提供的一种图像处理装置的结构示意图;
图8为本申请实施例提供的计算机设备一种结构示意图。
具体实施方式
本申请实施例提供了一种图像处理的方法及相关装置,用于提高计算设备在进行AI视频处理时的性能。
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图像(例如视频流中的帧)的人工智能(artificial intelligence,AI)处理会串行经过多个处理模块,其中,主要包括视频读取模块、模型推理模块、逻辑后处理模块以及业务后处理模块。当前处理模块会处理输入图片以及上一处理模块的输出,从而得到当前处理模块的输出,而图片和元数据在各个处理模块间则通过队列的方式进行交互。
请参阅图1,图1为视频流的AI处理流程示意图。如图1所示,视频帧需要按照顺序依次执行视频读取任务、模型推理任务、逻辑后处理任务以及业务后处理任务,分别由计算设备中的视频读取模块、模型推理模块、逻辑后处理模块以及业务后处理模块来进行处理。其中,每一级子任务用一个线程实现,处理完毕后将数据传递给下一级子任务所在线程继续执行。通常模块间的交互则是通过消息队列完成。当没有新的任务或下一级子任务所在线程没有处理完毕时,就暂停等待。
请参阅图2,图2为AI视频处理的计算设备的功能模块示意图。如图2所示,由于上述各个处理模块之间是串行地部署于一个计算设备当中,因此,各个视频的处理任务需要基于先进先出(first input first output,FIFO)机制进行队列等候。在面对并行处理多路视频的场景时,需要由多个线程(进程)来执行,一路视频由一个线程(进程)负责。
而面对多路视频并行处理的场景,这对计算设备的算力开销是巨大的,各个线程(进程)之间的资源竞争剧烈,造成处理性能下降。
另一方面,上述模型推理模块,是在显卡上完成的,由于显存的限制,通常由图形处理器(graphics processing unit,GPU)的一路线程负责所有视频帧的模型推理任务的处理。因此,对于视频读取模块与模型推理模块之间,以及模型推理模块与逻辑后处理模块之间,则是N:1的资源竞争关系,更加放大了计算设备的算力开销、并发处理的问题,而其他模块也存在不同程度的资源竞争问题。
有鉴于此,本申请提供了一种图像处理的方法,用于提高计算设备在进行AI视频处理时的性能。本申请中的AI视频处理流程可以应用于各个业务场景,实现对于视频流的端到端的处理,得到相应的处理结果。例如,针对视频流中所出现的人物进行人脸识别,或者,对视频流中的道路信息进行采集等等,具体此处不做限定。上述视频流输入到AI视频处理***后,由AI视频处理***中的多个计算设备进行处理,分别执行视频读流任务、模型推理任务、逻辑后处理任务和业务后处理任务,从而得到最终的处理结果。请参阅图3,图3为本申请实施例中图像处理方法的流程示意图,如图3所示,本申请实施例中图像处理的方法包括:
101.第一计算设备根据目标图像生成第一处理结果。
本申请中的图像处理方法应用于AI视频处理***,AI视频处理***包括多个计算设备,多个计算设备之间建立远程直接内存访问(remote direct memory access,RDMA)连接,每个计算设备包括至少一个处理模块。这些计算设备的内存构成AI视频处理***的共享内存,多个计算设备协同工作,共同参与AI视频处理流程。
RDMA是一种新的直接内存访问技术,RDMA让计算机可以直接存取其他计算机的内存,而不需要经过处理器的处理。RDMA将数据从一个***快速移动到远程***的内存中,而不对操作***造成任何影响。在高性能计算机群(high performance computing,HPC)和数据中心场景中,RDMA是主要的内存访问方式。
在具体的远程内存读写中,RDMA操作用于读写操作的远程虚拟内存地址包含在RDMA消息中传送,远程应用程序要做的只是在其本地网卡中注册相应的内存缓冲区。远程节点的中央处理器(central processing unit,CPU)除在连接建立、注册调用等之外,在整个RDMA数据传输过程中并不提供服务,因此没有带来任何负载。
AI视频处理需要执行视频读取任务、模型推理任务、逻辑后处理任务以及业务后处理任务,每个任务需要由一个进程(或线程)来执行,即每个进程(或线程)相当于一个处理模块。换句话说,AI视频处理需要经过视频读取模块、模型推理模块、逻辑后处理模块以及业务后处理模块,本申请实施例中,可以将上述模块分布部署于整个AI视频处理***的各个计算设备中。基于内存的RDMA技术可以把不同计算设备的内存连通,形成一个整体的内存池(即本申请的共享内存),不同的模块就可以部署在不同的计算设备,通过多个计算设备的内存池形成数据的共享,则AI视频处理***中每个计算设备的内存均可以被其他计算设备通过RDMA技术所访问。示例性的,如图3所示,第一计算设备中部署有第一处理模块,第二计算设备中部署有第二处理模块,其中,第一处理模块为第二处理模块的上游处理模块。第一计算设备和第二计算设备均可以通过RDMA连接从共享内存中获取数据(例如本申请的目标图像)进行处理。
本申请实施例中,各个处理模块的部署具有较高的灵活性。在实际应用中,可以根据每个计算设备自身的性能、负载或场景需要等因素,来部署处理模块,本申请对此不做限定。例如,第一计算设备中的第一处理模块可以是视频读流模块,第二计算设备中的第二处理模块是模型推理模块;或者,第一计算设备中的第一处理模块可以是逻辑后处理模块,第二计算设备中的第二处理模块是业务后处理模块。另一方面,本申请也不限定计算设备中所部署的处理模块的数量,即一个计算设备中可以部署有一个处理模块,或者,一个计算设备中也可以部署有多个处理模块,本申请对此不做限定。
第一计算设备通过RDMA技术从AI视频处理***的共享内存中获取目标图像,并根据其所部署的处理模块来对目标图像进行处理,生成第一处理结果,并将该第一处理结果传递给第二计算设备,由第二计算设备进一步执行下游的处理任务。
102.第二计算设备通过RDMA连接从共享内存中获取目标图像。
AI视频处理流程中,上游处理任务的处理结果以及目标图像,会作为下游处理任务的输入。因此,第二计算设备在接收到来自第一计算设备的处理结果(即上游处理任务的处理结果)之后,还需要通过RDMA连接从共享内存中获取目标图像。
进一步的,为了第二计算设备能够获取到该目标图像,第一计算设备除了向第二计算设备发送第一处理结果之外,第一计算设备还需要向第二计算设备发送目标图像的指针,目标图像的指针用于指示目标图像在共享内存中的存储地址。第二计算设备获取到目标图像的指针之后,根据指针的指示,查找到目标图像在共享内存中的存储地址,从而获取该目标图像。
具体的,AI视频处理过程主要存在两种数据,分别是占用内存空间较大的图像以及占用较小的图像的元数据。其中,图像内容是在每个处理模块都是相同的,而元数据经过每个处理模块都会发生改变。为了便于对共享内存中的存储空间进行管理,本申请可以将共享内存分为多级缓存,用于区分不同类型的数据。示例性,请参阅图4,图4为本申请中将共享内存划分为三级缓存的场景示意图。如图4所示,下面以将共享内存分为三级缓存,进行介绍。
一级缓存,使用消息队列,用于存放元数据以及图片存储空间的键值。消息队列这种数据结构具备先进先出(first input first output,FIFO)的属性,满足顺序处理的需求。由于不再写入图像,而元数据加键值所占用的内存空间很小,可以极大地降低读写时的性能开销,缓解资源竞争造成的时延问题。
二级缓存,使用内存型存储作为共享存储,来存放图片。在写入图像(视频帧)时,将数据和键值传入消息队列,若键值为空,则分配相应的存储空间来存放图片;若是传入相同的键值,说明该图片已经写入了,则不再进行重复存储。当某个处理模块需要读取图像时,则通过键值取用相应的图像,将该图像从共享内存拷贝到该处理模块所在的计算设备的本地内存,进行使用。
二级缓存初始化时申请一片固定大小的内存,front_ptr与back_ptr分别是这段内存的首尾指针,start_ptr与end_ptr分别是这段内存中已经被占用空间的首尾指针。
图片的写操作:将图片写到end_ptr指向的内存空间,并且end_ptr向后移动一位。若end_ptr与back_ptr重合,则end_ptr跳转到front_ptr;若end_ptr与start_ptr重合,则将start_ptr的数据写到三级缓存,同时释放start_ptr指向的内存数据,start_ptr向后移动一位。此种情况只有在释放内存数据时需要加锁,而图片的读写操作,则都不需要进行加锁。
图片的读操作读:根据键值从二级缓存中拷贝图片数据并返回,若数据不在二级缓存,则从三级缓存读取图片,若三级缓存也不存在,则说明数据已经超过生命周期被清除,此时返回空。
三级缓存,使用固态性存储,用于缓存二级缓存中溢出的数据。由于二级缓存的存储空间有限,且图像具有一定生命周期,因此,当图像超出生命周期,或者,二级缓存的存储空间不足时,就可以将较早期的图像缓存到三级缓存。
为了便于对上述三级缓存进行管理,可以配置一个生命周期管理器,来同时监管二级和三级缓存。生命周期管理器也可以根据业务需求,设置图片的生命周期,定时清除。请参阅图5,图5为本申请中生命周期管理器的工作场景示意图。如图5所示,生命周期管理器负责管理二级缓存与三级缓存中的图像。生命周期管理器初始化时设定每张图像的生命周期时长,然后通过定时轮巡,查看二级缓存与三级缓存中的图像,若某些图像超过生命周期,则删除相应缓存中的图像,并更新相应的标志位指针。其次,生命周期管理器还会检测二级缓存的空间占用率,当空间占用率大于预设阈值(如80%)时,就可以自动搬迁二级缓存中最早的图像到三级缓存,以便提前预留出空间,供新的图像进行存储。
在传统的AI视频处理流程中,由于串行的多个处理模块全部部署于一个计算设备当中,则图像在读写操作的过程中,是会进行加锁的,因此,处于加锁状态的图片,则无法被其他操作所访问,即一个图片只能被一个读写操作所访问,并行处理的能力较差,效率较低。本申请中,处理模块是部署于多个不同的计算设备中,图片是存储于整个AI视频处理***的共享内存中的,因此,在二级缓存和三级缓存的读写操作的过程中,不需要对图片进行加锁,便于其他操作同时访问该图片,提高了并行处理的能力,扩大了并行的视频路数,提高了任务的执行效率。
103.第二计算设备根据第一处理结果和目标图像生成第二处理结果。
第二计算设备获取到第一处理结果和目标图像之后,进一步执行下游任务,从而生成第二处理结果。
本申请中,通过使用RDMA将多个计算设备的内存组成共享内存池,每个计算设备可以从共享内存池中获得目标图片以及前一个计算设备的处理结果,从而可以把完整一个图像处理(单独的静态图像或者视频中的图像帧)任务分解为串行的多个任务,分配到不同的多个计算设备来完成。利用多个计算设备的资源来协同进行视频处理,不再由一个计算设备来独立完成所有的任务,从而减少了单个计算设备的算力开销,实现负载均衡,提高了处理性能。
需要说明的是,模型推理模块,是需要部署在显卡上的GPU来完成的,换句话说,计算设备需要配置有GPU,才可以用于部署模型推理模块,才能对目标图像执行模型推理任务;而对于视频读取模块、逻辑后处理模块以及业务后处理模块,则是通过中央处理器(central processing unit,CPU)来执行的,不需要GPU的参与,这些模块可以部署于未配置有GPU但配置有CPU的计算设备中,或者,也可以部署于同时配置有GPU和CPU的计算设备中。可选的,第二计算设备中包括CPU而不包括GPU,则第二计算设备中可以用于通过CPU来执行非GPU任务,其中,非GPU任务为不需要GPU参与执行的任务,具体包括视频读取任务、逻辑后处理任务或业务后处理任务。换句话说,第二计算设备可以通过CPU对第一处理结果和目标图像进行非GPU任务的处理,得到第二处理结果,其中,第二处理结果为视频读流任务、逻辑后处理任务或业务后处理任务的处理结果;而第一计算设备中包括GPU,则第一计算设备中即可以用于通过GPU来执行GPU任务,其中,GPU任务为需要GPU参与执行的任务,具体包括模型推理任务,或者,也可以用于通过CPU来执行非GPU任务,第一计算设备通过GPU对目标图像执行模型推理任务,得到第一处理结果。
传统的AI视频处理流程中,计算设备是必须要配置有GPU,才能够执行模型推理任务。因此,未配置GPU的计算设备,是不能执行AI视频处理流程的。而本申请中,通过将完整的、串行的AI视频处理流程分配到不同的多个计算设备来完成,因此,仍然可以将视频读取任务、逻辑后处理任务以及业务后处理任务,分配给未配置GPU的计算设备来执行,从而降低了AI视频处理流程的实施条件,让更多的计算设备能够参与到AI视频处理流程中,进一步地提高了AI视频处理的效率。
另一方面,本申请中的各个处理模块是通过封装成容器,来部署到各个计算设备当中的。所以,各个处理模块之间是解耦状态,从而便可以根据实际场景的需要,灵活地新增或删减处理模块,实现处理模块的热插拔,实现细粒度的业务部署,使得处理任务的分配更加灵活。例如,可以新增任意一个处理模块到当前AI视频处理***中的计算设备;又例如,也可以新增一个计算设备,来参与到该AI视频处理***中,从而执行AI视频处理任务。
请参阅图6,图6为本申请中的图像处理方法的实验结果示意图。如图6所示,与传统的AI视频处理流程相比,本申请中的图像处理方法,在端到端耗时、以及各个处理模块的处理耗时方面,均有较大的提升。
为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体的,请参阅图7,图7为本申请实施例提供的一种图像处理装置的结构示意图,图像处理装置应用于人工智能AI视频处理***,AI视频处理***包括多个计算设备,多个计算设备之间建立远程直接内存访问RDMA连接,多个计算设备的内存构成AI视频处理***的共享内存,图像处理装置包括:
接收单元201,用于通过RDMA连接接收来自第一计算设备的第一处理结果,第一处理结果是第一计算设备根据目标图像生成的;
获取单元202,用于通过RDMA连接从共享内存中获取目标图像;
生成单元203,用于根据第一处理结果和目标图像生成第二处理结果。
在一种可能的设计中,接收单元201还用于:
通过RDMA连接接收来自第一计算设备的目标图像的指针,目标图像的指针用于指示目标图像在共享内存中的存储地址。
在一种可能的设计中,图像处理装置中包括中央处理器CPU不包括图形处理器GPU,生成单元203具体用于:
通过CPU对第一处理结果和目标图像进行非GPU任务处理,得到第二处理结果,非GPU任务是不需要GPU参与的任务。
在一种可能的设计中,第一计算设备中包括GPU,第一处理结果为第一计算设备通过GPU对目标图像执行GPU任务的处理结果,GPU任务为需要GPU参与的任务。
需要说明的是,图像处理装置中各模块/单元之间的信息交互、执行过程等内容,与本申请中图3对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例还提供了一种计算机设备,请参阅图8,图8为本申请实施例提供的计算机设备一种结构示意图,计算机设备300上可以部署有图7对应实施例中所描述的图像处理装置,用于实现图2对应实施例,具体的,计算机设备300由一个或多个服务器实现,计算机设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对XX设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在XX设备300上执行存储介质330中的一系列指令操作。
XX设备300还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作***341,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
需要说明的是,图像处理装置中各模块/单元之间的信息交互、执行过程等内容,与本申请中图4对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3所示实施例描述的方法。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图3所示实施例描述的方法。
本申请实施例提供的图像处理装置具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图3所示实施例描述的方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
所另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (16)
1.一种图像处理的方法,其特征在于,所述方法应用于人工智能AI图像处理***,所述AI图像处理***包括第一计算设备、第二计算设备在内的多个计算设备,所述多个计算设备之间建立远程直接内存访问RDMA连接,所述多个计算设备的内存通过所述RDMA连接构成所述AI图像处理***的共享内存,所述方法包括:
所述第二计算设备通过RDMA连接接收来自第一计算设备的第一处理结果,所述第一处理结果是所述第一计算设备根据目标图像生成的;
所述第二计算设备通过RDMA连接从所述共享内存中获取所述目标图像;
所述第二计算设备根据所述第一处理结果和所述目标图像生成第二处理结果。
2.根据权利要求1所述的方法,其特征在于,所述第二计算设备从所述共享内存中获取所述目标图像之前,所述方法还包括:
所述第二计算设备通过RDMA连接接收来自所述第一计算设备的目标图像的指针,所述目标图像的指针用于指示所述目标图像在所述共享内存中的存储地址。
3.根据权利要求1或2所述的方法,其特征在于,所述第二计算设备中包括中央处理器CPU不包括图形处理器GPU,所述第二计算设备根据所述第一处理结果和所述目标图像生成第二处理结果,包括:
所述第二计算设备通过所述CPU对所述第一处理结果和所述目标图像进行非GPU任务处理,得到第二处理结果,所述非GPU任务是不需要GPU参与的任务。
4.根据权利要求3所述的方法,其特征在于,所述第一计算设备中包括GPU,所述第一处理结果为所述第一计算设备通过所述GPU对所述目标图像执行GPU任务的处理结果,所述GPU任务为需要GPU参与的任务。
5.一种人工智能AI图像处理***,其特征在于,所述AI图像处理***包括第一计算设备、第二计算设备在内的多个计算设备,所述多个计算设备之间建立远程直接内存访问RDMA连接,所述多个计算设备的内存通过RDMA连接构成所述AI图像处理***的共享内存,所述AI图像处理***包括:
所述第一计算设备,用于根据目标图像计算生成第一处理结果,将所述第一处理结果通过RDMA连接发送给所述第二计算设备;
所述第二计算设备,用于通过RDMA连接从所述共享内存中获取所述目标图像,根据所述第一处理结果和所述目标图像生成第二处理结果。
6.根据权利要求5所述的AI图像处理***,其特征在于,所述AI图像处理***还包括第三计算设备和第四计算设备;
所述第三计算设备,用于根据对所述目标图像执行图像读流任务,得到第三处理结果,将所述第三处理结果通过RDMA连接发送给所述第一计算设备,所述第一处理结果为所述第一计算设备对所述目标图像和所述第三处理结果执行模型推理任务所得到的,所述第二处理结果为所述第二计算设备对所述目标图像和所述第一处理结果执行逻辑后处理任务所得到的;
所述第四计算设备,用于根据所述目标图像和所述第二处理结果执行业务后处理任务,得到第四处理结果,并输出所述第四处理结果。
7.根据权利要求5或6所述的AI图像处理***,其特征在于,所述第二计算设备还用于:
通过RDMA连接接收来自所述第一计算设备的目标图像的指针,所述目标图像的指针用于指示所述目标图像在所述共享内存中的存储地址。
8.根据权利要求5至7中任一项所述的AI图像处理***,其特征在于,所述第二计算设备中包括中央处理器CPU不包括图形处理器GPU,所述第二计算设备在根据所述第一处理结果和所述目标图像生成第二处理结果时,具体用于:
通过所述CPU对所述第一处理结果和所述目标图像进行非GPU任务处理,得到第二处理结果,所述非GPU任务是不需要GPU参与的任务。
9.根据权利要求8所述的AI图像处理***,其特征在于,所述第一计算设备中包括GPU,所述第一计算设备在根据目标图像生成第一处理结果时,具体用于:
通过所述GPU对所述目标图像执行GPU任务,得到第一处理结果,所述GPU任务为需要GPU参与的任务。
10.一种图像处理装置,其特征在于,所述图像处理装置应用于人工智能AI图像处理***,所述AI图像处理***包括第一计算设备、所述图像处理装置在内的多个计算设备,所述多个计算设备之间建立远程直接内存访问RDMA连接,所述多个计算设备的内存通过RDMA连接构成所述AI图像处理***的共享内存,所述图像处理装置包括:
接收单元,用于通过RDMA连接接收来自第一计算设备的第一处理结果,所述第一处理结果是所述第一计算设备根据目标图像生成的;
获取单元,用于通过RDMA连接从所述共享内存中获取所述目标图像;
生成单元,用于根据所述第一处理结果和所述目标图像生成第二处理结果。
11.根据权利要求10所述的图像处理装置,其特征在于,所述接收单元还用于:
通过RDMA连接接收来自所述第一计算设备的目标图像的指针,所述目标图像的指针用于指示所述目标图像在所述共享内存中的存储地址。
12.根据权利要求10或11所述的图像处理装置,其特征在于,所述图像处理装置中包括中央处理器CPU不包括图形处理器GPU,所述生成单元具体用于:
通过所述CPU对所述第一处理结果和所述目标图像进行非GPU任务处理,得到第二处理结果,所述非GPU任务是不需要GPU参与的任务。
13.根据权利要求12所述的图像处理装置,其特征在于,所述第一计算设备中包括GPU,所述第一处理结果为所述第一计算设备通过所述GPU对所述目标图像执行GPU任务的处理结果,所述GPU任务为需要GPU参与的任务。
14.一种计算机设备,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合,
所述存储器,用于存储程序;
所述处理器,用于执行所述存储器中的程序,使得所述计算机设备执行如权利要求1至4中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的方法。
16.一种计算机程序产品,其特征在于,所述计算机程序产品中存储有计算机可读指令,当所述计算机可读指令被处理器执行时实现如权利要求1至4中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210162890.0A CN116680042A (zh) | 2022-02-22 | 2022-02-22 | 一种图像处理的方法及相关装置和*** |
PCT/CN2023/077028 WO2023160484A1 (zh) | 2022-02-22 | 2023-02-18 | 一种图像处理的方法及相关装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210162890.0A CN116680042A (zh) | 2022-02-22 | 2022-02-22 | 一种图像处理的方法及相关装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680042A true CN116680042A (zh) | 2023-09-01 |
Family
ID=87764716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210162890.0A Pending CN116680042A (zh) | 2022-02-22 | 2022-02-22 | 一种图像处理的方法及相关装置和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116680042A (zh) |
WO (1) | WO2023160484A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881191A (zh) * | 2023-09-06 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE202006021054U1 (de) * | 2006-11-27 | 2012-04-03 | Siemens Aktiengesellschaft | Bildverarbeitungssystem zum Verarbeiten wenigstens eines Bild-Datensatzes mit einer schnellen Bildverarbeitungsvorrichtung |
US9697579B2 (en) * | 2013-06-07 | 2017-07-04 | Apple Inc. | Multi-processor graphics rendering |
CN106651748B (zh) * | 2015-10-30 | 2019-10-22 | 华为技术有限公司 | 一种图像处理方法与图像处理装置 |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架*** |
CN114064312A (zh) * | 2021-11-11 | 2022-02-18 | 杭州海康威视数字技术股份有限公司 | 一种数据处理***及模型训练方法 |
-
2022
- 2022-02-22 CN CN202210162890.0A patent/CN116680042A/zh active Pending
-
2023
- 2023-02-18 WO PCT/CN2023/077028 patent/WO2023160484A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881191A (zh) * | 2023-09-06 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116881191B (zh) * | 2023-09-06 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023160484A1 (zh) | 2023-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9009711B2 (en) | Grouping and parallel execution of tasks based on functional dependencies and immediate transmission of data results upon availability | |
US8812639B2 (en) | Job managing device, job managing method and job managing program | |
JP6897574B2 (ja) | アクセラレータ制御装置、アクセラレータ制御方法およびプログラム | |
CN111143174B (zh) | 在共享功率/热约束下操作的硬件的最佳操作点估计器 | |
US11550627B2 (en) | Hardware accelerated dynamic work creation on a graphics processing unit | |
US8155134B2 (en) | System-on-chip communication manager | |
CN110796588A (zh) | 同时计算和图形调度 | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和*** | |
US20140337848A1 (en) | Low overhead thread synchronization using hardware-accelerated bounded circular queues | |
CN103019810A (zh) | 具有不同执行优先级的计算任务的调度和管理 | |
CN103559088A (zh) | 维持公平性和顺序的资源管理子*** | |
US8180998B1 (en) | System of lanes of processing units receiving instructions via shared memory units for data-parallel or task-parallel operations | |
US20240143392A1 (en) | Task scheduling method, chip, and electronic device | |
CN115129480B (zh) | 标量处理单元的访问控制方法及标量处理单元 | |
CN110245024B (zh) | 静态存储块的动态分配***及其方法 | |
CN115525417A (zh) | 数据通信方法、通信***及计算机可读存储介质 | |
WO2023160484A1 (zh) | 一种图像处理的方法及相关装置和*** | |
US20210294660A1 (en) | Programming Model for Resource-Constrained Scheduling | |
US11467836B2 (en) | Executing cross-core copy instructions in an accelerator to temporarily store an operand that cannot be accommodated by on-chip memory of a primary core into a secondary core | |
CN103197917A (zh) | 计算线程阵列粒度执行抢占 | |
CN103176837A (zh) | 基于反转单链表的锁无关消息队列实现方法 | |
CN103218259A (zh) | 计算任务的调度和执行 | |
CN114816777A (zh) | 命令处理装置、方法、电子设备以及计算机可读存储介质 | |
Liu et al. | A robotic communication middleware combining high performance and high reliability | |
CN110955461A (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 |