Type: gpu
¶
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:
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.
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 (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:
Key: | mdev |
Type: | string |
Default: |
|
Required: | yes |
For example: i915-GVTg_V5_4
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:
Key: | mig.uuid |
Type: | string |
You can omit the MIG-
prefix when specifying this option.
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:
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.