Authors

Abstract

Heterogeneous systems combine general-purpose CPUs with domain-specific accelerators like GPUs.
Recent heterogeneous system designs have enabled GPUs to request OS services, but the
domain-specific nature of accelerators means that they must rely on the CPUs to handle these requests.

Such system service requests can unintentionally harm the performance of unrelated CPU applications.
Tests on a real heterogeneous processor demonstrate that GPU system service requests can degrade
contemporaneous CPU application performance by up to 44% and can reduce energy efficiency by
limiting CPU sleep time. The reliance on busy CPU cores to perform the system services can also
slow down GPU work by up to 18%. This new form of interference is found only in accelerator-rich
heterogeneous designs and may be exacerbated in future systems with more accelerators.

We explore mitigation strategies from other fields that, in the face of such interference,
can increase CPU and GPU performance by over 20% and 2x, respectively, and CPU sleep time by
4.8x. However, these strategies do not always help and offer no performance guarantees.
We therefore describe a technique to guarantee quality of service to CPU workloads by
dynamically adding backpressure to GPU requests.