Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


数学:并行计算:a_method_for_estimating_task_granularity_for_automating_gpu_cycle_sharing

A Method for Estimating Task Granularity for Automating GPU Cycle Sharing

GPUサイクル共有を自動化するためのタスク粒度推定手法


AI总结

目的

本论文旨在自动估算和调整科学计算任务(guest tasks)在GPU周期共享系统中的最佳粒度,以兼顾资源提供者(host)的主任务(如图形渲染)帧率和科学计算任务的加速效果。目标是通过自动化方式,减轻任务粒度手工调整带来的开发者负担,同时确保主任务体验(如显示60fps画面)不被影响,最大化guest任务的并行加速。

手法

  1. 空カーネル(空kernel)间接推定法 论文提出用“空kernel”反复执行,间接测量host任务的执行时间,从而推算出guest任务能安全利用的GPU“空闲时间”长度。这种方法无需更改host程序,即便在host程序代码不可获取的环境下也可适用。

  2. 自动任务分割与粒度调整

    • 将大型guest任务(如矩阵乘法)自动划分为多个subtask(子任务),每个subtask的执行时间不超过host的空闲时间。
    • 通过动态算法,逐步试探并调整subtask的粒度(线程块数),在不影响host帧率的情况下使guest计算效率最大化。
    • 算法流程包括:推定空闲时间→逐步调整线程块数→评估能否在空闲期内完成→自动输出最优线程块数。
  3. 多种架构与任务兼容性

    • 适用于传统GPU和支持preemption(如Pascal架构)的新一代GPU。
    • host和guest任务均为CUDA/OpenGL等主流框架编写,易于在现有科学计算与图形环境下集成。

结果

  1. 推定精度与性能

    • 自动推定的subtask粒度与全遍历(exhaustive search)手动调优结果非常接近(一般误差在1以内)。
    • 采用该方法后,即使在guest任务并发执行的情况下,host帧率始终可被维持在目标值(如60fps)。
    • guest任务的性能损失被控制在最大5%以内,说明自动化调优效果接近手工极限。
  2. 系统鲁棒性与普适性

    • 在不同任务类型(如矩阵乘法、雅可比法)、不同host负载(图像滤波、三维渲染)以及不同GPU架构下,方法均表现良好。
    • 在Pascal GPU下,即使有preemption功能,guest与host任务“直接”并行仍导致帧率大幅下降(如降至2fps),只有采用本协作与自动调优方法才能保证高帧率和高吞吐。
  3. 推定过程与开销

    • 初始推定阶段会有较高的性能开销(约降至平时的50%),但随着粒度逐步收敛至最优值,最终实际影响极小。
    • 对于host任务执行时间较短(1秒以内)的情景,空kernel推定的误差不超过1%。

其他内容与亮点

  • 方法的无侵入性:无需获取或改写host程序,易于部署在实际资源共享与志愿计算环境。
  • 和相关工作的关系:相比依赖输入设备监测、操作系统/驱动级检测的既有方案,本文方法可细粒度利用毫秒级GPU空闲时间,有效提升科学计算吞吐量。
  • 与GPU preemption机制对比:硬件preemption虽可抑制帧率极端下降,但不能保证高帧率或最大化科学计算效率,必须结合协作分割与自动调优。

未来工作

  • 消除host任务帧率固定假设 当前方法假定host帧率(如60fps)为固定值,未来将拓展支持动态变化帧率的主任务,使系统可适应更多样化的主流host负载和现实环境。

  • 更广泛的host类型适配 未来可扩展到处理不只图形渲染、包括更复杂、多样化的host任务,以及进一步减少推定与调整的运行时开销。

/var/www/DokuWikiStick/dokuwiki/data/pages/数学/并行计算/a_method_for_estimating_task_granularity_for_automating_gpu_cycle_sharing.txt · Last modified: 2025/07/20 08:14 by zhonghui