System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及gpu技术应用领域,具体涉及一种基于cuda并行环境的gpu程序优化方法。
技术介绍
1、cuda(compute unified device architecture)是由nvidia开发的并行计算架构,旨在通过利用gpu(图形处理器)的强大并行处理能力,加速计算密集型任务的执行,cuda使得开发人员能够使用c、c++、fortran等编程语言,直接在gpu上进行计算,显著提升计算效率,尤其是在大规模数据处理和复杂计算任务中。
2、传统方法通常缺乏优先级队列的分类和智能调度机制,导致任务的调度不够精细,当高优先级任务与低优先级任务同时存在时,可能会因为资源的竞争而导致高优先级任务的延迟,降低系统响应速度;且传统调度方法没有根据任务的计算需求进行有效的区分,通常将所有任务视为同类进行调度,这样可能导致资源分配的不合理,对于cpu和gpu的不同处理能力和特点,没有精准的任务分配,可能导致任务处理的速度变慢或处理不准确;并且传统方法一般采用静态的调度策略,不具备自适应调整的能力,当负载发生变化时,系统往往不能实时根据任务请求调整资源分配,因此可能造成计算节点资源利用不均衡,进而影响整体性能;以及传统方法一般缺少对计算节点负载的动态调整和优化,计算节点的负载往往是静态的,没有灵活的负载平衡机制,可能导致计算资源的浪费或计算瓶颈,影响并行计算的效果。
技术实现思路
1、本专利技术所要解决的技术问题在于克服上述现有技术的缺点,提供一种基于cuda并行环境的gpu程
2、解决上述技术问题所采用的技术方案是:一种基于cuda并行环境的gpu程序优化方法,包括:
3、获取目标gpu程序发出的任务请求,基于所述任务请求的优先级系数对所述任务请求进行优先级队列分类,以将所述任务请求划分至不同的优先级队列中;
4、基于不同的优先级队列的延迟计算各个优先级队列的活力系数,基于各个优先级队列的活力系数通过计算集群中各个计算节点对各个优先级队列进行资源调度,其中,所述计算节点由cpu和gpu构成;
5、基于所述计算节点对所述优先级队列中的任务请求进行处理,以得到所述任务请求所对应的任务,基于所述任务请求获取所述任务中各个子任务所对应的任务类型,其中,所述任务类型包括cpu任务和gpu任务;
6、基于所述任务请求获取所述任务中各个子任务所对应的任务类型构建任务调度优化模型,其中,所述任务调度优化模型包括任务调度目标函数和任务调度约束条件;
7、基于粒子群算法对所述任务调度优化模型进行求解,以得到所述计算节点所对应的任务处理策略。
8、优选的,基于所述任务请求的优先级系数对所述任务请求进行优先级队列分类,以将所述任务请求划分至不同的优先级队列中,包括:
9、计算所有任务请求的优先级系数的密度,将所述密度最大的优先级系数作为初始化聚类中心;
10、将所有任务请求的优先级系数根据优先级系数大小和与初始化聚类中心的相近程度,分配到距离最近的聚类中心所在的类中;
11、重新计算新的聚类中心,并对当前聚类中心与上一轮,聚类中心进行比较,当两次聚类中心相同时,聚类结束,将所有任务请求的聚类分组结果按照降序排列;
12、根据所有任务请求的聚类分类结果,对应不同优先级的队列,将优先级系数高的分组送入到高优先级队列中,将优先系数低的分组送入到低优先级队列中。
13、优选的,所述优先级队列的活力系数的计算公式如下:
14、;
15、其中,表示第个优先级队列的活力系数,表示第个优先级队列的延迟,表示第个优先级队列的预设的延迟阈值,其中,,表示第个优先级队列的队列长度,表示单位时间进入队列请求数,表示单位时间走出队列的任务请求数量。
16、优选的,基于各个优先级队列的活力系数通过计算集群中各个计算节点对各个优先级队列进行资源调度,包括:
17、基于cuda的设备占有率计算工具计算所述计算集群中各个计算节点的空间系数和空间闲置度;
18、基于预设的权重将所述计算集群中各个计算节点的空间系数和设备空间闲置度进行融合,以得到所述计算集群中各个计算节点的综合特征;
19、基于所述计算集群中各个计算节点的综合特征计算所述计算集群中各个计算节点的分配系数,基于所述计算集群中各个计算节点的分配系数获取计算集群中各个计算节点的资源分配量;
20、将各个优先级队列的活力系数进行按照升序排列,以得到活力系数顺序序列,按照所述活力系数顺序序列将低活力系数的所述优先级队列所对应的计算节点向高活力系数的所述优先级队列所对应的计算节点按照资源分配量进行资源分配。
21、优选的,所述空间系数的计算公式如下:
22、;
23、其中,表示计算集群中第个计算节点的空间系数,表示计算集群中第个计算节点的sm数量,表示cuda的设备占有率计算函数,表示计算集群中第个计算节点的线程块大小,表示计算集群中第个计算节点的线程使用的寄存器数量,表示计算集群中第个计算节点的线程块使用的共享内存;
24、所述空间闲置度的计算公式如下:
25、;
26、其中,表示计算集群中第个计算节点的空间闲置度,表示向上取整函数,表示计算集群中第个计算节点的线程网格大小,表示计算集群中第个计算节点的网络带宽。
27、优选的,所述分配系数的计算公式如下:
28、;
29、其中,表示计算集群中第个和第个计算节点之间的分配系数,和表示计算集群中第个和第个计算节点的综合特征;
30、所述资源分配量的计算公式如下:
31、;
32、其中,表示计算集群中第个和第个计算节点之间的资源分配量,表示对数函数,和表示第个和第个优先级队列的队列长度,和表示第个和第个优先级队列的预设的延迟阈值,表示第个优先级队列的延迟。
33、优选的,所述任务调度目标函数的表达式如下:
34、;
35、其中,表示第个计算节点完成的任务运行时能耗之和,表示第个计算节点上已完成任务的数量,表示第个计算节点上完成的第个任务,表示执行任务时的功耗,表示任务开始执行的时间,和表示cpu和gpu无任务运行时功耗,和表示计算节点中第个cpu/gpu对上cpu和gpu的空闲时间,表示计算节点中除处理器以外的部件的功耗,表示计算节点开启状态的时间,表示计算节点开启和关闭的能耗,表示计算节点开启和关闭的次数;
36、所述任务调度约束条件的表达式如下:
37、;
38、其中,表示任务完成的时间,表示任务截止时间。
39、优选的,基于粒子群算法对所述任务调度优化模型进行求解,以得到所述计算节点所对应的任务处理策略,包括:
40、随机生成一组个体,每个个体的位置表示所述目标函数的决策变量的组合;
<本文档来自技高网...【技术保护点】
1.一种基于CUDA并行环境的GPU程序优化方法,其特征在于,包括:
2.根据权利要求1所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,基于所述任务请求的优先级系数对所述任务请求进行优先级队列分类,以将所述任务请求划分至不同的优先级队列中,包括:
3.根据权利要求1所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,基于各个优先级队列的活力系数通过计算集群中各个计算节点对各个优先级队列进行资源调度,包括:
4.根据权利要求3所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,所述空间系数的计算公式如下:
5.根据权利要求4所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,所述分配系数的计算公式如下:
6.根据权利要求1所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,所述任务调度目标函数的表达式如下:
7.根据权利要求6所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,基于粒子群算法对所述任务调度优化模型进行求解,以得到所述计算
8.根据权利要求7所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,个体的光强的更新公式如下:
9.根据权利要求8所述的一种基于CUDA并行环境的GPU程序优化方法,其特征在于,所述个体的吸引度的更新公式如下:
...【技术特征摘要】
1.一种基于cuda并行环境的gpu程序优化方法,其特征在于,包括:
2.根据权利要求1所述的一种基于cuda并行环境的gpu程序优化方法,其特征在于,基于所述任务请求的优先级系数对所述任务请求进行优先级队列分类,以将所述任务请求划分至不同的优先级队列中,包括:
3.根据权利要求1所述的一种基于cuda并行环境的gpu程序优化方法,其特征在于,基于各个优先级队列的活力系数通过计算集群中各个计算节点对各个优先级队列进行资源调度,包括:
4.根据权利要求3所述的一种基于cuda并行环境的gpu程序优化方法,其特征在于,所述空间系数的计算公式如下:
5.根据权利要求4所述的一种基于cuda...
【专利技术属性】
技术研发人员:周峥,王明清,秦莉兰,吴雪,刘凌霄,夏文天,
申请(专利权)人:无锡九方科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。