-
题名基于线程池的GPU任务并行计算模式研究
被引量:21
- 1
-
-
作者
李涛
董前琨
张帅
孔令晏
康宏
杨愚鲁
-
机构
南开大学计算机与控制工程学院
中国科学院计算技术研究所计算机体系结构国家重点实验室
-
出处
《计算机学报》
EI
CSCD
北大核心
2018年第10期2175-2192,共18页
-
基金
国家自然科学基金(61872200)
天津市自然科学基金(16JCYBJC15200
+3 种基金
17JCQNJC00300)
计算机体系结构国家重点实验室开放课题(CARCH201504)
天津市大数据与云计算科技重大专项(15ZXDSGX00020)
高等学校博士学科点专项科研基金(20130031120029)资助
-
文摘
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之间达到负载均衡,能够高效求解混合任务和具有不规则并行性的应用问题.
-
关键词
异构计算系统
统一计算设备架构
线程池
任务并行
任务复用函数
-
Keywords
heterogeneous computing system
CUDA
thread pool
task parallelism
task-multiplexed kernel
-
分类号
TP393
[自动化与计算机技术—计算机应用技术]
-