Hierarchical Resource Partitioning on Modern GPUs: A Reinforcement Learning Approach
作者: Urvij Saroliya, Eishi Arima, Dai Liu, Martin Schulz
分类: cs.DC, cs.AR, cs.LG
发布日期: 2024-05-14
备注: Published in: 2023 IEEE International Conference on Cluster Computing (CLUSTER)
DOI: 10.1109/CLUSTER52292.2023.00023
💡 一句话要点
提出基于强化学习的GPU分层资源划分方法,提升多程序并发执行吞吐量。
🎯 匹配领域: 支柱二:RL算法与架构 (RL & Architecture)
关键词: GPU资源划分 强化学习 多进程服务 多实例GPU 资源调度 高性能计算
📋 核心要点
- 现有GPU资源利用率低,单个程序难以充分利用日益增长的GPU资源,需要有效的资源划分和调度策略。
- 提出基于强化学习的方法,协同优化GPU分层划分设置和并发调度组选择,最大化资源利用率。
- 实验结果表明,该方法能够有效提升GPU吞吐量,与分时调度相比,最大吞吐量提升了1.87倍。
📝 摘要(中文)
基于GPU的异构架构已广泛应用于HPC集群。GPU在数据级并行方面具有架构优势,与同代CPU相比,可提供更高的计算吞吐量和内存带宽。然而,随着GPU可用资源的指数级增长,单个程序难以充分利用这些资源。因此,业界开始支持多种资源划分特性,以提高在同一GPU芯片上并发调度多个程序的资源利用率。本文关注现代GPU上的分层资源划分,以NVIDIA GPU上的MPS(多进程服务,一种细粒度的逻辑划分)和MIG(多实例GPU,一种粗粒度的物理划分)的组合为例。我们提出了一种基于强化学习的方法,根据作业的profile全面地协同优化分层划分的设置以及并发调度组的选择。实验结果表明,该方法能够成功地设置作业并发、划分和并发调度组选择,与分时调度相比,最大吞吐量提高了1.87倍。
🔬 方法详解
问题定义:论文旨在解决现代GPU上多个程序并发执行时,如何高效地进行资源划分和调度,以最大化GPU的整体吞吐量。现有方法通常采用静态的资源划分策略或简单的分时调度,无法根据不同程序的资源需求动态调整,导致资源利用率低下。
核心思路:论文的核心思路是利用强化学习来学习最优的资源划分和调度策略。通过将GPU资源划分和调度问题建模为一个马尔可夫决策过程(MDP),利用强化学习算法训练一个智能体,使其能够根据当前GPU的状态和作业的profile,动态地调整资源划分和选择合适的并发调度组。
技术框架:整体框架包含以下几个主要模块:1) 环境建模:将GPU的资源状态、作业的profile等信息作为环境状态;2) 动作空间设计:定义智能体可以执行的动作,包括MIG实例的配置、MPS的设置以及并发调度组的选择;3) 奖励函数设计:定义智能体的奖励函数,鼓励其选择能够最大化GPU吞吐量的动作;4) 强化学习算法:使用强化学习算法(如Q-learning、DQN等)训练智能体,使其学习最优策略。
关键创新:论文的关键创新在于将强化学习应用于GPU资源划分和调度问题,实现了动态的资源管理。与传统的静态划分或分时调度相比,该方法能够根据不同作业的资源需求进行自适应调整,从而提高资源利用率和整体吞吐量。此外,论文还考虑了GPU分层资源划分的特性,协同优化MIG和MPS的配置,进一步提升了性能。
关键设计:论文中,状态空间包括GPU的资源利用率、作业的profile(如计算强度、内存访问模式等);动作空间包括MIG实例的类型(如1/7、1/4等)、MPS的并发数量以及并发调度组的选择;奖励函数可以设置为GPU的吞吐量或利用率的提升。具体的强化学习算法可以选择DQN或PPO等,并根据实际情况调整网络结构和超参数。
🖼️ 关键图片
📊 实验亮点
实验结果表明,该方法能够有效地提升GPU的吞吐量。与传统的分时调度相比,该方法在多个基准测试中实现了显著的性能提升,最大吞吐量提升了1.87倍。这表明基于强化学习的GPU资源划分和调度方法具有很高的实用价值。
🎯 应用场景
该研究成果可应用于高性能计算、云计算、深度学习等领域,提升GPU集群的资源利用率和作业吞吐量。通过动态调整GPU资源划分和调度策略,可以更好地满足不同应用的需求,降低计算成本,提高计算效率。未来,该方法可以进一步扩展到更复杂的GPU架构和异构计算环境。
📄 摘要(原文)
GPU-based heterogeneous architectures are now commonly used in HPC clusters. Due to their architectural simplicity specialized for data-level parallelism, GPUs can offer much higher computational throughput and memory bandwidth than CPUs in the same generation do. However, as the available resources in GPUs have increased exponentially over the past decades, it has become increasingly difficult for a single program to fully utilize them. As a consequence, the industry has started supporting several resource partitioning features in order to improve the resource utilization by co-scheduling multiple programs on the same GPU die at the same time. Driven by the technological trend, this paper focuses on hierarchical resource partitioning on modern GPUs, and as an example, we utilize a combination of two different features available on recent NVIDIA GPUs in a hierarchical manner: MPS (Multi-Process Service), a finer-grained logical partitioning; and MIG (Multi-Instance GPU), a coarse-grained physical partitioning. We propose a method for comprehensively co-optimizing the setup of hierarchical partitioning and the selection of co-scheduling groups from a given set of jobs, based on reinforcement learning using their profiles. Our thorough experimental results demonstrate that our approach can successfully set up job concurrency, partitioning, and co-scheduling group selections simultaneously. This results in a maximum throughput improvement by a factor of 1.87 compared to the time-sharing scheduling.