面向并发 GPGPU 内核的抢占式线程块调度与在线结构运行时预测
摘要
近期的 NVIDIA 图形处理器 (GPU) 能够并发执行多个内核。在这些 GPU 上,线程块调度器 (TBS) 使用先进先出 (FIFO) 策略来调度其线程块。我们表明,FIFO 将性能交由偶然性决定,导致性能和公平性的显著损失。为了提高性能和公平性,我们提出改用抢占式最短剩余时间优先 (SRTF) 策略。尽管 SRTF 需要对 GPU 内核的运行时进行估计,但我们表明,利用在线性能分析并 exploiting GPU 内核网格结构的简单观察,可以轻易获得此类运行时估计。具体而言,我们提出了一种新颖的结构运行时预测器 (Structural Runtime Predictor)。利用 GPU 内核执行的简单阶梯模型 (Staircase model),我们表明只需对前几个线程块进行性能分析即可预测内核的运行时。我们在 ERCBench 的基准测试上评估了基于该模型的在线预测器,发现仅在执行单个线程块后,它就能相当准确地估计实际运行时。接下来,我们设计了一种既感知并发内核又使用该预测器的线程块调度器。我们实现了 SRTF 策略,并在 ERCBench 的双程序工作负载上对其进行了评估。与 FIFO 相比,SRTF 将系统吞吐量 (STP) 提高了 1.18 倍,将平均归一化周转时间 (ANTT) 提高了 2.25 倍。与 MPMax(一种用于并发内核的最先进资源分配策略)相比,SRTF 将 STP 提高了 1.16 倍,将 ANTT 提高了 1.3 倍。为了提高公平性,我们还提出了 SRTF/Adaptive,该策略通过控制并发执行内核的资源使用来最大化公平性。与 FIFO 相比,SRTF/Adaptive 将 STP 提高了 1.12 倍,将 ANTT 提高了 2.23 倍,将公平性提高了 2.95 倍。总体而言,我们的 SRTF 实现使系统吞吐量达到了最短作业优先 (SJF,一种预言机最优调度策略) 的 12.64% 以内,弥合了 FIFO 与 SJF 之间 49% 的差距。
引用
@article{arxiv.1406.6037,
title = {Preemptive Thread Block Scheduling with Online Structural Runtime Prediction for Concurrent GPGPU Kernels},
author = {Sreepathi Pai and R. Govindarajan and Matthew J. Thazhuthaveetil},
journal= {arXiv preprint arXiv:1406.6037},
year = {2014}
}
备注
14 pages, full pre-review version of PACT 2014 poster