GPU-to-CPU callbacks

  • Authors:
  • Jeff A. Stuart;Michael Cox;John D. Owens

  • Affiliations:
  • University of California, Davis;NVIDIA Corporation;University of California, Davis

  • Venue:
  • Euro-Par 2010 Proceedings of the 2010 conference on Parallel processing
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

We present GPU-to-CPU callbacks, a new mechanism and abstraction for GPUs that offers them more independence in a heterogeneous computing environment. Specifically, we provide a method for GPUs to issue callback requests to the CPU. These requests serve as a tool for ease-of-use, future proofing of code, and new functionality. We classify the types of these requests into three categories: System calls (e.g. network and file I/O), device/host memory transfers, and CPU compute, and provide motivation as to why all are important. We show how to implement such a mechanism in CUDA using pinned system memory and discuss possible GPU-driver features to alleviate the need for polling, thus making callbacks more efficient with CPU usage and power consumption. We implement several examples demonstrating the use of callbacks for file I/O, network I/O, memory allocation, and debugging.