Login


TitleGPU-to-CPU Callbacks (In Proceedings)
inUCHPC 2010: Proceedings of the Third Workshop on UnConventional High Performance Computing (Euro-Par 2010 Workshops)
Author(s) Jeff A. Stuart, Michael Cox, John D. Owens
Year August 2010
LocationIschia, Napoli, Italy
DateAugust 30 - September 3, 2010
SeriesUCHPC 2010: Proceedings of the Third Workshop on UnConventional High Performance Computing (Euro-Par 2010 Workshops)
PublisherSpringer
Download
BibTeX
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. We analyze the latency involved for each implementation on both discrete and integrated GPUs, as well as discuss possible features for the GPU driver 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.