Type: gpu
▶ Watch on YouTube (opens in a new tab)
GPU devices make the specified GPU device or devices appear in the instance.
Note
For containers, a
gpu
device may match multiple GPUs at once. For VMs, each device can match only a single GPU.
The following types of GPUs can be added using the gputype
device option:
physical
(container and VM): Passes an entire GPU through into the instance. This value is the default ifgputype
is unspecified.mdev
(VM only): Creates and passes a virtual GPU through into the instance.mig
(container only): Creates and passes a MIG (Multi-Instance GPU) through into the instance.sriov
(VM only): Passes a virtual function of an SR-IOV-enabled GPU into the instance.
The available device options depend on the GPU type and are listed in the tables in the following sections.
gputype
: physical
Note
The
physical
GPU type is supported for both containers and VMs. It supports hotplugging only for containers, not for VMs.
A physical
GPU device passes an entire GPU through into the instance.
Device options
GPU devices of type physical
have the following device options:
gid
GID of the device owner in the container
Key: gid
Type: integer
Default: 0
Condition: container
id
ID of the GPU device
Key: id
Type: string
The ID can either be the DRM card ID of the GPU device (container or VM) or a fully-qualified Container Device Interface (CDI) name (container only). Here are some examples of fully-qualified CDI names:
nvidia.com/gpu=0
: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with the first discovered GPU on your system. You can use thenvidia-smi
tool on your host to find out which identifier to use.nvidia.com/gpu=1833c8b5-9aa0-5382-b784-68b7e77eb185
: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with a given GPU unique identifier. This identifier should also appear withnvidia-smi -L
.nvidia.com/igpu=all
: Instructs LXD to pass all the host integrated GPUs (iGPU) of brand NVIDIA. The concept of an index does not currently map to iGPUs. It is possible to list them with thenvidia-smi -L
command. A specialnvgpu
mention should appear in the generated list to indicate a device to be an iGPU.nvidia.com/gpu=all
: Instructs LXD to pass all the host GPUs of brand NVIDIA through to the container.
mode
Mode of the device in the container
Key: mode
Type: integer
Default: 0660
Condition: container
pci
PCI address of the GPU device
Key: pci
Type: string
productid
Product ID of the GPU device
Key: productid
Type: string
uid
UID of the device owner in the container
Key: uid
Type: integer
Default: 0
Condition: container
vendorid
Vendor ID of the GPU device
Key: vendorid
Type: string
Configuration examples
Add all GPUs from the host system as a physical
GPU device to an instance:
lxc config device add <instance_name> <device_name> gpu gputype=physical
Add a specific GPU from the host system as a physical
GPU device to an instance by specifying its PCI address:
lxc config device add <instance_name> <device_name> gpu gputype=physical pci=<pci_address>
See Configure devices for more information.
CDI mode
Note
The CDI mode is currently not supported on
armhf
architectures.
Add a specific GPU from the host system as a physical
GPU device to an instance using the Container Device Interface (opens in a new tab) (CDI) notation through a fully-qualified CDI name:
lxc config device add <instance_name> <device_name> gpu gputype=physical id=<fully_qualified_CDI_name>
For example, add the first available NVIDIA discrete GPU on your system:
lxc config device add <instance_name> <device_name> gpu gputype=physical id=nvidia.com/gpu=0
If your machine has an NVIDIA iGPU (integrated GPU) located at index 0, you can add it like this:
lxc config device add <instance_name> <device_name> gpu gputype=physical id=nvidia.com/igpu=0
For a complete example on how to use a GPU CDI pass-through, see How to pass an NVIDIA GPU to a container.
gputype
: mdev
Note
The
mdev
GPU type is supported only for VMs. It does not support hotplugging.
An mdev
GPU device creates and passes a virtual GPU through into the instance. You can check the list of available mdev
profiles by running lxc info --resources
.
Device options
GPU devices of type mdev
have the following device options:
id
DRM card ID of the GPU device
Key: id
Type: string
mdev
The mdev
profile to use
Key: mdev
Type: string
Default: 0
Required: yes
For example: i915-GVTg_V5_4
pci
PCI address of the GPU device
Key: pci
Type: string
productid
Product ID of the GPU device
Key: productid
Type: string
vendorid
Vendor ID of the GPU device
Key: vendorid
Type: string
Configuration examples
Add an mdev
GPU device to an instance by specifying its mdev
profile and the PCI address of the GPU:
lxc config device add <instance_name> <device_name> gpu gputype=mdev mdev=<mdev_profile> pci=<pci_address>
See Configure devices for more information.
gputype
: mig
Note
The
mig
GPU type is supported only for containers. It does not support hotplugging.
A mig
GPU device creates and passes a MIG compute instance through into the instance. Currently, this requires NVIDIA MIG instances to be pre-created.
Device options
GPU devices of type mig
have the following device options:
id
DRM card ID of the GPU device
Key: id
Type: string
mig.ci
Existing MIG compute instance ID
Key: mig.ci
Type: integer
mig.gi
Existing MIG GPU instance ID
Key: mig.gi
Type: integer
mig.uuid
Existing MIG device UUID
Key: mig.uuid
Type: string
You can omit the MIG-
prefix when specifying this option.
pci
PCI address of the GPU device
Key: pci
Type: string
productid
Product ID of the GPU device
Key: productid
Type: string
vendorid
Vendor ID of the GPU device
Key: vendorid
Type: string
You must set either mig.uuid
(NVIDIA drivers 470+) or both mig.ci
and mig.gi
(old NVIDIA drivers).
Configuration examples
Add a mig
GPU device to an instance by specifying its UUID and the PCI address of the GPU:
lxc config device add <instance_name> <device_name> gpu gputype=mig mig.uuid=<mig_uuid> pci=<pci_address>
See Configure devices for more information.
gputype
: sriov
Note
The
sriov
GPU type is supported only for VMs. It does not support hotplugging.
An sriov
GPU device passes a virtual function of an SR-IOV-enabled GPU into the instance.
Device options
GPU devices of type sriov
have the following device options:
id
DRM card ID of the parent GPU device
Key: id
Type: string
pci
PCI address of the parent GPU device
Key: pci
Type: string
productid
Product ID of the parent GPU device
Key: productid
Type: string
vendorid
Vendor ID of the parent GPU device
Key: vendorid
Type: string
Configuration examples
Add a sriov
GPU device to an instance by specifying the PCI address of the parent GPU:
lxc config device add <instance_name> <device_name> gpu gputype=sriov pci=<pci_address>
See Configure devices for more information.