ResourceSlice device attributes

NVIDIA GPU, MIG, and VFIO device attributes and capacity published by the DRA Driver for NVIDIA GPUs in ResourceSlices.

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:

typeDeviceClassDevice
gpugpu.nvidia.comFull physical GPU
migmig.nvidia.comMIG slice
vfiovfio.gpu.nvidia.comVFIO 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.