[发明专利]一种CPU+GPU协同计算并行框架在审
申请号: | 201310579257.2 | 申请日: | 2013-11-19 |
公开(公告)号: | CN103617085A | 公开(公告)日: | 2014-03-05 |
发明(设计)人: | 吴庆;张广勇;吴韶华;王娅娟 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 cpu gpu 协同 计算 并行 框架 | ||
1.一种CPU+GPU协同计算并行框架,其特征在于,包括:
主线程处理输入参数并完成相应初始化操作;
主线程创建1+N个并行的控制线程,分别控制节点内CPU设备和N个GPU设备;
主线程根据总体计算进度计数变量更新进度条;
各控制线程完成各自计算任务后自行退出;
主线程等待所有控制线程退出后,完成后续操作,如对多个输出的数据体进行拼接等;
主线程退出。
2.根据权利要求1所述的并行框架,其特征在于,主线程初始化操作包括:扫描节点内GPU计算设备数和型号、节点内CPU计算核数,并为每个GPU设备创建一个GPU属性数据结构对象。
3.根据权利要求1所述的并行框架,其特征在于,主线程为各控制线程分别创建一个输出数据体控制句柄。
4.根据权利要求3所述的并行框架,其特征在于,CPU控制线程再创建M=SYSCORE_NUM-N个细粒度并行计算线程,SYSCORE_NUM为启用的系统核数,默认为自动检测的系统核数,N为启动的GPU设备数。
5. 根据权利要求1所述的并行框架,其特征在于,各控制线程分别控制对应的设备进行计算,各控制线程完成一个单位的计算任务就更新一次总体计算进度计数变量的值;
a)CPU控制线程根据启用的节点内计算核数创建若干更细粒度的并行计算线程;CPU端各细粒度并行计算线程采用互斥锁的方式通信,并依此竟争计算任务,实现动态负载均衡;
b)GPU控制线程控制一个GPU计算设备,负责读数据、管理该GPU计算、输出结果数据;
c)各控制线程采用动态负载均衡方式,即CPU控制线程和N个GPU控制线程根据计算能力强弱,通过互斥锁竟争计算任务;
d)各控制线程使用线程化读、写接口,分别输出至一个独立的数据体,每个数据体都对应一个独立的头文件,头文件描述了数据体的基本属性;
e)各控制线程完成各自的计算任务后自行退出。
6.根据权利要求1所述的并行框架,其特征在于,总体计算进度计数变量为各控制线程共享的变量,且通过互斥锁加以保护。
7.根据权利要求1所述的并行框架,其特征在于,主线程等待所有控制线程退出后,完成的后续操作包括:对多个输出的数据体进行拼接、销毁控制线程、销毁进度条、关闭数据体控制句柄、输出作业日志等。
8. 根据权利要求7所述的并行框架,其特征在于,对多个输出数据体进行拼接,并没有生成真正的数据体,而只是创建了一个最终输出数据体的头文件,该头文件描述了数据体的名字及基本属性,并指向其包含的多个数据体的头文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310579257.2/1.html,转载请声明来源钻瓜专利网。