一种在GPU中并行处理视频压缩的动态任务迁移调度方法技术

技术编号:29400050 阅读:17 留言:0更新日期:2021-07-23 22:37
本发明专利技术涉及一种并行处理视频压缩的动态任务迁移调度方法,该方法为:将需压缩的视频分配到各个GPU设备中开始工作;每隔一段时间T,服务器的host端记录下各个GPU设备的实时工作状态,负载信息以及耗能开销等统计信息;通过分析,系统决定是否需要对某些GPU设备中的任务进行动态迁移,若需要发生动态迁移,以视频中的每一帧为处理单元,识别、提取出GPU设备中的每一个工作项的底层硬件的计算状态,将其拷贝回服务器的host端,服务器端程序根据每个GPU的工作信息分析选择需要调度到的新GPU,该方法实时监控并且不断调整所有GPU设备的负载以及开销,能够实时提出一个有效可行的任务调度方案,提高系统的资源利用率以及系统中数据的吞吐率。

【技术实现步骤摘要】
一种在GPU中并行处理视频压缩的动态任务迁移调度方法
本专利技术涉及并行计算和凸优化领域,尤其是涉及一种在GPU中并行处理视频压缩的动态任务迁移调度方法。
技术介绍
随着视频压缩发展越来越迅速,基于压缩算法所特有的计算复杂度高、处理任务时间长等缺点在实际应用场景中越来越突出,尤其是在一定规模数据的应用场景中更为突出,如大规模城市监控视频处理、交互式视频平台存储服务等。图形处理器(GPU)最早被提出用于图像中各个像素点的处理,由于它的并行性高,在图像处理中有着巨大的优势。但随着并行技术的持续发展和计算市场的逐步完善,目前GPU已被广泛应用于各种视频压缩算法,比如ffmpeg算法,可支持在NVIDIA设备上处理。但是,由于GPU内部计算状态的复杂性和硬件资源的独占性,使得算法开发者经常会遇到如下问题:第一,负载容易导致分配不平衡。例如有多块GPU设备,其运算能力差距很大,但是由于静态很难预测程序的开销,大部分程序都是需要动态分配内存,因此为了保证使用的稳定性,只能倾向于资源分配到性能强的GPU中,从而造成资源的浪费;第二,资源无法简单共享。多设备间或者多个节点间的设备无法做到共享;第三,不具备合适的容错机制。由于所有的设备中运行的程序都无法进行即时的中断,无法即时保存状态,对于超大型的长时间计算,光依赖硬件的容错能力是远远不够的。而由于当前视频清晰度运来越高、帧率也不断提高,处理视频压缩的时长也越来越大。据统计,一个五个小时的4K视频压缩任务开销在二十分钟左右,如若仅仅依靠硬件的重启,整个运算将会重新被开始,开销花费巨大。
技术实现思路
本专利技术所要解决的技术问题是提供一种在GPU中并行处理视频压缩的动态任务迁移调度方法,该方法能够在并行处理视频压缩任务时,使GPU的负载分配达到平衡,GPU之间的资源能够共享,且视频压缩过程中具备容错机制,从而提高系统的资源利用率以及系统中数据的吞吐率。本专利技术所采用的技术方案是,一种在GPU中并行处理视频压缩的动态任务迁移调度方法,该方法包括下列步骤:(1)、根据大规模数据并行计算的预估模型,按照预估模型的分配方式将需压缩的视频任务分配到系统中的各个GPU设备中,并开始工作;(2)、每隔一段时间T,服务器的host端记录下各个GPU设备当前的统计信息,服务器的host端根据当前的统计信息来计算出当前系统中每个GPU设备数据处理容量的最优解,并根据最优解来判断是否需要对其中的某些GPU设备中的任务进行动态迁移调度;(3)、如果需要对GPU设备中的视频任务进行动态迁移调度,那么就以GPU设备中视频的每一帧为处理单元,识别并提取出GPU设备中的每一个work-item的底层硬件的计算状态信息,并将该计算状态信息拷贝回服务器的host端;(4)、服务器的host端根据每个GPU设备的工作信息进行分析,然后选择出需要调度到的新GPU设备,并将步骤(3)中拷贝的计算状态信息移植到新GPU设备上,进而恢复当前计算任务。作为优先,步骤(2)中,统计信息的数据结构为{indexi,datai},表示GPU设备索引为indexi的统计信息数据。作为优先,步骤(2)中,服务器的host端记录下的统计信息具体包括:各个GPU设备的计算单元的利用率C、各个GPU设备的内存使用率M、各个GPU设备的功耗P以及各个GPU设备任务调度时间开销O,所述利用率C,通过固定时间间隔执行shell脚本来获取,所述内存使用率M,可以通过固定时间间隔执行shell脚本来获取,所述功耗P通过固定时间间隔执行shell脚本来获取,所述开销O通过长期测量得出。作为优先,步骤(2)中,根据最优问题来计算每个GPU设备数据处理容量的最优解,最优问题表示为:subjecttof1(c)≤b1,b1∈Rn,f2(m)≤b2,b2∈Rn,1Tp≤d,d∈R;该公式包含了四部分:GPU利用率C、内存使用率M、设备的功耗P以及任务调度时间开销O,系统中所有GPU设备的GPU利用率、内存使用率、功耗、开销均为向量,即c,m,p,o∈Rn,其中n为系统GPU设备个数,权重为向量Wc,Wm,Wp,Wo,即Wc,Wm,Wp,Wo∈Rn,f1(x)和f2(x)分别是计算GPU利用率和内存使用率的设备下确界权重函数,其中x∈Rn,b1和b2为设备下确界资源向量。作为优先,步骤(2)中,根据最优解来判断是否需要对其中的某些GPU设备中的任务进行动态迁移调度的具体判断方法为:将计算得到的每个GPU设备数据处理容量的最优解与当前状态下GPU设备的实际工作状态进行比较,如果GPU设备实际的工作状态与其计算得到的最优解一致,就不需要对该GPU设备中的任务进行迁移,如果GPU设备实际的工作状态与其计算得到的最优解不一致,就对该GPU设备种的任务进行迁移。作为优先,步骤(3)中,每一个work-item的底层硬件的计算状态信息具体包括:全局内存、工作项的栈、指针以及程序计数器。作为优先,步骤(3)中,全局内存的具体提取方法为:当GPU设备收到服务器host端计算状态提取的指令时,通过查询链表中所有的全局内存块的信息,并且找到host端对应的传输目的地址,把每一段内存块拷贝到host端的相应的位置。本专利技术的有益效果是:上述一种在GPU中并行处理视频压缩的动态任务迁移调度方法,该方法中实时监控并且不断调整所有GPU设备的负载以及开销,能够实时提出一个有效可行的任务调度方案,能够在并行处理视频压缩任务时,使GPU的负载分配达到平衡,GPU之间的资源能够共享,且视频压缩过程中具备容错机制,从而提高系统的资源利用率以及系统中数据的吞吐率。附图说明图1为本专利技术一种在GPU中并行处理视频压缩的动态任务迁移调度方法的时序图;图2为本专利技术中栈空间数据迁移图。具体实施方式以下参照附图并结合具体实施方式来进一步描述专利技术,以令本领域技术人员参照说明书文字能够据以实施,本专利技术保护范围并不受限于该具体实施方式。本领域技术人员应理解的是,在本专利技术的公开中,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系是基于附图所示的方位或位置关系,其仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此上述术语不能理解为对本专利技术的限制。本专利技术涉及一种在GPU中并行处理视频压缩的动态任务迁移调度方法,该方法包括下列步骤:(1)、根据大规模数据并行计算的预估模型,在服务器上部署并行任务实时监控与分析业务逻辑程序,该程序按照模型的分配方式将需压缩的视频分配到各个GPU设备中开始工作,如图1所示,模型的预估分配都在pre-compiler完成;(2)、每隔一段时间T,服务器的host端记录下各个GPU设备当前的统计信息,服务器的host端根据本文档来自技高网
...

【技术保护点】
1.一种在GPU中并行处理视频压缩的动态任务迁移调度方法,其特征在于:该方法包括下列步骤:/n(1)、根据大规模数据并行计算得到的预估模型,按照预估模型的分配方式将需压缩的视频任务分配到系统中的各个GPU设备中,并开始工作;/n(2)、每隔一段时间T,服务器的host端记录下各个GPU设备当前的统计信息,服务器的host端根据统计信息来计算出当前系统中每个GPU设备数据处理容量的最优解,并根据最优解来判断是否需要对其中的某些GPU设备中的任务进行动态迁移调度;/n(3)、如果需要对GPU设备中的视频任务进行动态迁移调度,那么就以GPU设备中视频的每一帧为处理单元,识别并提取出GPU设备中的每一个work-item的底层硬件的计算状态信息,并将该计算状态信息拷贝回服务器的host端;/n(4)、服务器的host端根据每个GPU设备的工作信息进行分析,然后选择出需要调度到的新GPU设备,并将步骤(3)中拷贝的计算状态信息移植到新GPU设备上,进而恢复当前计算任务。/n

【技术特征摘要】
1.一种在GPU中并行处理视频压缩的动态任务迁移调度方法,其特征在于:该方法包括下列步骤:
(1)、根据大规模数据并行计算得到的预估模型,按照预估模型的分配方式将需压缩的视频任务分配到系统中的各个GPU设备中,并开始工作;
(2)、每隔一段时间T,服务器的host端记录下各个GPU设备当前的统计信息,服务器的host端根据统计信息来计算出当前系统中每个GPU设备数据处理容量的最优解,并根据最优解来判断是否需要对其中的某些GPU设备中的任务进行动态迁移调度;
(3)、如果需要对GPU设备中的视频任务进行动态迁移调度,那么就以GPU设备中视频的每一帧为处理单元,识别并提取出GPU设备中的每一个work-item的底层硬件的计算状态信息,并将该计算状态信息拷贝回服务器的host端;
(4)、服务器的host端根据每个GPU设备的工作信息进行分析,然后选择出需要调度到的新GPU设备,并将步骤(3)中拷贝的计算状态信息移植到新GPU设备上,进而恢复当前计算任务。


2.根据权利要求1所述的一种在GPU中并行处理视频压缩的动态任务迁移调度方法,其特征在于:步骤(2)中,统计信息的数据结构为{indexi,datai},表示GPU设备索引为indexi的统计信息数据。


3.根据权利要求1或2所述的一种在GPU中并行处理视频压缩的动态任务迁移调度方法,其特征在于:步骤(2)中,服务器的host端记录下的统计信息具体包括:各个GPU设备的计算单元的利用率C、各个GPU设备的内存使用率M、各个GPU设备的功耗P以及各个GPU设备任务调度时间开销O,所述利用率C,通过固定时间间隔执行shell脚本来获取,所述内存使用率M,可以通过固定时间间隔执行shell脚本来获取,所述功耗P通过固定时间间隔执行shell脚本来获取,所述开销O通过长期测量得出。


4.根据权利要求3所述的一种在GPU中并行处理视频压缩的动态任务迁移...

【专利技术属性】
技术研发人员:陈根浪卢涛张佳健
申请(专利权)人:浙大宁波理工学院宁波江东保安服务有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1