CN115883564A - 一种媒体流处理方法、装置、电子设备及存储介质 - Google Patents
一种媒体流处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115883564A CN115883564A CN202310140468.XA CN202310140468A CN115883564A CN 115883564 A CN115883564 A CN 115883564A CN 202310140468 A CN202310140468 A CN 202310140468A CN 115883564 A CN115883564 A CN 115883564A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- npus
- algorithm models
- models
- cloned
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 389
- 238000013507 mapping Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000010367 cloning Methods 0.000 claims abstract description 54
- 230000008569 process Effects 0.000 claims abstract description 32
- 238000013528 artificial neural network Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000010979 ruby Substances 0.000 description 3
- 229910001750 ruby Inorganic materials 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种媒体流处理方法、装置、电子设备及存储介质,该方法包括:获取待处理的多个媒体流的映射关系;根据媒体流的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型;将克隆后的多个算法模型分配给全部NPU,以使全部NPU根据被分配的算法模型对多个媒体流进行处理。通过根据媒体流与算法模型以及神经网络处理器NPU之间的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型,并将克隆后的多个算法模型分配给全部NPU,改善了NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
Description
技术领域
本申请涉及网络处理器(NetworkProcessing Unit,NPU)的技术领域,具体而言,涉及一种媒体流处理方法、装置、电子设备及存储介质。
背景技术
目前,处理媒体流的算法模型和神经网络处理器(Neural-network ProcessingUnit,NPU)的数量是固定设置的,通常算法模型与NPU之间的对应关系是一对一或者一对多的固定关系。在具体的实践过程中发现,使用一对一或者一对多的固定关系处理媒体流时,存在一些NPU负载不够甚至部分NPU不工作的情况,因此,目前处理媒体流的方式无法充分地利用全部NPU的硬件算力。
发明内容
本申请实施例的目的在于提供一种媒体流处理方法、装置、电子设备及存储介质,用于改善无法充分地利用全部NPU的硬件算力的问题。
本申请实施例提供了一种媒体流处理方法,包括:获取待处理的多个媒体流的映射关系,映射关系包括:媒体流与多种算法模型之间的第一映射关系,以及,多种算法模型与神经网络处理器NPU之间的第二映射关系;根据媒体流的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型;将克隆后的多个算法模型分配给全部NPU,以使全部NPU根据被分配的算法模型对多个媒体流进行处理。在上述方案的实现过程中,通过根据媒体流与算法模型以及神经网络处理器NPU之间的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型,并将克隆后的多个算法模型分配给全部NPU,改善了NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
可选地,在本申请实施例中,根据媒体流的映射关系对多种算法模型进行克隆,包括:根据媒体流的映射关系计算出多种算法模型需要使用的NPU数量;判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量;若是,则对多种算法模型的至少一种算法模型进行克隆。在上述方案的实现过程中,通过在多种算法模型需要使用的NPU数量少于全部NPU的数量的情况下,就对多种算法模型的至少一种算法模型进行克隆,从而将克隆后的多个算法模型分配给全部NPU,改善了NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
可选地,在本申请实施例中,对多种算法模型的至少一种算法模型进行克隆,包括:针对至少一种算法模型中的每种算法模型,判断该种算法模型是否满足预设条件,预设条件包括:该种算法模型所处理的媒体流数量最多,和/或,该种算法模型中的最大耗时算法节点的消耗时长是多种算法模型中的最大耗时节点的消耗时长最大的;若是,则对该种算法模型进行克隆。在上述方案的实现过程中,通过对该种算法模型进行克隆,从而通过增加算法模型的克隆数量,来改善NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
可选地,在本申请实施例中,根据媒体流的映射关系对多种算法模型进行克隆,包括:根据多个媒体流的数量和第一映射关系计算多个媒体流需要使用的算法模型数量;判断多种算法模型中正在运行的算法模型数量是否小于多个媒体流需要使用的算法模型数量;若是,则对多种算法模型进行克隆。在上述方案的实现过程中,当正在运行的算法模型数量超过自身能力需要使用的算法模型数量,则对该种算法模型进行克隆,从而通过增加算法模型的克隆数量,来改善NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
可选地,在本申请实施例中,将克隆后的多个算法模型分配给全部NPU,包括:判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量;若是,则增加克隆后的多个算法模型,获得增加后的多个算法模型,并将增加后的多个算法模型均衡分配给全部NPU。在上述方案的实现过程中,通过在多种算法模型需要使用的NPU数量少于全部NPU的数量的情况下,就增加克隆后的多个算法模型,并将增加后的多个算法模型均衡分配给全部NPU,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
可选地,在本申请实施例中,在将克隆后的多个算法模型分配给全部NPU之后,还包括:若全部NPU中的每个NPU的算法模型不相等,且该NPU运行的多个算法模型中的算法节点数量超过预设阈值,且该NPU运行的多个算法模型有克隆的算法模型,则缩减掉该克隆的算法模型。
可选地,在本申请实施例中,在将克隆后的多个算法模型分配给全部NPU之后,还包括:针对全部NPU中的每个NPU,判断该NPU的内存使用量是否大于预设内存容量阈值;若是,则对该NPU运行的多个算法模型中克隆的算法模型进行缩减。
本申请实施例还提供了一种媒体流处理装置,包括:映射关系获取模块,用于获取待处理的多个媒体流的映射关系,映射关系包括:媒体流与多种算法模型之间的第一映射关系,以及,多种算法模型与神经网络处理器NPU之间的第二映射关系;算法模型克隆模块,用于根据媒体流的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型;算法模型处理模块,用于将克隆后的多个算法模型分配给全部NPU,以使全部NPU根据被分配的算法模型对多个媒体流进行处理。
可选地,在本申请实施例中,算法模型克隆模块,包括:NPU数量计算子模块,用于根据媒体流的映射关系计算出多种算法模型需要使用的NPU数量;NPU数量判断子模块,用于判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量;算法模型克隆子模块,用于若多种算法模型需要使用的NPU数量少于全部NPU的数量,则对多种算法模型的至少一种算法模型进行克隆。
可选地,在本申请实施例中,算法模型克隆子模块,包括:消耗时长判断单元,用于针对至少一种算法模型中的每种算法模型,判断该种算法模型是否满足预设条件,预设条件包括:该种算法模型所处理的媒体流数量最多,和/或,该种算法模型中的最大耗时算法节点的消耗时长是多种算法模型中的最大耗时节点的消耗时长最大的;算法模型克隆单元,用于若该种算法模型的消耗时长大于多种算法模型的平均消耗时长,则对该种算法模型进行克隆。
可选地,在本申请实施例中,算法模型克隆模块,包括:模型数量计算子模块,用于根据多个媒体流的数量和第一映射关系计算多个媒体流需要使用的算法模型数量;模型数量判断子模块,用于判断多种算法模型中正在运行的算法模型数量是否小于多个媒体流需要使用的算法模型数量;算法模型克隆子模块,用于若多种算法模型中正在运行的算法模型数量小于多个媒体流需要使用的算法模型数量,则对多种算法模型进行克隆。
可选地,在本申请实施例中,算法模型处理模块,包括:需要数量判断子模块,用于判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量;克隆模型增加子模块,用于若多种算法模型需要使用的NPU数量少于全部NPU的数量,则增加克隆后的多个算法模型,获得增加后的多个算法模型,并将增加后的多个算法模型均衡分配给全部NPU。
可选地,在本申请实施例中,媒体流处理装置,还包括:第一模型缩减模块,用于若全部NPU中的每个NPU的算法模型不相等,且该NPU运行的多个算法模型中的算法节点数量超过预设阈值,且该NPU运行的多个算法模型有克隆的算法模型,则缩减掉该克隆的算法模型。
可选地,在本申请实施例中,媒体流处理装置,还包括:容量阈值判断模块,用于针对全部NPU中的每个NPU,判断该NPU的内存使用量是否大于预设内存容量阈值;第二模型缩减模块,用于若该NPU的内存使用量大于预设内存容量阈值,则对该NPU运行的多个算法模型中克隆的算法模型进行缩减。
本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
本申请实施例的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请实施例中的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出的本申请实施例提供的媒体流处理方法的流程示意图;
图2示出的本申请实施例提供的将算法模型分配给全部NPU的流程示意图;
图3示出的本申请实施例提供的媒体流处理装置的结构示意图;
图4示出的本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例中的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请实施例的范围,而是仅仅表示本申请实施例中的选定实施例。基于本申请实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
可以理解的是,本申请实施例中的“第一”、“第二”用于区别类似的对象。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例提供的媒体流处理方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑、平板电脑、个人数字助理或者移动上网设备等。服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
下面介绍该媒体流处理方法适用的应用场景,这里的应用场景包括但不限于:可以使用该媒体流处理方法改善使用一对一或者一对多的固定关系处理媒体流导致一些NPU负载不够甚至部分NPU不工作的情况,由于该媒体流处理方法是将克隆后的多个算法模型分配给全部NPU,因此该媒体流处理方法能够自动充分地利用全部NPU的硬件算力资源,并使得每个NPU上运行的算法模型都是相对均衡的,有效地提高了媒体流和算法模型在全部NPU上运行的资源使用率等。
请参见图1示出的本申请实施例提供的媒体流处理方法的流程示意图;该媒体流处理方法的主要思路是,根据媒体流的映射关系对多种算法模型进行克隆,即通过克隆的方式来分担NPU所需要算法模型的运行任务压力,由于克隆的算法模型(又被称为克隆体或者算法克隆体)之间都是相互独立运行的,因此改善了NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力,使得每个NPU上运行的算法模型都是相对均衡的。上述媒体流处理方法的实施方式可以包括:
步骤S110:获取待处理的多个媒体流的映射关系,映射关系包括:媒体流与多种算法模型之间的第一映射关系,以及,多种算法模型与神经网络处理器NPU之间的第二映射关系。
上述步骤S110的实施方式例如:获取媒体流与多种算法模型之间的第一映射关系以及多种算法模型与神经网络处理器NPU之间的第二映射关系,并根据第一映射关系反向生成多种算法模型与媒体流的第三映射关系,具体例如:假设算法模型A一次最多能够处理两个媒体流,且算法模型B一次最多只能处理一个媒体流,假设一共有五个媒体流的第一映射关系是:媒体流0需要使用算法模型A,媒体流1需要使用算法模型A和算法模型B,媒体流2需要使用算法模型B,媒体流3需要使用算法模型A,媒体流4需要使用算法模型A,那么可以反向生成多种算法模型与媒体流的第三映射关系包括:算法模型A需要处理的媒体流序号是0、1、3和4,算法模型B需要处理的媒体流序号是1和2。
步骤S120:根据媒体流的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型。
以上面的例子继续说明,假设算法模型A需要处理的媒体流序号是0、1、3和4,算法模型B需要处理的媒体流序号是1和2,且算法模型A一次最多能够处理两个媒体流,且算法模型B一次最多只能处理一个媒体流,那么如果不对算法模型A进行克隆,那么算法模型A每次只能轮流处理四个媒体流(媒体流序号是0、1、3和4)中的两个媒体流,且算法模型B每次只能轮流处理两个媒体流(媒体流序号是1和2)中的一个媒体流,以算法模型A为例,若第一次取媒体流序号为0和1的媒体数据来运算,那么下一次就取媒体流序号为3和4的媒体数据来运算,依次交替获取媒体流中的媒体数据,算法模型B也是类似的,因此不再赘述。
步骤S130:将克隆后的多个算法模型分配给全部NPU,以使全部NPU根据被分配的算法模型对多个媒体流进行处理。
可以理解的是,上述的媒体流包括但不限于:音频流、视频流和三维模型等数据流等等,为了便于理解和说明,下面是以视频流来进行说明,即视频流中的视频图像的处理过程进行说明,音频流的处理方式也类似的,因此不再赘述。
在上述的实现过程中,通过根据媒体流与算法模型以及神经网络处理器NPU之间的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型,并将克隆后的多个算法模型分配给全部NPU,改善了NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
作为上述步骤S120的第一种可选实施方式,上述的根据媒体流的映射关系对多种算法模型进行克隆时,可以在算法模型需要使用的NPU数量少于全部NPU的数量时才进行克隆,该实施方式可以包括:
步骤S121:根据媒体流的映射关系计算出多种算法模型需要使用的NPU数量。
上述步骤S121的实施方式包括:可以从配置文件中读取出算法模型的配置信息,此处的配置信息包括但不限于:该算法模型保护的NPU数量、NPU的运行时长(又被称为运行耗时)、NPU的最大运行耗时和最大并发处理数量等等。根据算法模型的配置信息、上述的第二映射关系和第三映射关系,计算出多种算法模型需要使用的NPU数量。具体例如:假设第三映射关系和配置信息表明某个算法模型需要处理的媒体流的数量是m个,且该算法模型的最大并发处理数量是b,那么该算法模型理论上需要被克隆的数量是clone_num=,即对m除以b的结果向上取整,从而获得理论上的算法模型的克隆数量,然而,根据理论上的算法模型被克隆的数量以及上面的算法模型与神经网络处理器NPU之间的第二映射关系,即可计算出多种算法模型理论上需要使用的NPU数量。具体例如:假设算法模型A需要处理的媒体流序号是0、1、3和4,算法模型B需要处理的媒体流序号是1和2,且算法模型A一次最多能够处理两个媒体流,且算法模型B一次最多只能处理一个媒体流,且算法模型A和算法模型B均只使用一个NPU就可以工作,此时,可以算出这两个算法模型理论上需要使用的NPU数量是2。
步骤S122:判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量。
上述步骤S122的实施方式例如:以上面的例子继续描述,假设两个算法模型理论上需要使用的NPU数量是2,且该电子设备的全部NPU数量是4,那么可以对这两个算法模型进行克隆。
步骤S123:若多种算法模型需要使用的NPU数量少于全部NPU的数量,则对多种算法模型的至少一种算法模型进行克隆,获得克隆后的多个算法模型。
作为上述步骤S123的第一种可选实施方式,可以是对多种算法模型中的每种算法模型都进行克隆,具体例如:假设两个算法模型理论上需要使用的NPU数量是2,且该电子设备的全部NPU数量是4,那么很显然地,这两种算法模型需要使用的NPU数量是少于该电子设备的全部NPU数量的,因此可以对多种算法模型的至少一种算法模型进行克隆,具体可以是分别对算法模型A和算法模型B进行克隆,获得克隆后的多个算法模型包括:2个算法模型A和2个算法模型B,因此克隆后的算法模型数量是4。
作为上述步骤S123的第二种可选实施方式,可以是算法模型满足预设条件时,才对多种算法模型的至少一种算法模型进行克隆,该实施方式可以包括:
步骤S123a:针对至少一种算法模型中的每种算法模型,判断该种算法模型是否满足预设条件,预设条件包括:该种算法模型所处理的媒体流数量最多,和/或,该种算法模型中的最大耗时算法节点的消耗时长是多种算法模型中的最大耗时节点的消耗时长最大的。
上述步骤S123a的实施方式例如:假设至少一种算法模型是多种算法模型的情况,那么针对多种算法模型中的每种算法模型,使用预设编程语言编译或者解释的可执行程序,来判断该种算法模型是否满足预设条件,预设条件包括:该种算法模型所处理的媒体流数量最多,和/或,该种算法模型中的最大耗时算法节点的消耗时长是多种算法模型中的最大耗时节点的消耗时长最大的。可以使用的编程语言例如:C、C++、Java、BASIC、JavaScript、LISP、Shell、Perl、Ruby、Python和PHP等等。
步骤S123b:若该种算法模型满足预设条件,则对该种算法模型进行克隆,获得克隆后的算法模型。
作为上述步骤S120的第二种可选实施方式,可以在确定正在运行的算法模型数量小于多个媒体流需要使用的算法模型数量的情况下,才对多种算法模型进行克隆,该实施方式可以包括:
步骤S124:根据多个媒体流的数量和第一映射关系计算多个媒体流需要使用的算法模型数量。
步骤S125:判断多种算法模型中正在运行的算法模型数量是否小于多个媒体流需要使用的算法模型数量。
步骤S126:若多种算法模型中正在运行的算法模型数量小于多个媒体流需要使用的算法模型数量,则对多种算法模型进行克隆。
上述步骤S124至步骤S126的实施方式例如:根据多个媒体流的数量和第一映射关系计算多个媒体流需要使用的算法模型数量。使用的编程语言例如:C、C++、Java、BASIC、JavaScript、LISP、Shell、Perl、Ruby、Python和PHP等等来判断多种算法模型中正在运行的算法模型数量是否小于多个媒体流需要使用的算法模型数量。若多种算法模型中正在运行的算法模型数量小于多个媒体流需要使用的算法模型数量,则对多种算法模型进行克隆。在上述方案的实现过程中,当正在运行的算法模型数量超过自身能力需要使用的算法模型数量,则对该种算法模型进行克隆,从而通过增加算法模型的克隆数量,通过自动克隆的方式来改善NPU负载不够甚至部分NPU不工作的情况,有效地使得全部NPU根据分配的算法模型对多个媒体流进行处理,从而充分地利用全部NPU的硬件算力。
请参见图2示出的本申请实施例提供的将算法模型分配给全部NPU的流程示意图;作为上述步骤S130的一种可选实施方式,将克隆后的多个算法模型分配给全部NPU,包括:
步骤S131:判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量。
上述步骤S131的实施方式例如:使用预设编程语言编译或者解释的可执行程序判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量。可以使用的编程语言例如:C、C++、Java、BASIC、JavaScript、LISP、Shell、Perl、Ruby、Python和PHP等等。
步骤S132:若多种算法模型需要使用的NPU数量少于全部NPU的数量,则增加克隆后的多个算法模型,获得增加后的多个算法模型,并将增加后的多个算法模型均衡分配给全部NPU。
上述步骤S132的实施方式例如:由于电子设备上的NPU数量可能存在变化(例如有一些NPU发生故障或者从故障恢复),因此,电子设备上的全部NPU的数量可能存在减少或增加的情况。如果电子设备上有NPU从故障恢复时,就可能存在多种算法模型需要使用的NPU数量少于全部NPU的数量的情况,此时需要增加克隆后的多个算法模型,即对算法模型继续克隆,从而获得增加后的多个算法模型,并将增加后的算法模型分配给全部NPU。
作为上述步骤S130的一种可选实施方式,在判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量之后,还包括:
步骤S133:若多种算法模型需要使用的NPU数量多于NPU的全部数量,则减少克隆后的多个算法模型。
上述步骤S133的实施方式例如:由于电子设备上的NPU数量可能存在变化(例如有一些NPU发生故障或者从故障恢复),因此,电子设备上的全部NPU的数量可能存在减少或增加的情况。如果电子设备上有NPU发生故障时,就可能存在算法模型需要使用的NPU数量多于NPU的全部数量,此时需要减少克隆后的多个算法模型,即将已经克隆的算法模型进行卸载或销毁,具体可以是将该算法模型克隆体(即克隆后的算法模型)加入待卸载算法克隆体列表中,然后,定时地将待卸载算法克隆体列表中的算法模型克隆体进行卸载或销毁。
作为上述媒体流处理方法的一种可选实施方式,在将克隆后的多个算法模型分配给全部NPU之后,还包括:
步骤S140:若全部NPU中的每个NPU的算法模型不相等,且该NPU运行的多个算法模型中的算法节点数量超过预设阈值,且该NPU运行的多个算法模型有克隆的算法模型,则缩减掉该克隆的算法模型。
上述步骤S140的实施方式例如:若全部NPU中的每个NPU的算法模型不相等,且该NPU运行的多个算法模型中的算法节点数量超过预设阈值(例如预设阈值是2),且该NPU运行的多个算法模型有克隆的算法模型,则对该克隆的算法模型进行缩减,从而缩减掉该克隆的算法模型。可以理解的是,上述的预设阈值可以根据具体情况设置,例如将预设阈值设置为2或3等等。
作为上述媒体流处理方法的一种可选实施方式,在将克隆后的多个算法模型分配给全部NPU之后,还包括:
步骤S150:针对全部NPU中的每个NPU,判断该NPU的内存使用量是否大于预设内存容量阈值;
步骤S160:若该NPU的内存使用量大于预设内存容量阈值,则对该NPU运行的多个算法模型中克隆的算法模型进行缩减。
上述步骤S150至步骤S160的实施方式例如:针对全部NPU中的每个NPU,判断该NPU的内存使用量是否大于预设内存容量阈值;若该NPU的内存使用量大于预设内存容量阈值,则对该NPU运行的多个算法模型中克隆的算法模型进行缩减。可以理解的是,上述的预设内存容量阈值可以根据具体情况设置,例如将预设内存容量阈值设置为该NPU的全部内存容量的80%或90%等等。
请参见图3示出的本申请实施例提供的媒体流处理装置的结构示意图;本申请实施例提供了一种媒体流处理装置200,包括:
映射关系获取模块210,用于获取待处理的多个媒体流的映射关系,映射关系包括:媒体流与多种算法模型之间的第一映射关系,以及,多种算法模型与神经网络处理器NPU之间的第二映射关系。
算法模型克隆模块220,用于根据媒体流的映射关系对多种算法模型进行克隆,获得克隆后的多个算法模型。
算法模型处理模块230,用于将克隆后的多个算法模型分配给全部NPU,以使全部NPU根据被分配的算法模型对多个媒体流进行处理。
可选地,在本申请实施例中,算法模型克隆模块,包括:
NPU数量计算子模块,用于根据媒体流的映射关系计算出多种算法模型需要使用的NPU数量。
NPU数量判断子模块,用于判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量。
算法模型克隆子模块,用于若多种算法模型需要使用的NPU数量少于全部NPU的数量,则对多种算法模型的至少一种算法模型进行克隆。
可选地,在本申请实施例中,算法模型克隆子模块,包括:
消耗时长判断单元,用于针对至少一种算法模型中的每种算法模型,判断该种算法模型是否满足预设条件,预设条件包括:该种算法模型所处理的媒体流数量最多,和/或,该种算法模型中的最大耗时算法节点的消耗时长是多种算法模型中的最大耗时节点的消耗时长最大的。
算法模型克隆单元,用于若该种算法模型的消耗时长大于多种算法模型的平均消耗时长,则对该种算法模型进行克隆。
可选地,在本申请实施例中,算法模型克隆模块,包括:
模型数量计算子模块,用于根据多个媒体流的数量和第一映射关系计算多个媒体流需要使用的算法模型数量;
模型数量判断子模块,用于判断多种算法模型中正在运行的算法模型数量是否小于多个媒体流需要使用的算法模型数量;
算法模型克隆子模块,用于若多种算法模型中正在运行的算法模型数量小于多个媒体流需要使用的算法模型数量,则对多种算法模型进行克隆。
可选地,在本申请实施例中,算法模型处理模块,包括:
需要数量判断子模块,用于判断多种算法模型需要使用的NPU数量是否少于全部NPU的数量。
克隆模型增加子模块,用于若多种算法模型需要使用的NPU数量少于全部NPU的数量,则增加克隆后的多个算法模型,获得增加后的多个算法模型,并将增加后的多个算法模型均衡分配给全部NPU。
可选地,在本申请实施例中,媒体流处理装置,还包括:
第一模型缩减模块,用于若全部NPU中的每个NPU的算法模型不相等,且该NPU运行的多个算法模型中的算法节点数量超过预设阈值,且该NPU运行的多个算法模型有克隆的算法模型,则缩减掉该克隆的算法模型。
可选地,在本申请实施例中,媒体流处理装置,还包括:
容量阈值判断模块,用于针对全部NPU中的每个NPU,判断该NPU的内存使用量是否大于预设内存容量阈值;
第二模型缩减模块,用于若该NPU的内存使用量大于预设内存容量阈值,则对该NPU运行的多个算法模型中克隆的算法模型进行缩减。
应理解的是,该装置与上述的媒体流处理方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operatingsystem,OS)中的软件功能模块。
请参见图4示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质330,该计算机可读存储介质330上存储有计算机程序,该计算机程序被处理器310运行时执行如上的方法。其中,计算机可读存储介质330可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static RandomAccess Memory, 简称SRAM),电可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory, 简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read Only Memory, 简称EPROM),可编程只读存储器(ProgrammableRead-Only Memory, 简称PROM),只读存储器(Read-OnlyMemory, 简称ROM),磁存储器,快闪存储器,磁盘或光盘。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (10)
1.一种媒体流处理方法,其特征在于,包括:
获取待处理的多个媒体流的映射关系,所述映射关系包括:所述媒体流与多种算法模型之间的第一映射关系,以及,所述多种算法模型与神经网络处理器NPU之间的第二映射关系;
根据所述媒体流的映射关系对所述多种算法模型进行克隆,获得克隆后的多个算法模型;
将所述克隆后的多个算法模型分配给全部NPU,以使所述全部NPU根据被分配的算法模型对所述多个媒体流进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述媒体流的映射关系对所述多种算法模型进行克隆,包括:
根据所述媒体流的映射关系计算出所述多种算法模型需要使用的NPU数量;
判断所述多种算法模型需要使用的NPU数量是否少于全部NPU的数量;
若是,则对所述多种算法模型的至少一种算法模型进行克隆。
3.根据权利要求2所述的方法,其特征在于,所述对所述多种算法模型的至少一种算法模型进行克隆,包括:
针对所述至少一种算法模型中的每种算法模型,判断该种算法模型是否满足预设条件,所述预设条件包括:该种算法模型所处理的媒体流数量最多,和/或,该种算法模型中的最大耗时算法节点的消耗时长是所述多种算法模型中的最大耗时节点的消耗时长最大的;
若是,则对该种算法模型进行克隆。
4.根据权利要求1所述的方法,其特征在于,所述根据所述媒体流的映射关系对所述多种算法模型进行克隆,包括:
根据所述多个媒体流的数量和所述第一映射关系计算所述多个媒体流需要使用的算法模型数量;
判断所述多种算法模型中正在运行的算法模型数量是否小于所述多个媒体流需要使用的算法模型数量;
若是,则对所述多种算法模型进行克隆。
5.根据权利要求1所述的方法,其特征在于,所述将所述克隆后的多个算法模型分配给全部NPU,包括:
判断所述多种算法模型需要使用的NPU数量是否少于全部NPU的数量;
若是,则增加所述克隆后的多个算法模型,获得增加后的多个算法模型,并将所述增加后的多个算法模型均衡分配给所述全部NPU。
6.根据权利要求1所述的方法,其特征在于,在所述将所述克隆后的多个算法模型分配给全部NPU之后,还包括:
若所述全部NPU中的每个NPU的算法模型不相等,且该NPU运行的多个算法模型中的算法节点数量超过预设阈值,且该NPU运行的多个算法模型有克隆的算法模型,则缩减掉该克隆的算法模型。
7.根据权利要求1所述的方法,其特征在于,在所述将所述克隆后的多个算法模型分配给全部NPU之后,还包括:
针对所述全部NPU中的每个NPU,判断该NPU的内存使用量是否大于预设内存容量阈值;
若是,则对该NPU运行的多个算法模型中克隆的算法模型进行缩减。
8.一种媒体流处理装置,其特征在于,包括:
映射关系获取模块,用于获取待处理的多个媒体流的映射关系,所述映射关系包括:所述媒体流与多种算法模型之间的第一映射关系,以及,所述多种算法模型与神经网络处理器NPU之间的第二映射关系;
算法模型克隆模块,用于根据所述媒体流的映射关系对所述多种算法模型进行克隆,获得克隆后的多个算法模型;
算法模型处理模块,用于将所述克隆后的多个算法模型分配给全部NPU,以使所述全部NPU根据被分配的算法模型对所述多个媒体流进行处理。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140468.XA CN115883564B (zh) | 2023-02-21 | 2023-02-21 | 一种媒体流处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310140468.XA CN115883564B (zh) | 2023-02-21 | 2023-02-21 | 一种媒体流处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115883564A true CN115883564A (zh) | 2023-03-31 |
CN115883564B CN115883564B (zh) | 2023-05-23 |
Family
ID=85761402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310140468.XA Active CN115883564B (zh) | 2023-02-21 | 2023-02-21 | 一种媒体流处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115883564B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458294A (zh) * | 2019-08-19 | 2019-11-15 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN113435565A (zh) * | 2020-03-23 | 2021-09-24 | 算丰科技(北京)有限公司 | 神经网络模型的处理方法、推理方法及其装置和电子设备 |
CN113703975A (zh) * | 2021-08-27 | 2021-11-26 | 创新奇智(重庆)科技有限公司 | 模型分配方法、装置、电子设备及计算机可读存储介质 |
CN114139674A (zh) * | 2021-11-12 | 2022-03-04 | 中国科学院自动化研究所 | 行为克隆方法、电子设备、存储介质和程序产品 |
CN114282661A (zh) * | 2021-12-23 | 2022-04-05 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
CN114356492A (zh) * | 2020-10-12 | 2022-04-15 | 三星电子株式会社 | 具有虚拟化和分层存储器的加速器的系统、方法和设备 |
US20220231947A1 (en) * | 2021-01-19 | 2022-07-21 | Drivenets Ltd. | Method for Implementing a Consistent Hashing in a Communication Network |
CN114816457A (zh) * | 2022-05-17 | 2022-07-29 | 网易(杭州)网络有限公司 | 克隆虚拟模型的方法、装置、存储介质及电子装置 |
US20220292337A1 (en) * | 2021-06-18 | 2022-09-15 | Beijing Baidu Netcom Science Technology Co., Ltd. | Neural network processing unit, neural network processing method and device |
CN115240043A (zh) * | 2022-07-21 | 2022-10-25 | 深兰人工智能(深圳)有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
US20230025068A1 (en) * | 2021-07-21 | 2023-01-26 | Qualcomm Incorporated | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements |
-
2023
- 2023-02-21 CN CN202310140468.XA patent/CN115883564B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110458294A (zh) * | 2019-08-19 | 2019-11-15 | Oppo广东移动通信有限公司 | 模型运行方法、装置、终端及存储介质 |
CN110674936A (zh) * | 2019-09-24 | 2020-01-10 | 上海寒武纪信息科技有限公司 | 一种神经网络处理方法、装置、计算机设备及存储介质 |
CN113435565A (zh) * | 2020-03-23 | 2021-09-24 | 算丰科技(北京)有限公司 | 神经网络模型的处理方法、推理方法及其装置和电子设备 |
CN114356492A (zh) * | 2020-10-12 | 2022-04-15 | 三星电子株式会社 | 具有虚拟化和分层存储器的加速器的系统、方法和设备 |
US20220231947A1 (en) * | 2021-01-19 | 2022-07-21 | Drivenets Ltd. | Method for Implementing a Consistent Hashing in a Communication Network |
US20220292337A1 (en) * | 2021-06-18 | 2022-09-15 | Beijing Baidu Netcom Science Technology Co., Ltd. | Neural network processing unit, neural network processing method and device |
US20230025068A1 (en) * | 2021-07-21 | 2023-01-26 | Qualcomm Incorporated | Hybrid machine learning architecture with neural processing unit and compute-in-memory processing elements |
CN113703975A (zh) * | 2021-08-27 | 2021-11-26 | 创新奇智(重庆)科技有限公司 | 模型分配方法、装置、电子设备及计算机可读存储介质 |
CN114139674A (zh) * | 2021-11-12 | 2022-03-04 | 中国科学院自动化研究所 | 行为克隆方法、电子设备、存储介质和程序产品 |
CN114282661A (zh) * | 2021-12-23 | 2022-04-05 | 安谋科技(中国)有限公司 | 神经网络模型的运行方法、可读介质和电子设备 |
CN114816457A (zh) * | 2022-05-17 | 2022-07-29 | 网易(杭州)网络有限公司 | 克隆虚拟模型的方法、装置、存储介质及电子装置 |
CN115240043A (zh) * | 2022-07-21 | 2022-10-25 | 深兰人工智能(深圳)有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
ZICHAO WANG: "NPU Development Overview", 《SCIENTIFIC JOURNAL OF ECONOMICS AND MANAGEMENT RESEARCH》 * |
梁明兰;王峥;陈名松;: "基于可重构阵列架构的强化学习计算引擎", 集成技术 * |
Also Published As
Publication number | Publication date |
---|---|
CN115883564B (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113132176B (zh) | 一种控制边缘节点的方法、节点及边缘计算系统 | |
CN106572137B (zh) | 一种分布式服务资源管理方法和装置 | |
CN111309644A (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
CN112162856A (zh) | Gpu虚拟资源的分配方法、装置、计算机设备和存储介质 | |
CN111245732A (zh) | 一种流量控制方法、装置及设备 | |
CN105824705B (zh) | 一种任务分配方法和电子设备 | |
CN112269661A (zh) | 基于Kafka集群的分区迁移方法和装置 | |
CN112256433A (zh) | 基于Kafka集群的分区迁移方法和装置 | |
CN108459926B (zh) | 数据异地备份方法、装置及计算机可读介质 | |
CN111211993A (zh) | 流式计算的增量持久化方法及其装置 | |
CN112000485B (zh) | 任务分配方法、装置、电子设备及计算机可读存储介质 | |
CN113703975A (zh) | 模型分配方法、装置、电子设备及计算机可读存储介质 | |
CN115883564A (zh) | 一种媒体流处理方法、装置、电子设备及存储介质 | |
CN112398892B (zh) | 服务分配方法、装置及设备 | |
US8984475B2 (en) | Apparatus and method for generating code overlay | |
CN112463361A (zh) | 一种分布式计算的弹性资源分配的方法和设备 | |
CN116107753A (zh) | 一种任务节点分配方法、装置、电子设备及存储介质 | |
CN113448770A (zh) | 用于恢复数据的方法、电子设备和计算机程序产品 | |
CN112559115A (zh) | 一种容器镜像的删除方法、装置及设备 | |
CN112256420B (zh) | 任务分配方法、装置及电子设备 | |
CN113014659B (zh) | 微服务迁移方法、装置及存储介质和电子设备 | |
CN114385366A (zh) | 容器云平台的容器组弹性扩容方法、系统、介质和设备 | |
CN113395342B (zh) | 一种基于负载均衡分配的电网监控系统前置服务调度方法 | |
CN110908606B (zh) | 一种分布式文件系统的数据重构方法 | |
CN114253688A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 266000 Room 501, tower a, Haier International Plaza, No. 939, Zhenwu Road, Jimo Economic Development Zone, Qingdao, Shandong Patentee after: Innovation Qizhi Technology Group Co.,Ltd. Country or region after: China Address before: 266000 Room 501, tower a, Haier International Plaza, No. 939, Zhenwu Road, Jimo Economic Development Zone, Qingdao, Shandong Patentee before: Qingdao Chuangxin Qizhi Technology Group Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |