中文

RLWS:一种基于强化学习的GPU Warp调度器

分布式、并行与集群计算 2017-12-13 v1

摘要

图形处理单元(Graphics Processing Unit, GPU)的流式多处理器(Streaming Multiprocessors, SMs)执行一组连续线程(称为 warps)的指令。每个周期,SM 从一组活跃 warps 中调度一个 warp,并可在活跃 warps 间进行上下文切换以隐藏各类停顿。因此 warp 调度器的性能对 GPU 性能至关重要。已有若干启发式 warp 调度算法被提出,但仅在其设计情境下表现良好。GPU 工作负载本质日趋多样,故单一启发式难以普适。为在可能呈现前所未见特征的多样工作负载上均表现良好,warp 调度算法须能在线自适应。我们提出一种基于强化学习(Reinforcement Learning)的 Warp 调度器(RLWS),其依据核心当前状态与调度动作的长期收益来学习调度 warps,不仅适应不同类型工作负载,也适应各工作负载中的不同执行阶段。鉴于 RLWS 所涉状态变量与参数(如学习与探索率、奖励与惩罚值)的设计空间庞大,我们使用遗传算法(Genetic Algorithm)来辨识有用的状态变量子集与参数值。我们使用 GPGPU-SIM 模拟器在来自 Rodinia、Parboil、CUDA-SDK 与 GPGPU-SIM 基准测试套件的大量工作负载上评估所提 RLWS,并与其他最先进 warp 调度方法比较。我们的 RL 实现在 80% 的内核中取得最佳或极接近最佳的性能,相较 Loose Round Robin 策略平均加速 1.06x,相较 Two-Level 策略平均加速 1.07x。

关键词

引用

@article{arxiv.1712.04303,
  title  = {RLWS: A Reinforcement Learning based GPU Warp Scheduler},
  author = {Jayvant Anantpur and Nagendra Gulur Dwarakanath and Shivaram Kalyanakrishnan and Shalabh Bhatnagar and R. Govindarajan},
  journal= {arXiv preprint arXiv:1712.04303},
  year   = {2017}
}