Parallel NVMe Driver with Software Cache for GPU4FS

  • Typ:Bachelorarbeit
  • Datum:02.09.2024
  • Betreuung:

    Prof. Dr. Frank Bellosa
    Peter Maucher

  • Bearbeitung:Nick Djerfi
  • Links:PDF
  • Abstract
    Modern filesystems and storage media put a heavy load on CPU resources, especially in servers and high performance environments containing many storage devices in one system. Advanced filesystem features such as software-level RAID, compression, encryption, and deduplication require a lot of computing power, leaving less CPU resources for other processes running on the system. To combat this issue, Maucher et al. propose GPU4FS, a novel GPU-based userspace filesystem. GPU4FS moves all filesystem-related tasks onto the GPU, including transferring data to and from the storage device. GPU4FS currently only supports byte-addressable non-volatile memory using Intel Optane. Our thesis aims to provide the foundation for supporting block-based storage media in GPU4FS using the NVMe protocol. To this end, we design and implement a general purpose NVMe driver and software cache, intended to run solely on the GPU. We base our driver on previous work by Qureshi et al. with their novel storage architecture Big accelerator Memory (BaM). BaM provides direct access to storage media for GPU applications through an array-like abstraction layer.
    Our demonstrator proves to be competitive with CPU-based approaches in terms of both bandwidth and I/O operations per second. We achieve between 60% and 90% of the bandwidth of the Linux I/O stack in random read and write benchmarks on a consumer-grade SSD. However, our demonstrator exhibits abnormally high latency of around 290 μs in microbenchmarks and up to 10 s using a synthetic workload.
    We conclude that GPU-based NVMe drivers are feasible compared to traditional CPU-based approaches. However, further research is necessary, especially towards reducing the latency of our demonstrator, to make this approach suitable in high performance environments.

    BibTex:

    @bachethesis{Parallel NVMe Driver with Software
    Cache for GPU4FS,
      author = {Nick Djerfi},
      title = {Parallel NVMe Driver with Software
    Cache for GPU4FS},
      type = {Bachelor Thesis},
      year = 2024,
      month = sep# "02",
      school = {Operating Systems Group, Karlsruhe Institute of Technology (KIT), Germany}
      }