GPU cloud: VM or container, dedicated or shared GPU?
GPU price comparators line up three columns: GPU model, VRAM, price per hour. Two attributes that change what you actually get are missing:
- Isolation: a full virtual machine, a container on someone else’s host, or a bare-metal server.
- GPU allocation: the whole GPU, or a share of it.
Two offers with the same GPU name can differ completely on both. This article explains the four combinations, shows live data from a GPU marketplace, and gives the commands to check what you got from inside the machine.
Isolation: bare metal, VM or container
| Type | Kernel | Root | What is shared with other customers |
|---|---|---|---|
| Bare-metal server | yours | full | nothing |
| Virtual machine (KVM, Xen…) | yours | full, inside the VM | the physical host, with your vCPU, RAM and disk allocated to you |
| Container (Docker, LXC) | the host’s | inside the container only | the host kernel, and CPU, RAM, disk and network split between renters |
What a container means in practice:
- No kernel modules, no custom kernel. You cannot load a driver, change kernel parameters, or run a VPN that needs a kernel module (e.g. WireGuard on older hosts).
- No regular
systemdin most GPU containers: services have to be started by hand or by the image’s entrypoint. - Forwarded ports, often no dedicated IP. A web service or SSH listens on a random external port mapped by the host.
- Neighbours. The other renters’ containers run on the same kernel. A noisy neighbour saturating disk or network affects you.
A VM gives you your own kernel and real root: systemd, kernel modules, iptables,
Docker inside, Kubernetes nodes. The price difference often comes from exactly this.
GPU allocation: whole GPU or a share
| Technology | How the GPU is split | Typical hardware |
|---|---|---|
| PCI passthrough | not split: the whole GPU goes to one VM | any GPU |
| SR-IOV | the GPU exposes hardware “virtual functions”, one per VM; time and memory are partitioned by the hardware and driver | Intel iGPU (UHD 770, Xe), Intel Data Center GPUs, some AMD |
| NVIDIA vGPU | the driver splits one GPU into profiles (e.g. 1/4, 1/8 of the memory) | A16, A40, L40S, L4 (licensed) |
| MIG | the GPU is partitioned into isolated hardware slices | A100, H100, H200 |
| Time-slicing | containers take turns on the same GPU, no memory isolation | any NVIDIA GPU with the device plugin |
A share is not a scam: for transcoding, a browser with WebGL or light AI inference, a share of a GPU is often enough, and much cheaper. It just has to be stated. A shared GPU and a dedicated one can sit next to each other in a comparison table with nothing telling them apart.
Live example: a GPU marketplace on 30 October 2026
We queried the public offers API of Vast.ai (on-demand, 1 GPU) for the cheapest RTX 3060 and RTX 4090 listings:
| GPU | $/h | Host machine | Your share of the host | Type | Location | Host status |
|---|---|---|---|---|---|---|
| RTX 3060 | 0.036 | 4 GPUs, 48 cores | 1 GPU, 12 cores | container | Shandong, CN | unverified |
| RTX 3060 | 0.049 | 2 GPUs, 6 cores | 1 GPU, 3 cores | container | Thailand | deverified |
| RTX 3060 | 0.056 | 4 GPUs, 32 cores | 1 GPU, 8 cores | container | Beijing, CN | deverified |
| RTX 4090 | 0.315 | 1 GPU, 32 cores | whole machine | container | Pennsylvania, US | unverified |
| RTX 4090 | 0.321 | 2 GPUs, 20 cores | 1 GPU, 10 cores | container | France | unverified |
| RTX 4090 | 0.361 | 4 GPUs, 128 cores | 1 GPU, 32 cores | VM possible | Russia | unverified |
The GPU itself is whole and exclusive here. But five of the six are containers, the host machine is shared with the renters of its other GPUs, and disk (≈ $0.20/GB/month, billed even while the instance is stopped) and traffic come on top of the hourly price. None of this appears in a “GPU / VRAM / $ per hour” table. Only 3 RTX 3060 offers existed at that moment.
That is fine for an experiment. For a 24/7 service, or for data under GDPR, the host’s identity, its location and the isolation type matter more than the last cent per hour.
Check from inside what you got
# VM or container?
systemd-detect-virt # kvm / qemu / xen → VM · docker / lxc / container-other → container · none → bare metal
cat /proc/1/comm # "systemd" in a VM; often "bash", "python" or "tini" in a container
# Your own kernel?
uname -r # compare with what the provider claims
lsmod | head # empty or "permission denied" → container
# Whole GPU or a share?
lspci -nn | grep -Ei 'vga|3d|display' # "Virtual Function" or a VF device id → SR-IOV share
nvidia-smi -q | grep -Ei 'virtualization|MIG mode|vGPU' # NVIDIA: vGPU or MIG instance
nvidia-smi --query-gpu=name,memory.total --format=csv # VRAM lower than the card's spec → share
# Host CPU and RAM really yours?
nproc; free -g # compare with the plan; in a container these may show the whole host
Buyer checklist
- VM, container or bare metal? If the listing does not say, ask, or run
systemd-detect-virtin the first hour. - Whole GPU or share? And if it is a share: which technology (SR-IOV, vGPU, MIG, time-slicing) and how big.
- What is billed outside the hourly price? Disk while stopped, traffic, IPv4, setup fee.
- Who owns the machine and where is it? Provider-owned in a known data center, or a third-party host on a marketplace.
- Hourly or monthly? Comparators often convert monthly prices into an hourly figure (price ÷ 730 h): the hourly number does not mean you can stop after one hour.
What Linux GPU sells, stated plainly
- Every plan is a KVM virtual machine with its own kernel and root SSH:
systemd, Docker, kernel modules, k3s. - iGPU plans get a share of an Intel UHD 770 through SR-IOV: several customers use the same physical GPU, and the size of each share depends on the plan (Perf 1, 2 or 3).
- The GTX 1060 plan is a dedicated GPU, attached whole to your VM.
- Monthly billing, no setup fee. Our pricing feed publishes these attributes
(
virtualization,gpu_share,performance_tier) next to the prices.
See the GPU VPS comparison for prices next to Hetzner, OVHcloud, Vultr and Vast.ai.