Table of Contents

DCUDA: Dynamic GPU Scheduling with Live Migration Support


总结

  1. 场景是多个用户的程序共享一个GPU(常见于云服务器)
  2. 动态迁移的单位是整个程序不是kernel,正在执行的kernel是不能被打断的
  3. 在某个CUDA API或kernel执行结束后,下一个执行之前的间隔,可以迁移整个程序到其他GPU
  4. User Code → DCUDA(分析kernel call的参数) → CUDA/GPU,DCUDA通过在中间层分析函数估算程序资源需求,以此为依据决定迁移策略
  5. 数据统一使用CUDA Unified Memory分配,数据迁移后,程序内使用的虚拟地址可以不变

AI总结

核心内容简介

DCUDA 是一个面向数据中心和云计算环境的 GPU 动态调度系统,支持运行中的 CUDA 应用在多 GPU 之间的“实时迁移”(live migration),旨在解决当前主流 GPU 调度方法的“静态性”和由此带来的 GPU 资源负载不均衡问题。

背景与动机

DCUDA 的贡献

  1. 轻量级实时监控:通过拦截 CUDA API 并分析参数,实时准确监控 GPU 利用率与应用资源需求,开销极小。
  2. 通用运行时迁移机制:无需修改应用源码,兼容所有 CUDA 应用,利用统一内存(Unified Memory)实现数据按需迁移,迁移开销低于 0.3%。
  3. 动态调度框架

    • 通过实时迁移实现多 GPU 负载平衡。
    • 进一步通过轻量任务压缩提升 GPU 能效。
    • 采用优先级切片机制保障不同应用的公平性与 QoS。
  4. 原型与实验

    • 实验表明,DCUDA 能平均减少 78.3% GPU 过载时间,应用平均执行时间缩短 42.1%,在轻负载场景节能可达 13.3%。

技术架构

DCUDA 基于前后端架构:

核心技术难点与优化

评价实验

总结

DCUDA 是业内首个支持所有 CUDA 应用实时迁移的系统,突破了现有静态调度方案的局限,为提升数据中心 GPU 资源利用率、降低能耗、提升性能与公平性提供了有效方案。