Skip to main content

GPU simulation

nl6 simulates NVIDIA DGX and HGX GPU servers with per-GPU SNMP metrics, nvidia-smi and dcgmi SSH output, and DCGM-shaped REST endpoints. The SNMP OID layout under NVIDIA's PEN (1.3.6.1.4.1.5703) is defined by nl6. NVIDIA publishes no SNMP GPU MIB; real DCGM exposes a Prometheus /metrics endpoint, not SNMP. The metric vocabulary and the command output are modelled on DCGM.

Pages​

  • DCGM simulation: how the simulator produces the data: metric OID types, the GPU cycler extension, device profiles, resource file layout, SSH commands and REST paths.

Supported GPU servers​

DeviceProfileGPUsVRAM/GPUSystem RAMsysObjectID
NVIDIA DGX-A100nvidia_dgx_a100880 GB1 TB1.3.6.1.4.1.5703.1.2.1
NVIDIA DGX-H100nvidia_dgx_h100880 GB2 TB1.3.6.1.4.1.5703.1.2.2
NVIDIA HGX-H200nvidia_hgx_h2008141 GB2 TB1.3.6.1.4.1.5703.1.2.3

See Device types → GPU servers for where these sit in the broader device catalogue.

Collector OID contract​

The OIDs a collector polls from a simulated GPU server. Every object below the PEN is nl6's own definition and resolves against no vendor MIB.

Anchor vendor detection on the full dotted prefix .1.3.6.1.4.1.5703., never on the bare digits: 5703 occurs inside 15703, 45703 and inside instance identifiers, so a substring rule claims unrelated devices as NVIDIA GPU servers.

The arc used to sit under 1.3.6.1.4.1.53246, a PEN IANA allocates to an unrelated company. Every sub-identifier below the PEN is unchanged, so a rule written for the old arc needs only its prefix replaced. A GET under the old arc answers noSuchObject (SNMPv2c/v3) or error-status = noSuchName (SNMPv1); nothing under it carries a value.

Module-level​

OIDObjectExample
1.3.6.1.4.1.5703.1.1.1.0.1.0GPU count8
1.3.6.1.4.1.5703.1.1.1.0.2.0DCGM version3.3.0

Per-GPU static objects​

Pattern 1.3.6.1.4.1.5703.1.1.1.1.<X>.<gpu>, with <gpu> from 0 to 7. Values come from the resource file and do not change.

XObjectExample
1GPU nameNVIDIA H100 80GB HBM3
2GPU UUIDGPU-a1b2c3d4-...
3GPU serial1234567890ABC
4PCI bus ID0000:07:00.0
13Driver version535.129.03
14CUDA version12.2
15ECC errors, corrected0
16ECC errors, uncorrected0
17NVLink active links18

Per-GPU dynamic metrics​

Same pattern, <X> from 5 to 12. Values come from the metrics cycler and change every poll. Eight metrics times eight GPUs is 64 dynamic OIDs per device.

XMetricUnit
5GPU utilizationpercent
6VRAM usedMiB
7VRAM totalMiB, constant
8Temperaturedegrees Celsius
9Power drawwatts
10Fan speedpercent
11SM clockMHz
12Memory clockMHz

Standard MIBs​

The profiles also serve system (1.3.6.1.2.1.1), the IF-MIB interface tables (1.3.6.1.2.1.2.2.1, 1.3.6.1.2.1.31.1.1.1) and Host Resources (1.3.6.1.2.1.25). The interface counters are served by the same cycler as every other device type; see SNMP → Dynamic IF-MIB counters.

Design-note provenance​

Every page in this section was originally authored as a design plan under the repository's plans/ directory. Run git log --follow docs/reference/gpu/dcgm.md to see the full history including the original plans/ entries. The two plans for external repositories, the probler protobuf model and the l8parser polling rules, are retired; their nl6-facing content is the collector OID contract above.