Home | deutsch  | Legals | KIT

GPrioSwap: towards a swapping policy for GPUs

GPrioSwap: towards a swapping policy for GPUs

Jens Kehne, Jonathan Metter, Martin Merkel, Marius Hillenbrand, Mathias Gottschlag, Frank Bellosa


SYSTOR 2017, 10th ACM International Systems & Storage Conference, Haifa, Israel, May 22 - 24, 2017

Date: 23.05.2017


Over the last few years, Graphics Processing Units (GPUs) have become popular in computing, and have found their way into a number of cloud platforms. However, integrating a GPU into a cloud environment requires the cloud provider to efficiently virtualize the GPU. While several research projects have addressed this challenge in the past, few of these projects attempt to properly enable sharing of GPU memory between multiple clients: To date, GPUswap is the only project that enables sharing of GPU memory without inducing unnecessary application overhead, while maintaining both fairness and high utilization of GPU memory. However, GPUswap includes only a rudimentary swapping policy, and therefore induces a rather large application overhead.

In this paper, we work towards a practicable swapping policy for GPUs. To that end, we analyze the behavior of various GPU applications to determine their memory access patterns. Based on our insights about these patterns, we derive a swapping policy that includes a developer-assigned priority for each GPU buffer in its swapping decisions. Experiments with our prototype implementation show that a swapping policy based on buffer priorities can significantly reduce the swapping overhead.

  author = {Kehne, Jens and Hillenbrand, Marius and Metter, Jonathan and Gottschlag, Mathias and Merkel, Martin and Bellosa, Frank},
  title = {GPrioSwap: Towards a Swapping Policy for GPUs},
  booktitle = {Proceedings of the 10th ACM International Systems and Storage Conference (SYSTOR '17)},
  year = {2017},
  location = {Haifa, Israel},
  pages = {10:1--10:10},
  doi = {10.1145/3078468.3078474},
  keywords = {GPU, memory overcommitment, oversubscription, profiling, swapping, virtualization}