GPU virtualization and scheduling methods: A comprehensive survey
Last updated
Last updated
Presented in CSUR 2017.
Authors: Cheol-Ho Hong, Ivor Spence, Dimitrios S. Nikolopoulos (Queen’s University Belfast)
GPU virtualization can be implemented on three approaches.
Library-level.
This approach provides a GPU wrapper library to guest OS to intercept GPU calls.
The intercepted calls are forwarded to the host OS or a remote machine with GPUs.
The requests will be processed remotely and the results are returned to the guest OS.
The core difficulty is that the GPU driver implementation is not open source.
Drivel-level.
This approach uses a custom GPU driver based on the available documentation to realize GPU virtualization at the driver level.
NVIDIA-related reverse engineering is required.
Hardware-level.
This approach requires that a guest OS is given direct access to GPUs with hardware extension features.
For example, NVIDIA GRID allows some GPUs to be multiplexed.