买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:南京工业大学
摘要:一种面向CPU‑GPU异构系统的SpMV任务划分与调度策略,步骤包括:1将大规模稀疏矩阵分割为若干计算任务量相同的子任务,再存入任务池中;2依据各处理器的峰值浮点运算性能确定子任务的初始划分比例RCPU和RGPU,并将第一个子任务按该比例划分为CPU端计算任务和GPU端计算任务;3分别启动CPU端和GPU端的并行计算程序;在CPU和GPU并行计算内核执行计算任务的同时,启动对下一个子任务的数据传输;4获取CPU端和GPU端的计算时间,并将二者的计算时间差作为控制偏差输入给PID控制器;PID控制器根据控制偏差和时间阈值,输出更新后的CPU和GPU端任务划分比例;5根据步骤4更新后的划分比例对下一个子任务进行分割,重复步骤2~步骤4。
主权项:1.一种面向CPU-GPU异构系统的SpMV任务划分与调度策略,其特征是先把SpMV任务划分成子任务,再进行子任务的调度,具体包括:1在数据流分解阶段:将大规模稀疏矩阵分割为若干计算任务量相同的子任务,再存入任务池中;2在任务划分阶段:依据各处理器的峰值浮点运算性能确定子任务的初始划分比例RCPU和RGPU,并将第一个子任务按该比例划分为CPU端计算任务和GPU端计算任务;RCP和RGPU分别表示划分给CPU端计算任务的比例和划分给GPU端计算任务的比例;3在重叠计算阶段:分别启动CPU端和GPU端的并行计算程序,开始执行计算任务;根据重叠计算机制,在CPU和GPU并行计算内核执行计算任务的同时,启动对下一个子任务的数据传输,以实现重叠计算;4在比例更新阶段:获取CPU端和GPU端的计算时间,并将二者的计算时间差作为控制偏差输入给PID控制器;PID控制器根据控制偏差和时间阈值,输出更新后的CPU和GPU端任务划分比例;5根据步骤4更新后的划分比例对下一个子任务进行分割,重复步骤2~步骤4过程直至所有子任务均计算完毕;所述步骤1~步骤3是任务划分过程,步骤4是子任务调度过程;在步骤4中,采用基于PID控制器的子任务调度算法,由PID控制器根据控制偏差和时间阈值,输出更新后的CPU和GPU端任务划分比例;子任务调度流程如下:在步骤1~3中,首先,将整个大规模SpMV计算任务按非零元素划分为若干个规模大致相同的子任务;然后,计算CPU和GPU的峰值浮点运算能力PeakPCPU和PeakPGPU,得出CPU和GPU端的初始任务划分比例RCPU和RGPU;根据经验值和现实需求设置达到负载均衡的时间阈值Threshold;在步骤4中,根据RCPU和RGPU将第一个子任务划分为CPU端和GPU端任务,并在执行完毕之后分别获取CPU上运行的时间T′CPU与GPU上的运行时间T′GPU;然后,计算T′CPU与T′GPU的差值timeDiff,并将timeDiff与Threshold进行比较;如果|timeDiff|Threshold,则说明按当前的划分比例和设备的状态而言,异构系统处于负载不均衡状态,此时将timeDiff作为控制偏差输入PID控制器,根据PID控制器的输出调整任务划分比例:当timeDiffThreshold时,则减少RCPU并同步增大RGPU;当timeDiff-Threshold时,则增大RCPU并同步减少RGPU;如果|timeDiff|≤Threshold,则说明在该时间阈值允许的误差范围内已达到CPU端和GPU端的任务负载均衡;此时近似认为在当前状态下,下一个子任务保持该划分比例仍然保持负载均衡,因而保持当前任务划分比例不变;最后,在CPU-GPU异构系统中根据更新调整后的RCPU与RGPU来将下一个子任务划分CPU和GPU端两部分,并执行各自计算任务;重复以上过程,直至所有子任务全部执行完毕。
全文数据:
权利要求:
百度查询: 南京工业大学 面向CPU-GPU异构平台的SpMV任务划分与调度策略
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。