pub struct GpuDevice {
pub vendor: GpuVendor,
pub name: String,
pub index: u32,
pub generation: String,
pub pci_id: String,
pub vram_mib: u64,
pub serial: Option<String>,
pub host_pci_address: String,
pub vendor_id_hex: String,
}Fields§
§vendor: GpuVendor§name: String§index: u32§generation: StringArchitecture / generation label, e.g. “Blackwell” (RTX 5060), “Ada Lovelace” (RTX 4000-series), “Ampere” (RTX 3000), “Alchemist DG2” (Arc A-series), “Battlemage BMG” (Arc B-series), “RDNA3” (RX 7000). Phase 2 (2026-05-07) inventory page surface — derived from the PCI device id at detect time so the inventory aggregations don’t have to re-derive it. “Unknown” when the device id falls outside the per-vendor known-id table; preserved verbatim to the admin UI so operators can spot fleet rows that need a label update.
pci_id: StringLowercase vendor:device PCI tuple, e.g. "0x10de:0x2d05". Stable
identifier across driver / kernel versions. Empty string when the
platform path doesn’t expose a device id (NVIDIA via CUDA on
Windows: cuda doesn’t surface PCI; the field stays empty rather
than synthesise something misleading).
vram_mib: u64Total VRAM in MiB. NVIDIA via NVML memory_info().total; Intel via
/sys/class/drm/cardN/device/mem_info_vram_total when present;
AMD same. 0 when the platform path can’t read it — admin UI shows
“—” for that case rather than “0 MiB”.
serial: Option<String>Vendor-reported serial number of the physical card. NVIDIA via
NVML Device::serial() (returns the manufacturer’s serial sticker
for cards that have one — datacenter Tesla / A10G / consumer Pro
cards expose it; consumer GeForce typically doesn’t). Intel /
AMD: try /sys/class/drm/cardN/device/serial[_number] paths;
usually None. Stable identifier for warranty tracking + the
transcoder_gpus asset table — when present, the same card
across host moves dedups to a single row.
host_pci_address: StringPCI host slot address, e.g. "04:00.0". Used as the dedupe
fallback when serial is absent — assumes the card stays in
the same slot of the same host (the dev-box reality).
Empty when the platform path doesn’t expose it.
vendor_id_hex: StringVendor portion of the PCI tuple as a standalone hex string,
e.g. "0x10de". Already implicit in pci_id but exposed
separately so the SQL inventory query can index on it
without parsing.