CN109769115A - 一种优化智能视频分析性能的方法、装置和设备 - Google Patents
一种优化智能视频分析性能的方法、装置和设备 Download PDFInfo
- Publication number
- CN109769115A CN109769115A CN201910008524.8A CN201910008524A CN109769115A CN 109769115 A CN109769115 A CN 109769115A CN 201910008524 A CN201910008524 A CN 201910008524A CN 109769115 A CN109769115 A CN 109769115A
- Authority
- CN
- China
- Prior art keywords
- gpu
- analysis
- video
- task
- algorithm
- 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
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及一种优化智能视频分析性能的方法、装置和设备,本方法是:①针对离线视频文件的加速,对视频文件进行基准pipeline测试,设定最佳文件切片数目;对视频文件进行切片,将切片任务下发到GPU上;调用GPU对切片文件进行解码,解码结果直接通过显存地址回调给算法,不通过显存‑主存拷贝减少性能损耗;视频分析算法取解码后的显存地址,调用GPU进行算法加速并输出分析结果;②针对实时视频流算法分析的路数优化和扩展,调用GPU对每路实时视频进行解码,解码结果直接通过显存地址回调给算法,算法端设定双缓存,一块用于多路存储解码数据,一块用于传递给算法进行GPU批处理,当批处理完成之后,两块缓存功能切换,达到系统延迟最小的目的。
Description
技术领域
本发明涉及视频图像处理技术领域,具体涉及一种优化智能视频分析性能的方法、装置和设备。
背景技术
随着“平安城市”、“智慧城市”、“雪亮工程”等大型安防工程和项目的逐渐推进和落地,城市视频监控建设已慢慢进入深入期,在积累了海量视频数据的同时,也早已不满足单纯的“看”视频阶段:面对海量的视频场景,传统的人工肉眼查阅视频在耗费大量的人力物力的同时,往往还显得力不从心,无法适应现实的公安行业的办案需求。在此背景下面,通过智能视频分析算法,比如划线检测、目标追踪、人脸检测等等,将视频中的人、车、物等进行视频结构化,提取里面的目标特征,通过程序的自动化提取代替人眼,并结合大数据等技术手段进行关键字搜索来寻找线索,逐步成为安防行业的主流方式。
但是,智能分析算法面临海量视频处理场景时,面临着巨大的性能压力,以现在应用最广泛的1080PH264视频流为例,目前主流的基于x86架构的intelXeon服务器,基于CPU解码通常只能达到约200~300fps的性能,而智能视频分析算法通常是视频流->解码->YUV/RGB数据->算法处理的pipeline,当加上算法环节后,由于图像算法通常极耗CPU,上面的解码性能会更低,具体表现就是,针对视频的两种主要应用场景:离线视频和实时视频流,离线视频的分析速度会不高,实时视频流,能够支撑的并发路数也难上去,通过水平扩展分析节点,增加分析服务器的方式来提高效能的话,成本太高和性价比太低,很难支持大规模视频分析的应用场景。
发明内容
本发明的目的在于克服现有技术之缺陷,提供了一种优化智能视频分析性能的方法、装置和设备,其大大提高了智能视频分析性能,用以提供视频分析的硬件利用效率。
本发明是这样实现的:本发明提供一种优化智能视频分析性能的方法,采用了如下离线视频分析任务资源调度步骤,包括:
11)测试得到每块GPU卡上允许的最大并行处理任务数M;
12)将离线视频文件切片成n个子分析任务Ti(1≤i≤n);
13)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个子分析任务Ti,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源,则等待;
14)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。
步骤12)中对于录像时长为T的分析任务,将录像按deltaT为单位切分为T/deltaT个子任务。
本发明提供一种离线视频分析任务资源调度步骤后还采用了如下离线视频分析任务步骤,包括:
15)GPU调度模块获得对应的GPU卡id=j,和子分析任务Ti;
16)调用GPU解码模块对子分析任务Ti在与其对应的GPU卡上进行GPU硬解码,解码数据保存在GPU显存L中;
17)将GPU解码地址L直接传递给算法分析模块;
18)算法分析模块使用GPU卡j对传过来的GPU解码地址L对应的数据进行分析处理,当子分析任务Ti处理完毕后,释放对应GPU卡j上资源。
进一步地,实现离线视频分析任务资源调度时,测试得到每块GPU卡的最佳并行处理任务数M具体包括如下步骤:
选取基准测试文件;
将基准测试文件按M进行切片或者同时加载M个基准文件,用测试分析程序进行M路视频分析,从M=1,2,3,4…开始不断增大M,分别记录M=1,2,3,4…时对应的每路分析帧率fps值;当fps*M最大时,记下此时的M值,作为最佳的单卡GPU任务数;基准测试分析程序实现对多路视频文件的解码以及算法分析功能,并输出每路的分析帧率fps。
当fps*M最大时,分析倍速最高,分析步骤如下:
(1)假设录像文件时长为T,帧率为FR;
(2)定义指标分析加速比=录像时长/分析时间,来衡量分析效率;
(3)为分析模型简单起见,假设GPU服务器有N块GPU卡,首先将录像均匀的切割到N块卡上进行分析,每块卡上分到的录像片段时长为:
(4)假设对每块卡上时长t录像再进行切分,分片数目为M,每块卡上相当于M路视频流并行分析,每股视频流的分析帧率速度是fps,则每股流分析完需要时间:
录像总分析时间可用t1来近似,所以分析加速比N为GPU卡的数目,FR为视频的帧率,均为固定值。可变的只有单卡的切片数目M和每个切片的分析帧率fps,因此可得当两者乘积最大的时候,就是分析倍速最高的时候。
本发明采用GPU调度模块对各种GPU型号进行探测,自动识别出卡型、数目;一般以H264和H2651080P两种主流的视频源作为测试基准。
本发明还提供一种优化智能视频分析性能的方法,采用了如下实时视频流分析任务资源调度步骤,包括:
21)测试得到每块GPU卡上允许的最大并行处理任务数M;
22)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个实时流分析任务K,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源即所有GPU卡的运行任务数C≥P时,则等待;
23)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。
进一步地,实时视频流分析任务资源调度步骤后还采用了如下实时视频流分析任务步骤:
24)GPU调度模块获得对应的GPU卡id=j和分析任务Ti(1<=i<=M);
25)调用解码模块对分析任务Ti在对应的GPU卡j上进行GPU硬解码,解码数据保存在GPU显存L中;调用解码模块每解完一帧,就将解码后的数据信息传递给算法模块的数据接收接口。
26)算法分析模块针对每块GPU卡均设定至少两个缓存,同时缓存内部设有一个标志位,以及一个解码路数值k,解码路数值k用于保存累积的解码路数,当缓存标志位为false时,表示缓存可写,允许将解码数据保存在可写缓存中;当缓存标志位为true时,表示缓存可读,允许将缓存保存的多路解码数据批量传给算法分析模块进行分析处理,初始化每块GPU卡对应的几个缓存的标志位为false,数据接收模块接受对应GPU卡上的各路解码数据,并启动两个监控线程,一个为缓存写入监控线程,另一个为双缓存读出监控线程;
27)每当算法分析模块的数据接收接口接受到一路解码数据时,首先检查几个缓存的标志位,判断是否有可写的缓存,当至少有一个缓存的标志位为false时,表示有可写的缓存,则随机选择一个标志位为false的可写缓存,保存该路的解码数据,该缓存的解码路数值k加1;否则,直接抛弃该路解码数据,不处理直接返回;
28)缓存写入监控线程每隔指定时间检查几个缓存的状态,当缓存的解码路数值k大于或等于设定值K时,则认为缓存可读,将缓存标志位置为true,否则,将缓存标志位置为false;同时,缓存读取监控线程每隔指定时间检查几个缓存的状态时,当缓存标志位为true时,认为可读,则将缓存保存的多路解码数据批量传给算法分析模块进行分析处理,处理完毕后,将该缓存的标志位置为false,重新设为可写。
针对每块GPU卡均设定两个缓存;两个缓存与对应的GPU卡绑定;N块GPU卡对应N份双缓存。每份双缓存负责接受对应GPU上的解码数据;每个缓存允许保存最多M路的解码数据,M为测试得到的每块GPU卡上允许的最大并行处理任务数;设定值K为M/2。
应用程序主线程每解完一帧,就将解码后的数据信息通过算法分析模块的数据接收接口传递给算法分析模块。
算法分析模块提供接收数据接口,供解码层调用,有点像数据结构里面的push操作。解码模块、算法分析模块主要是运行在GPU上。算法分析模块对数据进行分析。解码模块和算法分析模块都是应用层序中的核心计算模块,负责解码和分析功能,并且解码和分析都是依赖GPU的对应硬件部件的,nvidiagpu里面有专门的视频编解码核和cuda核。
双缓存是针对实时视频(帧率是在线发送和固定的,一般25~30fps),强调的是尽可能在满足实时性的前提下,支持可能多的路数(一般10~30)。但路数多了,CPU和GPU之间、GPU内部之间数据传输和延迟就成了很大瓶颈,因此设计双缓存批处理进行缓解。
进一步地,实时视频流分析任务资源调度时,测试得到每块GPU卡上允许的最大并行处理任务数M具体包括如下步骤:
选取基准测试文件;
通过基准测试程序对M个测试文件进行解码和分析,输出分析帧率fps,从M=1,2,3..开始不断增大M,当fps降低逼近至设定的Q值时,记录此时的M值,为最佳单卡支持分析路数;基准测试程序对多路视频流文件进行解码和算法分析。实时流的帧率一般是25~30fps,以25为例,用文件来模拟测试时,M比较小时,每路的fps是比较大的,比如M=2时,可以到200fps,M不断增加时,fps是不断减小的,当fps降到25~30时,就不能再增加M了,再增加Mfpps<25时就无法满足实时性的要求了。逼近Q指微微大于或者等于Q。是以最小的fps为准,不管一般来说,会比较平均,不会相差太多。
本发明还提供一种优化智能视频分析性能的装置,包括GPU调度模块、解码模块和算法分析模块,所述GPU调度模块用于负责GPU卡的性能基准测试以及最佳并行任务数分配以及对视频分析任务的多卡调度,视频分析任务的多卡调度采用离线视频分析任务资源调度步骤或实时视频流分析任务资源调度步骤;
所述解码模块用于负责调用GPU解码器对GPU调度模块分配的视频任务
进行解码;
算法分析模块用于使用GPU对解码模块输出的结果进行算法分析。
本发明还提供一种优化智能视频分析性能的设备,包括存储器,用于存储程序;以及处理器,所述处理器用于执行所述程序时实现上述所述优化智能视频分析性能的方法的步骤。
与现有技术相比,本发明具有以下有益效果:本发明针对离线视频文件的加速,对视频文件进行基准pipeline测试,设定最佳文件切片数目;对视频文件进行切片,将切片任务下发到GPU上;调用GPU对切片文件进行解码,解码结果直接通过显存地址回调给算法,不通过显存-主存拷贝减少性能延迟损耗;视频分析算法取解码后的显存地址,调用GPU进行算法加速并输出分析结果。
本发明针对实时视频流算法分析的路数优化和扩展,调用GPU对每路实时视频进行解码,解码结果直接通过显存地址回调给算法,算法端设定双缓存,一块用于多路存储解码数据,一块用于传递给算法进行GPU批处理,当批处理完成之后,两块缓存功能切换,达到系统延迟最小的目的。
本发明针对离线视频和实时流分析都给出了相应的加速方法,可显著提高基于GPU硬件加速的系统效能。
附图说明
图1为本发明的优化智能视频分析性能装置的原理框图;
图2为本发明的离线视频的GPU资源调度图;
图3为本发明针对离线视频分析任务的实施实例图;
图4为本发明的实时流的GPU资源调度图;
图5为本发明针对实时视频分析任务的实施实例图;
图6为图5中双缓存切换步骤的详细实施实例图。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
参见图1,本实施例提供一种优化智能视频分析性能的装置,包括GPU调度模块、解码模块和算法分析模块,所述GPU调度模块用于负责GPU卡的性能基准测试以及最佳并行任务数分配以及对视频分析任务的多卡调度,视频分析任务的多卡调度采用实施例二的离线视频分析任务资源调度步骤或实施例三的实时视频流分析任务资源调度步骤;GPU调度模块对视频分析任务的多卡调度,具体根据视频分析任务的不同,分为离线视频和在线视频的两种调度模型。
GPU调度模块可对GPU分析任务进行切分、调度和管理;针对离线视频场景的加速优化:调用GPU对每个子任务进行硬解码,将显存地址直传给算法进行分析;针对在线实时流的场景的加速优化:调用GPU对每个子任务进行硬解码,将显存地址直传给算法进行分析,算法内部使用双缓存和批处理。
所述解码模块用于负责调用GPU解码器对GPU调度模块分配的视频任务进行解码。
算法分析模块用于使用GPU对解码模块输出的结果进行算法分析。
下面对各个模块具体的实施流程进行说明:(由于本方法侧重在整体框架和流程的优化,不在于解码和算法本身,解码模块和算法分析模块流程放在一起结合实施图例一起说明)。
实施例二
参见图2和图3,本实施例提供一种优化智能视频分析性能的方法,采用了如下离线视频的GPU资源调度处理步骤:
(1)对各种GPU型号进行探测和管理,自动识别出卡型、数目;
(2)使用主流的H264或者H2651080P视频文件作为基准测试源;
(3)编写基准测试分析程序,能够实现对多路视频文件的解码+算法分析功能,并能够输出每路的分析帧率fps;
(4)将基准测试文件按M=1,2,3,4…等进行切片(或者同时加载M个基准文件)用步骤3中的测试分析程序进行M路视频分析,记录每路的fps值;
(5)当第一次出现fps*M最大时,记下此时的M值,作为最佳的单卡GPU任务数;一般的,乘积值会先变大后持平或者下降,取第一个出现的最大的值即可。
(6)应用层将录像时长为T的视频文件按切片大小deltaT分为n=T/delataT个子分析任务,每个子分析任务记为Ti(1<=i<=n);
(7)GPU调度器初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0;
对于每个切分子分析任务Ti,顺序遍历N块GPU,当某块GPU有可用的GPU资源时(C<P),返回该GPU的id,同时C加1,遍历全部完成仍没有,则等待或者返回一个异常值;监控机制一般是有个任务管理器,内部会有总任务数,可以实现每块卡上正在运行的任务数计数和监视,当正在分析的任务分析完了之后,会通知管理器,管理器会将该块卡上正在分析任务数C减1,如果C<P,表示有空闲的可调度资源来了,将该资源分配给总任务里正在等待的任务。至于分配原则,可以顺序遍历,这是最简单的一种方式。
(8)对应的,当算法分析模块分析完毕释放GPUid时,对应GPU的C减1,并将该资源分配给总任务里正在等待的任务。
本实施例提供一种离线视频分析任务资源调度步骤后还采用了如下离线视频分析任务步骤:
(1)使用GPU调度器获得对应的GPU卡id=j,和子分析任务Ti;
(2)调用GPU解码器(SDK)对子分析任务切片Ti在GPUj上进行GPU硬解码,解码数据保存在GPU显存L中;
(3)将GPU解码地址L直接传递给算法分析模块;
(4)算法分析模块使用GPUj对传过来的地址L进行分析处理。对子分析任务Ti处理完毕后,释放对应GPUj上资源。
实施例三
参见图4至图6,本实施例提供一种优化智能视频分析性能的方法,采用了如下实时视频流分析任务资源调度步骤:
(1)对各种GPU型号进行探测和管理,自动识别出卡型、数目;
(2)对于指定的GPU卡型,使用主流的H264或者H2651080P实时视频流作为基准测试源;
(3)编写基准测试分析程序,能够实现对多路视频文件的解码+算法分析功能,并能够输出每路的分析帧率fps;
(4)对于单卡接入M路实时流,同时打印输出算法环节分析帧率fps,从M=1,2,3..开始不断增大M,当fps降低逼近至Q值如Q=25时(fps>=25,25为视频监控领域最常见的实时视频流帧率,Q值可根据实际帧率进行调整),记录此时的M值,为最佳单卡支持分析路数;
(5)GPU调度器初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0;
(6)对于每个实时流分析任务K,顺序遍历N块卡,当第i块卡上正在分析数目C小于P时,返回第i块卡id给算法进行处理,同时C增加1,遍历完毕没有空闲(所有GPU的C>=P)时,则等待;
(7)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,第i块卡上正在分析数目C减1,并将该资源分配给总任务里正在等待的任务;
进一步地,实时视频流分析任务资源调度步骤后还采用了如下实时视频流分析任务步骤:
(1)根据调度器确定每块卡设最大运行的分析路数为M;
(2)使用GPU调度器获得对应的GPU卡id=j,和分析任务Ti(1<=i<=M);
(3)调用GPU解码器(SDK)对分析任务Ti在GPUj上进行GPU硬解码,解码数据保存在GPU显存L中;
(4)算法分析模块针对每块GPU设定两个一样的GPU缓存,分别标号为一号缓存和二号缓存,每块缓存可以保存最多M路的解码数据,同时内部设有一个标志位,以及一个解码路数值k,用于保存累积的解码路数。算法模块启动的时候,初始化两块GPU缓存的标志位为false;同时包括一个数据接收接口,每路解码数据可通过调用此接口向算法分析模块传递解码数据L。
A、当双缓存标志位为false时,表示缓存可写,可将多路解码数据保存在可写缓存中;
B、当双缓存标志位为true时,表示缓存可读,可将保存的多路解码数据批量传给给算法分析模块进行批处理;
C、双缓存对应一块GPU,如果是N块GPU话,对应N份双缓存,其与卡绑定,每份双缓存负责接受对应GPU上的M路解码数据;下面步骤均以单卡进行说明;
(5)算法分析模块开启两个线程,一个缓存写入监控线程,一个双缓存读出监控线程,每10ms监控检查一次;
(6)第i路解码数据(1<=i<=M)到达时,调用算法分析模块的数据接收接口;
(7)数据接收接口内部首先检查算法分析模块的双缓存标志位,当至少有一个为false时,表示有可写的双缓存,进入下一步,否则,直接抛弃该路解码数据,不做任何处理;
(8)随机选择一个为false的可写双缓存,保存第i路的解码数据,k加1,数据接收接口调用完毕;
步骤6)、7)、8)为解码模块调用算法分析模块的数据接收接口的执行流程,和下面步骤9)以后算法分析模块的内部的处理步骤是异步执行的;
(9)算法分析模块的缓存写入监控线程,每隔10ms检查双缓存状态时,当每块缓存保存解码数据路数超过最大值一半时(k>=M/2),认为缓存可读,将缓存标志位置为true;
(10)算法分析模块的缓存读取监控线程,每隔10ms检查双缓存状态时,当双缓存标志位为true时,认为可读,将该块缓存传给给分析模块进行批处理,处理完毕后,将标志置为false,重新设为可写。针对实时视频流主要性能瓶颈在于多GPU任务并行处理时的时延,对实时流视频场景的加速优化设计上述处理步骤。
实施例四
本发明还提供一种优化智能视频分析性能的设备,包括存储器,用于存储程序;以及处理器,所述处理器用于执行所述程序时实现实施例二、实施例三所述优化智能视频分析性能的方法的步骤。
本发明采用基于GPU的系统架构,通过应用GPU解码和GPU算法加速,来提升系统的性能。本发明在最基本的GPU解码和算法加速两个环节之上,提出了一种优化的视频分析算法加速方法,针对离线视频和实时流两种场景进行系统环节的优化,可以更显著的发挥出现有GPU系统的能力,提高系统的处理性能。在面对大批量的视频处理时,可显著的降低系统部署成本,具有明显的经济效益。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种优化智能视频分析性能的方法,其特征在于,采用了如下离线视频分析任务资源调度步骤,包括:
11)测试得到每块GPU卡上允许的最大并行处理任务数M;
12)将离线视频文件切片成n个子分析任务Ti(1≤i≤n);
13)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个子分析任务Ti,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源时,则等待;
14)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。
2.根据权利要求1所述的方法,其特征在于:离线视频分析任务资源调度步骤后还采用了如下离线视频分析任务步骤,包括:
15)GPU调度模块获得对应的GPU卡id=j,和子分析任务Ti;
16)调用GPU解码模块对子分析任务Ti在与其对应的GPU卡上进行GPU硬解码,解码数据保存在GPU显存L中;
17)将GPU解码地址L直接传递给算法分析模块;
18)算法分析模块使用GPU卡j对传过来的GPU解码地址L对应的数据进行分析处理,当子分析任务Ti处理完毕后,释放对应GPU卡j上资源。
3.根据权利要求1所述的方法,其特征在于:实现离线视频分析任务资源调度时,测试得到每块GPU卡的最佳并行处理任务数M具体包括如下步骤:选取基准测试文件;
将基准测试文件按M进行切片或者同时加载M个基准文件,用测试分析程序进行M路视频分析,从M=1,2,3,4…开始不断增大M,分别记录M=1,2,3,4…时对应的每路分析帧率fps值;当fps*M最大时,记下此时的M值,作为最佳的单卡GPU任务数;基准测试分析程序实现对多路视频文件的解码以及算法分析功能,并输出每路的分析帧率fps。
4.一种优化智能视频分析性能的方法,其特征在于,采用了如下实时视频流分析任务资源调度步骤,包括:
21)测试得到每块GPU卡上允许的最大并行处理任务数M;
22)初始化每块GPU卡上的最大并行处理任务数P=M,正在运行任务数C=0,对每个实时流分析任务K,顺序遍历N块GPU卡,当第i块GPU卡上正在运行任务数C小于P时,获得该第i块GPU卡的id,同时该第i块GPU卡的运行任务数C增加1,当遍历完毕后没有发现可用的GPU资源即所有GPU卡的运行任务数C≥P时,则等待;
23)每个获得GPU资源的任务分析完毕时,释放对应的GPU资源id,对应的GPU卡上正在运行任务数C减1,并将该资源分配给正在等待的任务。
5.根据权利要求4所述的方法,其特征在于:实时视频流分析任务资源调度步骤后还采用了如下实时视频流分析任务步骤,包括:
24)GPU调度模块获得对应的GPU卡id=j和分析任务Ti(1<=i<=M);
25)调用解码模块对分析任务Ti在对应的GPU卡j上进行GPU硬解码,解码数据保存在GPU显存L中;
26)算法分析模块针对每块GPU卡均设定至少两个缓存,同时缓存内部设有一个标志位,以及一个解码路数值k,解码路数值k用于保存累积的解码路数,当缓存标志位为false时,表示缓存可写,允许将解码数据保存在可写缓存中;当缓存标志位为true时,表示缓存可读,允许将缓存保存的多路解码数据批量传给算法模块进行分析处理,初始化每块GPU卡对应的几个缓存的标志位为false,启动两个监控线程,一个为缓存写入监控线程,另一个为双缓存读出监控线程;
27)每当算法分析模块的数据接收接口接受到一路解码数据时,首先检查几个缓存的标志位,判断是否有可写的缓存,当至少有一个缓存的标志位为false时,表示有可写的缓存,则随机选择一个标志位为false的可写缓存,保存该路的解码数据,该缓存的解码路数值k加1;否则,直接抛弃该路解码数据,不处理直接返回;
28)缓存写入监控线程每隔指定时间检查几个缓存的状态,当缓存的解码路数值k大于或等于设定值K时,则认为缓存可读,将缓存标志位置为true,否则,将缓存标志位置为false;同时,缓存读取监控线程每隔指定时间检查几个缓存的状态时,当缓存标志位为true时,认为可读,则将缓存保存的多路解码数据批量传给算法分析模块进行分析处理,处理完毕后,将该缓存的标志位置为false,重新设为可写。
6.根据权利要求5所述的方法,其特征在于:针对每块GPU卡均设定两个缓存;两个缓存与对应的GPU卡绑定;每份双缓存负责接受对应GPU上的解码数据。
7.根据权利要求5所述的方法,其特征在于:每个缓存允许保存最多M路的解码数据,M为测试得到的每块GPU卡上允许的最大并行处理任务数;设定值K为M/2。
8.根据权利要求4所述的方法,其特征在于:实时视频流分析任务资源调度时,测试得到每块GPU卡上允许的最大并行处理任务数M具体包括如下步骤,包括:
选取基准测试文件;
通过基准测试程序对M个测试文件进行解码和分析,输出分析帧率fps,从M=1,2,3..开始不断增大M,当fps降低逼近至设定的Q值时,记录此时的M值,为最佳单卡支持分析路数;基准测试程序对多路视频流文件进行解码和算法分析。
9.一种优化智能视频分析性能的装置,其特征在于:包括GPU调度模块、解码模块和算法分析模块,所述GPU调度模块用于负责GPU卡的性能基准测试以及最佳并行任务数分配以及对视频分析任务的多卡调度,视频分析任务的多卡调度采用权利要求1或4所述的步骤;
所述解码模块用于负责调用GPU解码器对GPU调度模块分配的视频任务进行解码;
所述解码模块用于调用GPU解码器对GPU调度模块分配的视频任务进行解码。
所述算法分析模块用于负责将解码模块输出的结果作为输入,进行算法分析。
10.一种优化智能视频分析性能的设备,其特征在于:包括存储器,用于存储程序;
以及处理器,所述处理器用于执行所述程序时实现如权利要求1至8任一项所述优化智能视频分析性能的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910008524.8A CN109769115B (zh) | 2019-01-04 | 2019-01-04 | 一种优化智能视频分析性能的方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910008524.8A CN109769115B (zh) | 2019-01-04 | 2019-01-04 | 一种优化智能视频分析性能的方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109769115A true CN109769115A (zh) | 2019-05-17 |
CN109769115B CN109769115B (zh) | 2020-10-27 |
Family
ID=66452626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910008524.8A Active CN109769115B (zh) | 2019-01-04 | 2019-01-04 | 一种优化智能视频分析性能的方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109769115B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683296A (zh) * | 2020-06-18 | 2020-09-18 | 苏州科达科技股份有限公司 | 视频切分方法、装置、电子设备及存储介质 |
CN111897634A (zh) * | 2020-07-06 | 2020-11-06 | 浙江大华技术股份有限公司 | 算子的运行方法及装置、存储介质、电子装置 |
CN111913799A (zh) * | 2020-07-14 | 2020-11-10 | 北京华夏启信科技有限公司 | 一种视频流在线分析任务调度方法和计算机设备 |
CN111988561A (zh) * | 2020-07-13 | 2020-11-24 | 浙江大华技术股份有限公司 | 视频分析的自适应调整方法、装置、计算机设备和介质 |
CN112954449A (zh) * | 2021-01-29 | 2021-06-11 | 浙江大华技术股份有限公司 | 视频流处理方法、系统、电子装置和存储介质 |
CN113225623A (zh) * | 2021-04-30 | 2021-08-06 | 四川云从天府人工智能科技有限公司 | 自适应视频文件加速解析方法、计算机设备以及存储介质 |
CN113225506A (zh) * | 2020-01-21 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 录像数据分析方法及装置 |
CN113572997A (zh) * | 2021-07-22 | 2021-10-29 | 中科曙光国际信息产业有限公司 | 视频流数据分析方法、装置、设备及存储介质 |
CN113867882A (zh) * | 2020-06-30 | 2021-12-31 | 中国电信股份有限公司 | 容器资源调度方法和装置、计算机可读存储介质 |
CN115641497A (zh) * | 2022-12-23 | 2023-01-24 | 中电信数字城市科技有限公司 | 多路视频处理系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140173258A1 (en) * | 2012-12-19 | 2014-06-19 | Nvidia Corporation | Technique for performing memory access operations via texture hardware |
CN104156264A (zh) * | 2014-08-01 | 2014-11-19 | 西北工业大学 | 一种基于多gpu的基带信号处理任务并行实时调度方法 |
CN105163127A (zh) * | 2015-09-07 | 2015-12-16 | 浙江宇视科技有限公司 | 视频分析方法及装置 |
CN105224410A (zh) * | 2015-10-19 | 2016-01-06 | 成都卫士通信息产业股份有限公司 | 一种调度gpu进行批量运算的方法及装置 |
US9600852B2 (en) * | 2013-05-10 | 2017-03-21 | Nvidia Corporation | Hierarchical hash tables for SIMT processing and a method of establishing hierarchical hash tables |
CN106686352A (zh) * | 2016-12-23 | 2017-05-17 | 北京大学 | 多gpu平台的多路视频数据的实时处理方法 |
-
2019
- 2019-01-04 CN CN201910008524.8A patent/CN109769115B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140173258A1 (en) * | 2012-12-19 | 2014-06-19 | Nvidia Corporation | Technique for performing memory access operations via texture hardware |
US9600852B2 (en) * | 2013-05-10 | 2017-03-21 | Nvidia Corporation | Hierarchical hash tables for SIMT processing and a method of establishing hierarchical hash tables |
CN104156264A (zh) * | 2014-08-01 | 2014-11-19 | 西北工业大学 | 一种基于多gpu的基带信号处理任务并行实时调度方法 |
CN105163127A (zh) * | 2015-09-07 | 2015-12-16 | 浙江宇视科技有限公司 | 视频分析方法及装置 |
CN105224410A (zh) * | 2015-10-19 | 2016-01-06 | 成都卫士通信息产业股份有限公司 | 一种调度gpu进行批量运算的方法及装置 |
CN106686352A (zh) * | 2016-12-23 | 2017-05-17 | 北京大学 | 多gpu平台的多路视频数据的实时处理方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113225506B (zh) * | 2020-01-21 | 2022-09-30 | 杭州海康威视数字技术股份有限公司 | 录像数据分析方法及装置 |
CN113225506A (zh) * | 2020-01-21 | 2021-08-06 | 杭州海康威视数字技术股份有限公司 | 录像数据分析方法及装置 |
CN111683296A (zh) * | 2020-06-18 | 2020-09-18 | 苏州科达科技股份有限公司 | 视频切分方法、装置、电子设备及存储介质 |
CN111683296B (zh) * | 2020-06-18 | 2022-08-02 | 苏州科达科技股份有限公司 | 视频切分方法、装置、电子设备及存储介质 |
CN113867882A (zh) * | 2020-06-30 | 2021-12-31 | 中国电信股份有限公司 | 容器资源调度方法和装置、计算机可读存储介质 |
CN113867882B (zh) * | 2020-06-30 | 2024-03-15 | 中国电信股份有限公司 | 容器资源调度方法和装置、计算机可读存储介质 |
CN111897634A (zh) * | 2020-07-06 | 2020-11-06 | 浙江大华技术股份有限公司 | 算子的运行方法及装置、存储介质、电子装置 |
CN111988561A (zh) * | 2020-07-13 | 2020-11-24 | 浙江大华技术股份有限公司 | 视频分析的自适应调整方法、装置、计算机设备和介质 |
CN111988561B (zh) * | 2020-07-13 | 2022-05-03 | 浙江大华技术股份有限公司 | 视频分析的自适应调整方法、装置、计算机设备和介质 |
CN111913799A (zh) * | 2020-07-14 | 2020-11-10 | 北京华夏启信科技有限公司 | 一种视频流在线分析任务调度方法和计算机设备 |
CN111913799B (zh) * | 2020-07-14 | 2024-04-19 | 北京华夏启信科技有限公司 | 一种视频流在线分析任务调度方法和计算机设备 |
CN112954449A (zh) * | 2021-01-29 | 2021-06-11 | 浙江大华技术股份有限公司 | 视频流处理方法、系统、电子装置和存储介质 |
CN113225623A (zh) * | 2021-04-30 | 2021-08-06 | 四川云从天府人工智能科技有限公司 | 自适应视频文件加速解析方法、计算机设备以及存储介质 |
CN113572997A (zh) * | 2021-07-22 | 2021-10-29 | 中科曙光国际信息产业有限公司 | 视频流数据分析方法、装置、设备及存储介质 |
CN115641497A (zh) * | 2022-12-23 | 2023-01-24 | 中电信数字城市科技有限公司 | 多路视频处理系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109769115B (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109769115A (zh) | 一种优化智能视频分析性能的方法、装置和设备 | |
CN109711323A (zh) | 一种实时视频流分析加速方法、装置和设备 | |
CN102200906B (zh) | 大规模并发数据流处理系统及其处理方法 | |
Wang et al. | Geryon: Accelerating distributed CNN training by network-level flow scheduling | |
CN113012023B (zh) | 基于众核处理器的视频分析加速方法及系统 | |
CN106358003A (zh) | 一种基于线程级流水线的视频分析加速方法 | |
US9219769B2 (en) | Efficient multiple filter packet statistics generation | |
CN106339484B (zh) | 一种视频智能检索处理的系统及方法 | |
CN101282300B (zh) | 一种基于非阻塞机制的http报文处理方法 | |
CN106951322A (zh) | 一种cpu/gpu异构环境的图像协同处理程序获取方法及系统 | |
CN108681569A (zh) | 一种数据自动分析系统及其方法 | |
CN104601562B (zh) | 游戏服务器与数据库的交互方法和系统 | |
CN111614769A (zh) | 一种深度学习技术的行为智能分析引擎系统及控制方法 | |
CN109062697A (zh) | 一种提供空间分析服务的方法和装置 | |
CN105955807A (zh) | 一种任务处理系统及方法 | |
CN114756629A (zh) | 基于sql的多源异构数据交互分析引擎及方法 | |
CN109840597A (zh) | 一种模型预测方法、装置、电子设备及存储介质 | |
CN114692079A (zh) | 一种gpu批量矩阵乘法加速器及其处理方法 | |
CN110489242A (zh) | 分布式数据计算方法、装置、终端设备及存储介质 | |
CN117193992B (zh) | 模型训练方法、任务调度方法、装置以及计算机存储介质 | |
CN109814989B (zh) | 一种分级优先的统一染色图形处理器warp调度装置 | |
CN111428973A (zh) | 一种能有效提高资源利用率的虚拟资源分配方法 | |
CN114896295B (zh) | 大数据场景下的数据脱敏方法、脱敏装置及脱敏系统 | |
CN112241289A (zh) | 一种文本数据的处理方法和电子设备 | |
CN112783650B (zh) | 一种基于ai芯片的多模型并行推理方法 |
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 |