agent-substrate / agent-substrate/substrate

GPU passthrough for micro-VM actors

Open
#762 4 comments 0 reactions 1 assignee Claimed by @eliranw View on GitHub
area/microVM kind/feature
Dominant language
Go
Stars
1.8k
Forks
316
Avg merge
2d 43m
Merged PRs (30d)
287

Description

GPU passthrough for gVisor actors is proposed in #502. Nothing equivalent exists for micro-VM actors, and that PR gates the combination: a `microvm` WorkerPool requesting `nvidia.com/gpu` is rejected at apply time, because the pod would otherwise schedule onto a GPU node and hold a device no actor could use.

The gVisor approach does not carry over. It injects the host driver into the sandbox via CDI, which relies on the actor sharing the host kernel. A micro-VM guest has its own kernel, so the device has to be passed through — VFIO PCI passthrough for the GPU, plus getting a matching driver and user-mode libraries into the guest.

Open questions:

- VFIO device binding and IOMMU requirements on the node, and whether that composes with the unprivileged worker posture
- How the guest gets a driver matching the host GPU, and how it stays version-matched
- Whether cloud-hypervisor's VFIO support covers what is needed here
- What this means for snapshot/restore, which for micro-VM captures guest memory

Filing so the design is tracked outside the gVisor PR.

Related: #627, #502

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.