基于线程池的GPU任务并行计算模式研究
GPU已经成为具有高并发高内存带宽的通用协处理器,但是GPU与CPU在体系结构和编程模型上存在很大差异,导致CPU-GPU异构计算系统的编程复杂度提高,即使采用统一计算设备架构(CUDA)提供的kernel并发技术和多流技术也较难充分控制和利用GPU上的计算资源,难以有效地处理不规则的并行应用问题.为从体系结构角度探索GPU硬件支持的页锁定内存和统一虚拟地址空间等特征,该文提出了CPU辅助任务调度管理下的基于线程池技术的GPU任务并行计算模型CAGTP,实现了CPU-GPU异构计算系统上的共享内存式程序设计.提出并设计了CPU端的任务队列、计算线程块级任务调度器、任务槽和GPU端的任务复用kernel函数等机制,实现了CPU与GPU间的高效细粒度任务交互,避免了原生CUDA程序中多次启停kernel函数的开销,有效地支持了GPU上的细粒度不规则并行任务计算,而且利用模型API接口函数能够降低CPU-GPU异构计算系统的编程难度.实验结果表明,CAGTP模型中任务调度的开销是kernel函数调用的5%,有效提升了通用矩阵乘、乔列斯基分解和K均值、T近邻等典型线性代数和机器学习算法的计算性能;CAGTP模型易于扩展使用多块GPU,且在性能差异较大的多个GPU之间达到负载均衡,能够高效求解混合任务和具有不规则并行性的应用问题.
异构计算系统、统一计算设备架构、线程池、任务并行、任务复用函数
41
TP393(计算技术、计算机技术)
国家自然科学基金61872200;天津市自然科学基金16JCYBJC15200,17JCQNJC00300;计算机体系结构国家重点实验室开放课题CARCH201504;天津市大数据与云计算科技重大专项15ZXDSGX00020;高等学校博士学科点专项科研基金20130031120029
2018-12-12(万方平台首次上网日期,不代表论文的发表时间)
共18页
2175-2192