Partitioning GPUs for graphical and computing applications under Linux KVM

Description

The GPU development and evolution of the last years has shown a much stronger peak performance growth with respect to CPUs. The performance growth, driven mainly by technological improvements in the transistor’s sizes, forced hardware producers to introduce hardware and low level software functionalities capable of enabling the GPU partitioning “à la CPU”. Such solutions (e.g. AMD MxGPU, Nvidia vGPU) are currently available in payware environments such as VMware ESXi and CITRIX, while these are marginally (or not) available inside Linux KVM.

OpenForBC targets the development of a layer capable of presenting a common interface on top of such technologies in the open-source Linux KVM environment, aimed at supporting scientific and commercial applications for data centers, HPCs, distributed computing. This approach will enable a “learn once use forever” pattern to developers and sysadmins, since the Open ForBC modularity copes well with the introduction of additional wrappers built around new and future toolsets aimed at GPU partitioning.

The Open ForBC project can be split in two subprojects:

The GSOC task will be focused on the latter, with interaction with the people involved in the first to improve the toolset based on benchmark measurements.

Task ideas

Expected results

The successful student will develop and test a suite of ready-to-run benchmarks to measure the performances of various GPU partitioning options. The student will perform the baseline performance measurements that are necessary to test the solutions developed within OpenForBC.

Requirements

Bash, Python (C++ optional but appreciated), familiar with Linux environment (bonus skill: KVM, ESXi) and virtualization techniques

Mentors

Corresponding Project

Participating Organizations