GPUfs: Integrating a File System with GPUs

Mark Silberstein
University of Texas at Austin

Bryan Ford
Yale University

Idit Keidar
Technion – Israel Institute of Technology

Emmett Witchel
University of Texas at Austin

18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2013)
March 16-20, 2013, Houston, TX

Abstract

As GPU hardware becomes increasingly general-purpose, it is quickly outgrowing the traditional, constrained GPU-as-coprocessor programming model. To make GPUs easier to program and improve their integration with operating systems, we propose making the host’s file system directly accessible to GPU code. GPUfs provides a POSIX-like API for GPU programs, exploits GPU parallelism for efficiency, and optimizes GPU file access by extending the host CPU’s buffer cache into GPU memory. Our experiments, based on a set of real benchmarks adapted to use our file system, demonstrate the feasibility and benefits of the GPUfs approach. For example, a self-contained GPU program that searches for a set of strings throughout the Linux kernel source tree runs over seven times faster than on an eight-core CPU.

Full Journal Paper: PDF

Conference Paper: PDF

Talk Slides: OpenOffice PDF

Funding

This research was supported in part by the National Science Foundation under grants CNS-1017785 and CNS-1017206, by the Andrew and Erna Finci Viterbi Fellowship, and by a 2010 NVIDIA research award.