ResourceSlice device attributes
The DRA Driver for NVIDIA GPUs publishes each allocatable device — full GPUs, MIG
slices, and VFIO passthrough devices — as an entry under spec.devices in a
node’s ResourceSlice. This page is a reference for the NVIDIA-specific
attributes and capacity on those entries: what each field means and the exact
names you reference in CEL selectors.
For the generic ResourceSlice type schema — every field on ResourceSlice,
Device, DeviceAttribute, DeviceCapacity, and related types — see the
Kubernetes API reference for ResourceSlice v1.
For how the driver publishes slices, see
Publishing GPUs in ResourceSlices.
To inspect the ResourceSlices on your own cluster, see
View available GPU resources.
Device types
The DRA Driver for NVIDIA GPUs publishes all devices under a single driver,
gpu.nvidia.com, with one pool per node. The NVIDIA-specific type attribute on
each device identifies the kind of device, and the built-in DeviceClasses select
on it:
type | DeviceClass | Device |
|---|---|---|
gpu | gpu.nvidia.com | Full physical GPU |
mig | mig.nvidia.com | MIG slice |
vfio | vfio.gpu.nvidia.com | VFIO passthrough device |
The sections below show a representative spec.devices[] entry for each type.
kubectl prints map keys alphabetically (so type and uuid appear last), the
# comments are annotations rather than part of the real output, and the values
are illustrative — confirm them on your own cluster.
Full GPU (type: gpu)
- attributes:
addressingMode:
string: HMM # memory addressing mode, when available
architecture:
string: Ampere # GPU architecture
brand:
string: Nvidia # GPU brand
cudaComputeCapability:
version: 8.0.0 # CUDA compute capability
cudaDriverVersion:
version: 13.0.0 # CUDA driver version
driverVersion:
version: 580.126.20 # NVIDIA driver version
productName:
string: NVIDIA A100-PCIE-40GB # product name reported by NVML
resource.kubernetes.io/pciBusID:
string: 0000:65:00.0 # PCI bus address in BDF notation, when available
resource.kubernetes.io/pcieRoot:
string: pci0000:64 # PCIe root complex identifier, when available
type:
string: gpu # device kind: gpu, mig, or vfio
uuid:
string: GPU-2fa81118-5a5f-aa66-7660-471eed407181
capacity:
memory:
value: 40Gi # total GPU memory
# On MIG-capable GPUs with partition metadata, additional capacities
# (multiprocessors, copyEngines, decoders, encoders, jpegEngines, ofaEngines)
# may also appear here.
name: gpu-0
MIG slice (type: mig)
- attributes:
addressingMode:
string: HMM
architecture:
string: Ampere # inherited from the parent GPU
brand:
string: Nvidia
cudaComputeCapability:
version: 8.0.0
cudaDriverVersion:
version: 13.0.0
driverVersion:
version: 580.126.20
parentUUID:
string: GPU-2fa81118-5a5f-aa66-7660-471eed407181 # physical GPU hosting this instance
productName:
string: NVIDIA A100-PCIE-40GB # inherited from the parent GPU
profile:
string: 1g.5gb # MIG profile, e.g. 1g.5gb or 3g.20gb
resource.kubernetes.io/pciBusID:
string: 0000:65:00.0
resource.kubernetes.io/pcieRoot:
string: pci0000:64
type:
string: mig # device kind
uuid:
string: MIG-1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
capacity:
copyEngines:
value: "1" # dedicated copy engines
decoders:
value: "0" # dedicated video decoders
encoders:
value: "0" # dedicated video encoders
jpegEngines:
value: "0" # dedicated JPEG engines
memory:
value: 4864Mi # dedicated slice memory (usable amount, below the "5gb" label)
multiprocessors:
value: "14" # streaming multiprocessors dedicated to the slice
ofaEngines:
value: "0" # dedicated optical-flow accelerators
name: gpu-0-mig-1g.5gb-0
VFIO passthrough (type: vfio)
- attributes:
deviceID:
string: "0x20b0" # PCI device ID
iommuFDEnabled:
bool: true # whether the IOMMUFD backend is enabled
numa:
int: 0 # NUMA node
productName:
string: NVIDIA A100-PCIE-40GB # product name reported by NVML
resource.kubernetes.io/pciBusID:
string: 0000:65:00.0 # PCI bus address in BDF notation, when available
resource.kubernetes.io/pcieRoot:
string: pci0000:64 # PCIe root complex identifier, when available
type:
string: vfio # device kind
uuid:
string: GPU-2fa81118-5a5f-aa66-7660-471eed407181
vendorID:
string: "0x10de" # PCI vendor ID (0x10de = NVIDIA)
capacity:
addressableMemory:
value: 40Gi # addressable device memory
name: gpu-0
Attribute naming: bare keys vs CEL domain
The same attribute has two naming forms. In the serialized ResourceSlice,
driver attributes appear as bare keys (type, productName, and so on)
because their domain is implied by the driver name. In a CEL selector, you
address them through that domain, device.attributes['gpu.nvidia.com'].type. The
standardized PCI attributes are the exception: they are stored fully qualified as
resource.kubernetes.io/pciBusID and resource.kubernetes.io/pcieRoot.
In selectors, attributes are read with
device.attributes['gpu.nvidia.com'].<name> and capacity with
device.capacity['gpu.nvidia.com'].<name>. For example, to match a GPU with more
than 40 GiB of memory:
device.capacity['gpu.nvidia.com'].memory.isGreaterThan(quantity("40Gi"))
For full selector examples, see Request full GPUs. CEL-based device selection is a standard Kubernetes DRA feature; see the Kubernetes DRA documentation for the complete selector syntax.