CN116302549A - Ai视频加速器的硬件资源获取方法、装置、设备及介质 - Google Patents
Ai视频加速器的硬件资源获取方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116302549A CN116302549A CN202310300968.5A CN202310300968A CN116302549A CN 116302549 A CN116302549 A CN 116302549A CN 202310300968 A CN202310300968 A CN 202310300968A CN 116302549 A CN116302549 A CN 116302549A
- Authority
- CN
- China
- Prior art keywords
- hardware resource
- resource acquisition
- acquisition request
- state
- request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012544 monitoring process Methods 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000004590 computer program Methods 0.000 claims description 22
- 238000013468 resource allocation Methods 0.000 claims description 3
- 238000013473 artificial intelligence Methods 0.000 description 29
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种AI视频加速器的硬件资源获取方法、装置、设备及介质,涉及计算机技术领域,包括:确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;将所述目标硬件资源的所述工作状态更新为预设忙碌状态,重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。合理为AI视频加速器的硬件资源获取请求分配对应的硬件资源。
Description
技术领域
本发明涉及计算机技术领域,特别涉及AI视频加速器的硬件资源获取方法、装置、设备及介质。
背景技术
随着时代的发展与进步,尤其是5G(5th Generation Mobile CommunicationTechnology,即第五代移动通信技术)的推广并使用,视频类爆发式增长,面对时代机遇,浪潮推出新一代面向全场景视频AI(Artificial Intelligence,即人工智能)应用的高密度VPU(Video Processing Unit,即视频处理单元)加速卡M10A(视频加速器),率先在8W超低功耗实现16路1080P全高清视频实时编解码,支持H264、HEVC(High Efficiency VideoCoding)、VP9(Next Gen Open Video)视频格式,完整支持主流视频处理框架FFMPEG(FastForward Mpeg),为用户打造“零”开发成本的极致体验,全面覆盖直播、短视频、视频会议、云游戏、AR(Augmented Reality,即增强现实)/VR(Virtual Reality,即虚拟现实)、云桌面等场景。M10A搭配服务器在多卡多路下存现出多任务高并发场景,对M10A的有限硬件资源,尤其是解码和编码的硬件核心争夺异常激烈,在长时间压力测试中会出现因偶发任务多占用硬件资源长而引发少数尾部申请硬件资源超时的情况,从而引发应用异常,严重影响用户使用体验。
目前主流的解决方案是在应用层增加重试机制进行规避,现有技术重试机制是在用户态的上层应用处,针对某一个接口调用失败而进行重试,但是需要进行重试的硬件资源获取请求与首次生成的硬件资源获取请求均混在一起,因此导致无法合理处理硬件资源获取请求,导致原本已经重试的硬件资源获取请求再次超时。
综上可见,如何合理为AI视频加速器的硬件资源获取请求分配对应的硬件资源是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种AI视频加速器的硬件资源获取方法、装置、设备及介质,能够合理为AI视频加速器的硬件资源获取请求分配对应的硬件资源。其具体方案如下:
第一方面,本申请公开了一种AI视频加速器的硬件资源获取方法,包括:
确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;
如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;
若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;
将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
可选的,所述判断所述第一硬件资源获取请求的数量是否大于预设阈值之后,还包括:
如果不大于,则确定第二队列中内核态下的第二硬件资源获取请求的数量,并判断所述第二硬件资源获取请求的数量是否大于所述预设阈值;
若大于,则在所述第二硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源。
可选的,所述确定第一队列中内核态下的第一硬件资源获取请求的数量之前,还包括:
将所述第二队列中请求时间大于预设请求时间阈值的内核态下的第二硬件资源获取请求更新为内核态下的第一硬件资源获取请求;
将该内核态下的第一硬件资源获取请求迁移至第一队列。
可选的,所述监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源之后,还包括:
若不存在,则判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值;
如果不大于,则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。
可选的,所述将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中,包括:
判断当前是否存在软中断信号,若否则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。
可选的,所述判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值之后,还包括:
若大于,则判定所述当前目标硬件资源获取请求的请求状态为预设请求失败状态,并将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求;
相应的,所述判断当前是否存在软中断信号之后,还包括:
判定所述当前目标硬件资源获取请求的请求状态为所述预设请求失败状态,并将所述当前目标硬件资源获取请求更新为所述用户态下的硬件资源获取请求。
可选的,所述将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求之后,还包括:
将所述用户态下的硬件资源获取请求转换为内核态下的硬件资源获取请求,并监测内核当前是否存在工作状态为所述预设空闲状态的目标硬件资源,若不存在则确定所述内核态下的硬件资源获取请求的存储位置;
若所述存储位置为所述第一队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并将所述内核态下的第一硬件资源获取请求存储至所述第一队列;
若所述存储位置为所述第二队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第二硬件资源获取请求,并将所述内核态下的第二硬件资源获取请求存储至所述第二队列。
第二方面,本申请公开了一种AI视频加速器的硬件资源获取装置,包括:
判断模块,用于确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;
监测模块,用于如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;
资源分配模块,用于若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;
跳转模块,用于将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的AI视频加速器的硬件资源获取方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的AI视频加速器的硬件资源获取方法的步骤。
可见,本申请确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。由此可见,本申请需要先对第一队列中的内核态下的第一硬件资源获取请求进行处理,并将预设空闲状态的目标硬件资源分配给与第一队列中的内核态下的第一硬件资源获取请求对应的视频处理线程,即只要第一队列中的请求数量大于预设阈值,则将空闲硬件资源分配至与第一队列中请求对应的视频处理线程,因此可以合理确定当前目标硬件资源获取请求,进而合理为当前目标硬件资源获取请求分配对应的硬件资源。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种AI视频加速器的硬件资源获取方法流程图;
图2为本申请公开的一种具体的AI视频加速器的硬件资源获取流程示意图;
图3为本申请公开的一种具体的AI视频加速器的硬件资源获取方法流程图;
图4为本申请公开的一种AI视频加速器的硬件资源获取装置结构示意图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着时代的发展与进步,尤其是5G的推广并使用,视频类爆发式增长,面对时代机遇,浪潮推出新一代面向全场景视频AI应用的高密度VPU加速卡M10A,率先在8W超低功耗实现16路1080P全高清视频实时编解码,支持H264、HEVC、VP9视频格式,完整支持主流视频处理框架FFMPEG,为用户打造“零”开发成本的极致体验,全面覆盖直播、短视频、视频会议、云游戏、AR/VR、云桌面等场景。M10A搭配服务器在多卡多路下存现出多任务高并发场景,对M10A的有限硬件资源,尤其是解码和编码的硬件核心争夺异常激烈,在长时间压力测试中会出现因偶发任务多占用硬件资源长而引发少数尾部申请硬件资源超时的情况,从而引发应用异常,严重影响用户使用体验。
目前主流的解决方案是在应用层增加重试机制进行规避,现有技术重试机制是在用户态的上层应用处,针对某一个接口调用失败而进行重试,但是需要进行重试的硬件资源获取请求与首次生成的硬件资源获取请求均混在一起,因此导致无法合理处理硬件资源获取请求,导致原本已经重试的硬件资源获取请求再次超时。
为此本申请相应的提供了一种AI视频加速器的硬件资源获取方案,能够合理为AI视频加速器的硬件资源获取请求分配对应的硬件资源。
参见图1所示,本申请实施例公开了一种AI视频加速器的硬件资源获取方法,包括:
步骤S11:确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值。
本实施例中,例如图2所示的一种具体的AI视频加速器的硬件资源获取流程示意图,设置两个先进先出队列(First In First Out,即FIFO),分别为第一队列B和第二队列A,第一队列的优先级比第二队列高,第一队列中内核态下的第一硬件资源获取请求,预设阈值为0,即判断第一硬件资源获取请求的数量是否大于0。
步骤S12:如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源。
本实施例中,如果第一硬件资源获取请求的数量大于0,可以理解的是,则优先处理第一队列中内核态下的第一硬件资源获取请求,并从第一硬件资源获取请求中确定出当前目标硬件资源获取请求。
本实施例中,AI视频加速器例如以M10A为例,其核心是实现硬件级的解码、编码、转码功能,转码一般是先解码再编码,硬件的实现的核心是转码芯片支撑,转码芯片里有硬解码core和编码core资源,不同的芯片处理能力编解码的core资源数量和能力略有不同,M10A的转码芯片硬解码core有2种,一种是全功能core A可以解码H264、HEVC和VP9;另外一种core B只可以单独解码H264,其中core A有2个,core B有2个。视频转码卡实现编解码功能的前提是要先申请占用芯片的编解码core资源,然后才能利用芯片的硬件能力进行编解码,使用完毕后再释放硬件编解码的core资源,释放后其他任务才能使用;一张M10A视频转码卡目前可以支持32路,在全部部署HEVC解码的情况下,32路会启动32个FFMPEG并发进程,每个FFMPEG进程会启动一个解码线程,每个解码线程均会申请硬件解码core资源,但芯片的硬件HEVC解码core资源只有2个,也就是说同一时刻最多只有2路在同时进行解码工作,其他30路会按请求顺序在队列中排队等待,只有等这2路的其中一路完成本次解码并释放硬件解码资源后才能有机会拿到硬件解码core资源。
步骤S13:若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程。
本实施例中,所述监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源之后,还包括:若不存在,则判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值;如果不大于,则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。可以理解的是,预设重试次数阈值可以基于具体情况进行设置;重试机制中增加检测软中断信号处理,在检测到软中断信号如SIGKILL则退出重试机制,向上返回最新的结果;重试机制可以设置一直循环直到请求成功,也可以设置请求一定次数后退出。
本实施例中,所述将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中,包括:判断当前是否存在软中断信号,若否则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。其中,软中断信号用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。
本实施例中,所述判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值之后,还包括:若大于,则判定所述当前目标硬件资源获取请求的请求状态为预设请求失败状态,并将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求;相应的,所述判断当前是否存在软中断信号之后,还包括:判定所述当前目标硬件资源获取请求的请求状态为所述预设请求失败状态,并将所述当前目标硬件资源获取请求更新为所述用户态下的硬件资源获取请求。
本实施例中,所述将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求之后,还包括:将所述用户态下的硬件资源获取请求转换为内核态下的硬件资源获取请求,并监测内核当前是否存在工作状态为所述预设空闲状态的目标硬件资源,若不存在则确定所述内核态下的硬件资源获取请求的存储位置;若所述存储位置为所述第一队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并将所述内核态下的第一硬件资源获取请求存储至所述第一队列;若所述存储位置为所述第二队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第二硬件资源获取请求,并将所述内核态下的第二硬件资源获取请求存储至所述第二队列。
本实施例中,设置优先级队列从而保证执行精度在较小可控范围;为底层驱动赋能,简化应用重试逻辑和层级;解决重试过程中突发无法立刻退出问题。支持内核态下的轻量级重试机制,解决用户态下应用端申请有限的编解码硬件资源超时而引发的各种异常,并运行在专用设备M10A的视频转码板卡上,确保应用稳定运行和提高访问效率。
步骤S14:将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
可以理解的是,目标硬件资源分配至与当前目标硬件资源获取请求对应的视频处理线程后,该目标硬件资源正在处理与当前目标硬件资源获取请求对应的视频处理线程,也即其工作状态为预设忙碌状态。解决了在高并发下因争夺有限的硬件资源超时而引发的应用异常;解决了因重试而带来的反复在用户态和内核态的切换开销,只需要从用户态进入内核态一次;解决了因重试多次而导致部分耗时较长,设置优先级队列从而保证执行精度在较小可控范围;解决了在应用中处理简单问题复杂化,通过在内核态的底层驱动增加重试机制,简化应用重试逻辑和层级;解决重试过程中突发无法快速退出的问题。
可见,本申请确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。由此可见,本申请需要先对第一队列中的内核态下的第一硬件资源获取请求进行处理,并将预设空闲状态的目标硬件资源分配给与第一队列中的内核态下的第一硬件资源获取请求对应的视频处理线程,即只要第一队列中的请求数量大于预设阈值,则将空闲硬件资源分配至与第一队列中请求对应的视频处理线程,因此可以合理确定当前目标硬件资源获取请求,进而合理为当前目标硬件资源获取请求分配对应的硬件资源。
参见图3所示,本申请实施例公开了一种具体的AI视频加速器的硬件资源获取方法,包括:
步骤S21:确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值。
首先在应用层找到调用底层驱动申请硬件编解码资源的API(ApplicationProgram Interface,即应用程序界面)接口,例如通过ioctl调用,检查上层应用在申请硬件编解码资源是否有重试机制,如果有则移除,目前的视频转码卡上是没有重试机制的;其次在底层驱动代码中找到对应的API接口具体实现部分,增加2种FIFO队列,按照请求先后顺序存放上层应用的请求到第二队列,在硬件的编解码资源释放后依次获得硬件的编解码资源。针对第二队列中请求超时的请求移入第一队列,第一队列的优先级比第二队列更高,如果第一队列中有请求系列,则处理完第一队列中的请求后才会处理第二队列中的请求。
本实施例中,所述确定第一队列中内核态下的第一硬件资源获取请求的数量之前,还包括:将所述第二队列中请求时间大于预设请求时间阈值的内核态下的第二硬件资源获取请求更新为内核态下的第一硬件资源获取请求;将该内核态下的第一硬件资源获取请求迁移至第一队列。针对第二队列中请求超时的请求移入第一队列,第一队列的优先级比第二队列更高,如果第一队列中有请求系列,则处理完第一队列中的请求后才会处理第二队列中的请求。可以理解的是,在按路数顺序启动的情形下,当前30路的总解码耗时超过设置的等待超时时间时,第31路会因超过设定的超时时间而超时,转而进入第一队列中,若第31路排序在第一队列的第一位,则此时若有空闲的硬件解码资源会立刻安排给第31路,若现在没有空闲的硬件解码资源,一旦有其他任务释放硬件解码资源,则同理第31路会因为优先级更高,优先拿到硬件解码资源。
步骤S22:如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源。
其中,关于上述步骤S22更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S23:如果不大于,则确定第二队列中内核态下的第二硬件资源获取请求的数量,并判断所述第二硬件资源获取请求的数量是否大于所述预设阈值;若大于,则在所述第二硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源。
本实施例中,如果第一队列中的请求数量不大于预设阈值0,即第一队列中当前没有存储请求,则可以从第二队列中筛选出当前目标硬件资源获取请求,因此只有在第一队列中不存在请求时,才会去第二队列中确定当前目标硬件资源获取请求,如果第二队列中也不存在请求,则说明当前没有请求需要处理。
步骤S24:若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程。
其中,关于上述步骤S24更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S25:将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
其中,关于上述步骤S25更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,本申请解决了在高并发下因争夺有限的硬件资源超时而引发的应用异常;设置优先级队列从而保证执行精度在较小可控范围,进而合理为当前目标硬件资源获取请求分配对应的硬件资源。
参见图4所示,本申请实施例公开了一种AI视频加速器的硬件资源获取装置,包括:
判断模块11,用于确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;
监测模块12,用于如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;
资源分配模块13,用于若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;
跳转模块14,用于将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
可见,本申请确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。由此可见,本申请需要先对第一队列中的内核态下的第一硬件资源获取请求进行处理,并将预设空闲状态的目标硬件资源分配给与第一队列中的内核态下的第一硬件资源获取请求对应的视频处理线程,即只要第一队列中的请求数量大于预设阈值,则将空闲硬件资源分配至与第一队列中请求对应的视频处理线程,因此可以合理确定当前目标硬件资源获取请求,进而合理为当前目标硬件资源获取请求分配对应的硬件资源。
进一步的,本申请实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现以下步骤:
确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;
如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;
若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;
将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
如果不大于,则确定第二队列中内核态下的第二硬件资源获取请求的数量,并判断所述第二硬件资源获取请求的数量是否大于所述预设阈值;
若大于,则在所述第二硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
将所述第二队列中请求时间大于预设请求时间阈值的内核态下的第二硬件资源获取请求更新为内核态下的第一硬件资源获取请求;
将该内核态下的第一硬件资源获取请求迁移至第一队列。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
若不存在,则判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值;
如果不大于,则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
判断当前是否存在软中断信号,若否则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
若大于,则判定所述当前目标硬件资源获取请求的请求状态为预设请求失败状态,并将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求;
相应的,所述判断当前是否存在软中断信号之后,还包括:
判定所述当前目标硬件资源获取请求的请求状态为所述预设请求失败状态,并将所述当前目标硬件资源获取请求更新为所述用户态下的硬件资源获取请求。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,还可以进一步包括以下步骤:
将所述用户态下的硬件资源获取请求转换为内核态下的硬件资源获取请求,并监测内核当前是否存在工作状态为所述预设空闲状态的目标硬件资源,若不存在则确定所述内核态下的硬件资源获取请求的存储位置;
若所述存储位置为所述第一队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并将所述内核态下的第一硬件资源获取请求存储至所述第一队列;
若所述存储位置为所述第二队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第二硬件资源获取请求,并将所述内核态下的第二硬件资源获取请求存储至所述第二队列。
本实施例中,电源23用于为电子设备上的各硬件设备提供工作电压;通信接口24能够为电子设备创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备执行的AI视频加速器的硬件资源获取方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由AI视频加速器的硬件资源获取过程中执行的方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种AI视频加速器的硬件资源获取方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种AI视频加速器的硬件资源获取方法,其特征在于,包括:
确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;
如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;
若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;
将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
2.根据权利要求1所述的AI视频加速器的硬件资源获取方法,其特征在于,所述判断所述第一硬件资源获取请求的数量是否大于预设阈值之后,还包括:
如果不大于,则确定第二队列中内核态下的第二硬件资源获取请求的数量,并判断所述第二硬件资源获取请求的数量是否大于所述预设阈值;
若大于,则在所述第二硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源。
3.根据权利要求2所述的AI视频加速器的硬件资源获取方法,其特征在于,所述确定第一队列中内核态下的第一硬件资源获取请求的数量之前,还包括:
将所述第二队列中请求时间大于预设请求时间阈值的内核态下的第二硬件资源获取请求更新为内核态下的第一硬件资源获取请求;
将该内核态下的第一硬件资源获取请求迁移至第一队列。
4.根据权利要求2或3任一项所述的AI视频加速器的硬件资源获取方法,其特征在于,所述监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源之后,还包括:
若不存在,则判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值;
如果不大于,则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。
5.根据权利要求4所述的AI视频加速器的硬件资源获取方法,其特征在于,所述将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中,包括:
判断当前是否存在软中断信号,若否则将所述当前目标硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并存储至所述第一队列中。
6.根据权利要求5所述的AI视频加速器的硬件资源获取方法,其特征在于,所述判断所述当前目标硬件资源获取请求的当前重试次数是否大于预设重试次数阈值之后,还包括:
若大于,则判定所述当前目标硬件资源获取请求的请求状态为预设请求失败状态,并将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求;
相应的,所述判断当前是否存在软中断信号之后,还包括:
判定所述当前目标硬件资源获取请求的请求状态为所述预设请求失败状态,并将所述当前目标硬件资源获取请求更新为所述用户态下的硬件资源获取请求。
7.根据权利要求6所述的AI视频加速器的硬件资源获取方法,其特征在于,所述将所述当前目标硬件资源获取请求更新为用户态下的硬件资源获取请求之后,还包括:
将所述用户态下的硬件资源获取请求转换为内核态下的硬件资源获取请求,并监测内核当前是否存在工作状态为所述预设空闲状态的目标硬件资源,若不存在则确定所述内核态下的硬件资源获取请求的存储位置;
若所述存储位置为所述第一队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第一硬件资源获取请求,并将所述内核态下的第一硬件资源获取请求存储至所述第一队列;
若所述存储位置为所述第二队列,则将所述内核态下的硬件资源获取请求更新为所述内核态下的第二硬件资源获取请求,并将所述内核态下的第二硬件资源获取请求存储至所述第二队列。
8.一种AI视频加速器的硬件资源获取装置,其特征在于,包括:
判断模块,用于确定第一队列中内核态下的第一硬件资源获取请求的数量,并判断所述第一硬件资源获取请求的数量是否大于预设阈值;
监测模块,用于如果大于,则在所述第一硬件资源获取请求中,确定当前目标硬件资源获取请求,并监测内核当前是否存在工作状态为预设空闲状态的目标硬件资源;
资源分配模块,用于若存在,则将所述目标硬件资源分配至与所述当前目标硬件资源获取请求对应的视频处理线程;
跳转模块,用于将所述目标硬件资源的所述工作状态更新为预设忙碌状态,并重新跳转至所述监测内核当前是否存在满足预设空闲状态的目标硬件资源的步骤。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的AI视频加速器的硬件资源获取方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的AI视频加速器的硬件资源获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310300968.5A CN116302549A (zh) | 2023-03-24 | 2023-03-24 | Ai视频加速器的硬件资源获取方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310300968.5A CN116302549A (zh) | 2023-03-24 | 2023-03-24 | Ai视频加速器的硬件资源获取方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116302549A true CN116302549A (zh) | 2023-06-23 |
Family
ID=86832244
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310300968.5A Pending CN116302549A (zh) | 2023-03-24 | 2023-03-24 | Ai视频加速器的硬件资源获取方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116302549A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112029A (zh) * | 2023-10-24 | 2023-11-24 | 上海芯联芯智能科技有限公司 | 一种指令执行方法及装置 |
-
2023
- 2023-03-24 CN CN202310300968.5A patent/CN116302549A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112029A (zh) * | 2023-10-24 | 2023-11-24 | 上海芯联芯智能科技有限公司 | 一种指令执行方法及装置 |
CN117112029B (zh) * | 2023-10-24 | 2024-03-12 | 上海芯联芯智能科技有限公司 | 一种指令执行方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294714B2 (en) | Method and apparatus for scheduling task, device and medium | |
CN113259744B (zh) | 视频的展示方法、装置、设备及介质 | |
CN113542757A (zh) | 云应用的图像传输方法、装置、服务器及存储介质 | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN108055304B (zh) | 远程数据的同步方法、装置、服务器、设备和存储介质 | |
CN116302549A (zh) | Ai视频加速器的硬件资源获取方法、装置、设备及介质 | |
CN112988346B (zh) | 任务处理方法、装置、设备及存储介质 | |
KR102601576B1 (ko) | 단계 지원 작업 흐름을 위한 방법 및 장치 | |
JP2021518955A (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
CN115080209A (zh) | 系统资源调度方法、装置、电子设备及存储介质 | |
CN116546228B (zh) | 用于虚拟场景的推流方法、装置、设备及存储介质 | |
CN110515749B (zh) | 信息发送的队列调度的方法、装置、服务器和存储介质 | |
CN110018782B (zh) | 一种数据读/写方法及相关装置 | |
CN111857902A (zh) | 应用的显示方法、装置、设备和可读存储介质 | |
CN115955590A (zh) | 视频处理方法、装置、计算机设备、介质 | |
CN115364477A (zh) | 云游戏控制方法、装置、电子设备及存储介质 | |
CN114359020A (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN113961484A (zh) | 数据的传输方法、装置、电子设备以及存储介质 | |
CN115373869A (zh) | 基于aar的进程处理方法、装置及电子设备 | |
KR101698484B1 (ko) | 자바 어플리케이션 실행 방법 및 장치 | |
CN111467797A (zh) | 游戏数据处理方法、装置、计算机存储介质与电子设备 | |
CN113259261B (zh) | 网络流量控制方法和电子设备 | |
CN112995613B (zh) | 一种分析资源管理方法及装置 | |
CN114286187A (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 |