GPU File System Infrastructure

Implementing a new file system poses some challenges for the supporting infrastructure: Given a lack of system calls on the GPU, we design an asynchronous ring buffer in shared memory between the client and the file system. The ring buffer contains both information about what operations are requested and their respective state as well as pointers to the actual data. Having a ring buffer as the main communication primitive offers both high throughput at the price of latency or low latency at the price of additional polling, depending on application needs.

Additionally, we need to redesign the storage access path since we cannot use the CPU for storage access; we need to run the storage drivers, e.g., for NVMe SSDs, directly on the GPU. In concert, we develop a caching system that fits both the file system and NVMe needs. We also investigate SSD behavior to fine-tune our file system to modern SSDs.

Lastly, working with GPUs can pose challenges in both hardware and driver support, so we develop verification tools and benchmarks to aid in development and optimization. Here, a focus is into memory ordering and consistency, as both system-wide atomic operations and direct memory access are both crucial for a correct GPU file system and seldomly studied in classical GPU literature.

Arbeiten
Author Title Type Date Supervisor
Péter Simon Bohner Bachelor Thesis 09.06.2025

Prof. Dr. Frank Bellosa
Peter Maucher
Thorsten Gröninger

 

Nick Djerfi Bachelor Thesis 02.09.2024

Prof. Dr. Frank Bellosa
Peter Maucher