GPUfs: Integrating a File System with GPUs

Mark Silberstein, Bryan Ford, Idit Keidar, and Emmett Witchel

Proceedings of the ACM Architectural Support for Programming Languages and Operating Systems (ASPLOS) 2013.

View PDF or BibTeX.

Operating Systems

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.