Skip to content

Commit 4949cb4

Browse files
committed
Switch to qemu for GPU support
In my own testing, I found Cloud Hypervisor to be unstable with Blackwell and 3090 cards. This could be an issue that the maintainers resolve, however it does not seem to be a priority for them at this stage. QEMU is the gold standard for passthrough and opens the doors to vGPU/MIG. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
1 parent 8aa0c76 commit 4949cb4

7 files changed

Lines changed: 20 additions & 20 deletions

File tree

docs/examples/gpu-ollama.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ GPU / VFIO mounting only works with Slicer running on `x86_64` at present.
2020
There a three differences to the other examples we've seen so far:
2121

2222
1. `gpu_count: N` is added to the hostgroup, N is a the number of GPUs to allocate to each VM
23-
2. `hypervisor: cloud-hypervisor` - Cloud Hypervisor is used instead of Firecracker, to enable VFIO passthrough of a PCI device
24-
3. `image` - a separate Kernel and root filesystem is required for Cloud Hypervisor
23+
2. `hypervisor: qemu` - [QEMU](https://www.qemu.org/) is used instead of Firecracker, to enable VFIO passthrough of a PCI device
24+
3. `image` - a separate Kernel and root filesystem is required for QEMU
2525

2626
The following to `gpu.yaml`, make sure you update `vcpu` and `ram_gb`
2727

@@ -42,9 +42,9 @@ config:
4242

4343
github_user: alexellis
4444

45-
image: "ghcr.io/openfaasltd/slicer-systemd-ch:5.10.240-x86_64-latest"
45+
image: "ghcr.io/openfaasltd/slicer-systemd-ch:6.1.90-x86_64-latest"
4646

47-
hypervisor: cloud-hypervisor
47+
hypervisor: qemu
4848
```
4949
5050
Boot the VM(s) with:

docs/examples/k3s-gpu.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ config:
2323

2424
github_user: alexellis
2525

26-
image: "ghcr.io/openfaasltd/slicer-systemd-ch:5.10.240-x86_64-latest"
26+
image: "ghcr.io/openfaasltd/slicer-systemd-ch:6.1.90-x86_64-latest"
2727

28-
hypervisor: cloud-hypervisor
28+
hypervisor: qemu
2929
```
3030
3131
Feel free to customise the vCPU, RAM, and disk sizes.

docs/examples/router-firewall.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ config:
105105
bridge: brrouter0
106106
tap_prefix: router
107107
gateway: 192.168.130.1/24
108-
image: "ghcr.io/openfaasltd/slicer-systemd-ch:x86_64-latest"
109-
hypervisor: cloud-hypervisor
108+
image: "ghcr.io/openfaasltd/slicer-systemd-ch:6.1.90-x86_64-latest"
109+
hypervisor: qemu
110110

111111
api:
112112
port: 8080

docs/getting-started/install.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ You can run Slicer on a varied range of hardware, from mini PCs, to your Mac, to
1212

1313
See the [appendix](#appendix) for suggested local hardware and cloud-based options.
1414

15-
Slicer is designed to run on a basic OS installation, without Docker, Kubernetes, or other virtualisation tools. Slicer installs and manage its own dependencies, such as Firecracker, Cloud Hypervisor, and containerd.
15+
Slicer is designed to run on a basic OS installation, without Docker, Kubernetes, or other virtualisation tools. Slicer installs and manage its own dependencies, such as Firecracker, [QEMU](https://www.qemu.org/), and containerd.
1616

1717
## Quick installation
1818

@@ -24,7 +24,7 @@ curl -sLS https://get.slicervm.com | sudo bash
2424

2525
> See also: [installation script](https://github.com/slicervm/slicervm.com/blob/master/get.sh)
2626
27-
The installer sets up [Firecracker](https://firecracker-microvm.github.io), [Cloud Hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor), [containerd](https://containerd.io/) for storage, and a few networking options.
27+
The installer sets up [Firecracker](https://firecracker-microvm.github.io), [QEMU](https://www.qemu.org/), [containerd](https://containerd.io/) for storage, and a few networking options.
2828

2929
**Setup the license key**
3030

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ Slicer was developed internally at OpenFaaS Ltd and has been used across product
4141

4242
Slicer for Linux
4343

44-
* On Linux, KVM is used with [Firecracker](https://firecracker-microvm.github.io/) by default. [Cloud Hypervisor](https://www.cloudhypervisor.org/) is an option when you need PCI passthrough for devices like NICs or GPUs.
44+
* On Linux, KVM is used with [Firecracker](https://firecracker-microvm.github.io/) by default. [QEMU](https://www.qemu.org/) is an option when you need PCI passthrough for devices like NICs or GPUs.
4545
* You can start Slicer with a fixed host-group count or zero hosts and create VMs on demand through the API.
4646

4747
Slicer for Mac:

docs/reference/images.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ Images for Slicer are built with a Dockerfile, and [can be extended](/tasks/cust
44

55
It is also possible to build completely different images from scratch, however this is not recommended or documented at this time. So if you need a different OS, reach out to the team via Discord and request it there.
66

7-
Cloud Hypervisor is required to mount a PCI device such as an Nvidia GPU into a microVM. In all other cases, Firecracker is preferred.
7+
[QEMU](https://www.qemu.org/) is required to mount a PCI device such as an Nvidia GPU into a microVM. In all other cases, Firecracker is preferred.
88

99
Generally, Slicer makes use of systemd to run, tune, and manage services and background agents. It is technically possible to use other init systems such as openrc, reach out if this is a core requirement for your usage.
1010

1111
Image availability:
1212

13-
| Operating System | Firecracker (x86_64) | Firecracker (arm64) | Cloud Hypervisor (x86_64) | Cloud Hypervisor (arm64) |
13+
| Operating System | Firecracker (x86_64) | Firecracker (arm64) | QEMU (x86_64) | QEMU (arm64) |
1414
| - | - | - | - | - |
1515
| Ubuntu 22.04 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :cross_mark: |
1616
| Ubuntu 24.04 | :white_check_mark: | :cross_mark: | :cross_mark: | :cross_mark: |
@@ -21,10 +21,10 @@ Ubuntu 22.04 is supported by Cannoncial is supported [until April 2027](https://
2121

2222
Table of image tags:
2323

24-
| Operating System | Firecracker (x86_64) | Firecracker (arm64) | Cloud Hypervisor (x86_64) | Cloud Hypervisor (arm64) | Default user |
25-
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
26-
| Ubuntu 22.04 | `ghcr.io/openfaasltd/slicer-systemd:5.10.240-x86_64-latest`, `ghcr.io/openfaasltd/slicer-systemd:6.1.90-x86_64-latest` | `ghcr.io/openfaasltd/slicer-systemd-arm64:6.1.90-aarch64-latest` | `ghcr.io/openfaasltd/slicer-systemd-ch:5.10.240-x86_64-latest`, `ghcr.io/openfaasltd/slicer-systemd-ch:6.1.90-x86_64-latest` | | `ubuntu` |
27-
| Ubuntu 24.04 | `ghcr.io/openfaasltd/slicer-systemd-2404:5.10.240-x86_64-latest` | | | | `ubuntu` |
28-
| Rocky Linux 9 | `ghcr.io/openfaasltd/slicer-systemd-rocky9:5.10.240-x86_64-latest` | | | | `slicer` |
29-
| Arch Linux | `ghcr.io/openfaasltd/slicer-systemd-archlinux:6.1.90-x86_64-latest` | | | | `slicer` |
24+
| Operating System | Firecracker (x86_64) | Firecracker (arm64) | QEMU (x86_64) | Default user |
25+
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- |
26+
| Ubuntu 22.04 | `ghcr.io/openfaasltd/slicer-systemd:5.10.240-x86_64-latest`, `ghcr.io/openfaasltd/slicer-systemd:6.1.90-x86_64-latest` | `ghcr.io/openfaasltd/slicer-systemd-arm64:6.1.90-aarch64-latest` | `ghcr.io/openfaasltd/slicer-systemd-ch:6.1.90-x86_64-latest` | `ubuntu` |
27+
| Ubuntu 24.04 | `ghcr.io/openfaasltd/slicer-systemd-2404:5.10.240-x86_64-latest` | | | `ubuntu` |
28+
| Rocky Linux 9 | `ghcr.io/openfaasltd/slicer-systemd-rocky9:5.10.240-x86_64-latest` | | | `slicer` |
29+
| Arch Linux | `ghcr.io/openfaasltd/slicer-systemd-archlinux:6.1.90-x86_64-latest` | | | `slicer` |
3030
The most tested and stable images for *x86_64* are based upon the `5.10.x` Kernel. Feel free to use the `6.9.x` Kernels and report any discrepancies you may find.

openapi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -765,7 +765,7 @@ paths:
765765
schema:
766766
type: string
767767
enum: [shutdown, reboot]
768-
description: Defaults to reboot unless hypervisor is cloud-hypervisor.
768+
description: Defaults to reboot unless hypervisor is qemu.
769769
responses:
770770
"200":
771771
description: Shutdown initiated

0 commit comments

Comments
 (0)