TimeGraph: GPU scheduling for real-time multi-tasking environments
Department of Electrical and Computer Engineering, Carnegie Mellon University and Department of Computer Science, The University of Tokyo
Proceedings of the 2011 USENIX conference on USENIX annual technical conference, USENIXATC’11, 2011
@inproceedings{kato2011timegraph,
title={TimeGraph: GPU scheduling for real-time multi-tasking environments},
author={Kato, S. and Lakshmanan, K. and Rajkumar, R.R. and Ishikawa, Y.},
booktitle={2011 USENIX Annual Technical Conference (USENIX ATC’11)},
pages={17},
year={2011}
}
The Graphics Processing Unit (GPU) is now commonly used for graphics and data-parallel computing. As more and more applications tend to accelerate on the GPU in multi-tasking environments where multiple tasks access the GPU concurrently, operating systems must provide prioritization and isolation capabilities in GPU resource management, particularly in real-time setups. We present TimeGraph, a real-time GPU scheduler at the device-driver level for protecting important GPU workloads from performance interference. TimeGraph adopts a new event-driven model that synchronizes the GPU with the CPU to monitor GPU commands issued from the user space and control GPU resource usage in a responsive manner. TimeGraph supports two priority-based scheduling policies in order to address the tradeoff between response times and throughput introduced by the asynchronous and non-preemptive nature of GPU processing. Resource reservation mechanisms are also employed to account and enforce GPU resource usage, which prevent misbehaving tasks from exhausting GPU resources. Prediction of GPU command execution costs is further provided to enhance isolation. Our experiments using OpenGL graphics benchmarks demonstrate that TimeGraph maintains the frame-rates of primary GPU tasks at the desired level even in the face of extreme GPU workloads, whereas these tasks become nearly unresponsive without TimeGraph support. Our findings also include that the performance overhead imposed on TimeGraph can be limited to 4-10%, and its event-driven scheduler improves throughput by about 30 times over the existing tick-driven scheduler.
September 11, 2011 by hgpu