GPU and PCIe passthrough
AtomOS exposes physical PCIe devices to guests when the host firmware, IOMMU, and device grouping allow safe assignment. The common case is whole-GPU passthrough (one or more cards dedicated to a VM). Partitioning technologies (vGPU, MIG, SR-IOV) are separate capabilities—confirm per release before planning capacity.
PCI passthrough overview
Passthrough gives a guest direct access to hardware (typically NVIDIA/AMD GPUs, sometimes other accelerators). The hypervisor binds the device via VFIO after IOMMU isolation.
flowchart TB
HW[Physical GPU / PCIe device]
IOMMU[VT-d / AMD-Vi IOMMU groups]
VFIO[VFIO driver binding]
VM[KVM guest with native driver]
HW --> IOMMU --> VFIO --> VMHost prerequisites
| Requirement | Action |
|---|---|
| CPU virtualization | VT-x / AMD-V enabled in firmware |
| IOMMU | Intel VT-d or AMD AMD-Vi enabled |
| Kernel | IOMMU boot parameters per distro docs (validate on AlmaLinux 9 host) |
| Device visibility | sudo atomos-cli --pci-list and lspci -nn on the host |
| Isolation | All functions in the IOMMU group that must move together (GPU + audio function on same card) |
Validate before purchase
Record vendor:device IDs from lspci -nn (for example 10de:24b0) for every GPU you plan to pass through. Match them in the VM spec.
IOMMU groups and safety
- Devices in the same IOMMU group cannot be isolated from one another for DMA purposes.
- Passing through one function often requires passing related functions or using ACS-capable topologies.
- Do not assume a cloud or nested-virt instance exposes usable IOMMU for passthrough—validate on bare metal for production GPU workloads (Hardware).
Guest configuration
- Create a VM with adequate CPU, memory, and NUMA awareness for GPU workloads.
- Request devices in the pledge/spec using PCI identifiers (see example below).
- Install vendor guest drivers (NVIDIA, AMD, etc.) inside the VM.
- Run representative AI/ML, CUDA, or graphics tests before production cutover.
Example request fragment
{
"pci": [{ "vendor": "10de", "model": "24b0", "quantity": 1 }]
}| Field | Meaning |
|---|---|
vendor | PCI vendor ID (hex, without 0x) |
model | PCI device ID (hex) |
quantity | Number of matching devices to assign |
Use IDs from lspci or atomos-cli --pci-list on the target host—IDs differ by SKU and slot.
Migration, HA, and maintenance limits
| Topic | Typical constraint |
|---|---|
| Live migration | Not supported for guests with assigned physical GPUs—plan stop or recreate on another GPU host |
| Host failure recovery | Recreate requires free GPU with matching IDs on a peer (Availability) |
| Planned maintenance | Shutdown guest; drain GPU host like any non-migratable workload |
| Driver updates | Host and guest driver upgrades may need coordinated reboots |
Document GPU-backed VMs explicitly in runbooks (Availability & recovery).
GPU partitioning: vGPU, MIG, SR-IOV (distinct from passthrough)
These technologies slice or virtualize accelerator capacity. They are not the same as whole-device passthrough and must be checked per AtomOS release and hardware generation.
| Technology | Idea | Documentation status |
|---|---|---|
| NVIDIA vGPU | Licensed virtual GPU profiles on supported datacenter cards | Planned / unverified in public AtomOS docs—not GA unless confirmed for your build |
| NVIDIA MIG | Hardware partitions on A100/H100 class GPUs | Planned / unverified — confirm with Elemento |
| SR-IOV | Virtual functions on NICs or some accelerators | Planned / unverified for general GPU SR-IOV — confirm per device and release |
| AMD MxGPU | AMD virtualized GPU | Planned / unverified — confirm with Elemento |
Do not assume GA
If a sales conversation or lab demo mentioned vGPU or MIG, still verify package availability, licensing, and Electros specfile fields on the exact release you deploy. Until verified, plan whole-GPU passthrough only.
Recommended validation path
- Confirm GPU visibility on the host; record vendor and device IDs.
- Enable IOMMU; review PCIe groups; isolate required functions.
- Create a test VM with the PCI fragment and install guest drivers.
- Benchmark a representative workload.
- Record migration and HA exclusions in your operational docs.
- If you need shared GPU capacity across many VMs, open a capacity planning discussion with Elemento before relying on partitioning features.
Related reading
- Hardware requirements — IOMMU and sizing
- Confidential computing (TDX) — distinct trust-boundary workloads
- Use cases — private AI