合作内核:面向阻塞算法的GPU并行编程新策略(FSE 2017)

0 下载量 31 浏览量 更新于2024-08-25 收藏 749KB PDF 举报
Cooperative Kernels: GPU Multitasking for Blocking Algorithms是一篇发表于2017年FSE(International Conference on Formal Methods in Computer-Aided Design)的研究论文,由来自Imperial College London的Tyler Sorensen、Hugues Evrard和Alastair F. Donaldson共同撰写。随着对GPU性能提升的需求增加,研究人员注意到如何优化非规则数据并行算法在GPU上的执行成为了一个重要课题。这些算法通常采用阻塞(Blocking)策略,这意味着它们需要一个公平的调度机制。 传统的GPU编程模型,如OpenCL,虽然支持大规模并行计算,但并没有强制实施公平调度。实际上,当前的GPU调度器在实践中往往不够公平,这可能会限制算法的效率,特别是当与图形渲染等其他任务共享资源时。为了克服这个问题,作者提出了“合作内核”(Cooperative Kernels)的概念。 合作内核是对传统GPU编程模型的一种扩展,特别设计用于编写阻塞算法。其核心思想是将工作群组进行公平调度,确保每个任务都能获得适当的时间片。通过引入一组语言扩展,工作群组和调度器能够协同工作,实现真正的多任务处理。这样,即使在同一GPU上运行多个阻塞算法,也能保证性能的平衡,不会因为争夺资源而影响整体效率。 该论文详细描述了合作内核的原型实现,包括如何在现有API中嵌入这些扩展,以及如何调整调度策略以适应阻塞算法的特性。此外,论文还探讨了这种方法在实际应用中的效果,比如在并行矩阵乘法、图遍历等典型计算密集型任务中的性能提升。通过这种方式,研究者旨在推动GPU编程模型的发展,使之更好地支持非规则数据并行算法的执行,提高整体计算性能。