Skip to content

BuildNot yet confirmed elsewhere1 publisher2 min readPublished

DCGM's per-device default leaves Kubernetes platform teams to meter shared GPUs themselves

NVIDIA's DCGM exporter gives every pod sharing a GPU the same reading, so three pods sum to 300% of one card, The New Stack reports. Platform teams sharing GPUs must build their own per-pod metrics and cost-split rules.

The Engineer · Build desk

How we use AISend a correction

Illustration accompanying DCGM's per-device default leaves Kubernetes platform teams to meter shared GPUs themselves
Generated illustration
Pods sharing a GPU each look like they use it all What GPU readings show when pods share one card, and what the usual utilization metric records, as The New Stack reports.

Three key figures. If three pods share one GPU, all three look like they use the whole thing and the sum is 300% of a GPU. That is 200 percentage points more than the card has. Separately, the usual GPU utilization metric can read 100% while compute is barely doing anything.

Pods sharing a GPU each look like they use it all
FigureValueNoteClaim
Summed use when three pods share one GPU300% of one GPU4
More than the card has200 percentage pts17
Usual GPU utilization metric can read100% utilizationwhile compute is barely doing anything10

What happened

  • With CPU and memory, the kernel already tracks usage per container, so a per-pod number is close to free, according to The New Stack.
  • Kubernetes sees a GPU as a whole-number resource, nvidia.com/gpu: 1, with request and limit required to match and no overcommit at the scheduler.
  • Base CUDA images ship NVIDIA_VISIBLE_DEVICES set to all, so a pod can see every GPU on the box if nothing overrides it.
  • The usual GPU utilization metric records only that a kernel ran during the sample window, so a card can read 100% while its compute sits nearly idle.
  • NVML reports memory held per process, and each process can be traced to its pod and team, though the totals will not quite match the card's.

Why it matters

  • cost Whoever owns chargeback for shared GPUs has to build the attribution before the first invoice can be split, on a line the piece calls the most expensive on the bill.
  • constraint The request-versus-usage rightsizing loop has no input at the start. A team must first work out how much of a card a workload got before it can talk about waste.
  • exposure A bill keyed to what the scheduler allocated inherits any gap between that record and what ran on the hardware, and closing it takes a process-level check.
  • decision Each team has to pick its utilization signal per workload (compute occupancy, memory footprint, bandwidth or power) before it builds dashboards on the headline number.

The trigger is sharing. NVIDIA's DCGM exporter reports at the physical device level by default [2], and the piece says that is fine when one pod has a GPU to itself [13]. Under time-slicing or MPS, the driver keeps one counter set for the entire card. DCGM then has no per-pod data to attribute [5] and hands each sharer the same value [3].

The sum overshoots the card by 200 percentage points [17]. The values still plot nicely on a graph, the piece says, and teams build full dashboards and reports on numbers that are wrong and hard to notice [18].

The scheduler is no help. The fractional sharing that inference needs happens beneath it, through time-slicing or MIG, and Kubernetes requests do not fit neatly onto that sharing [7]. The piece states the general case this way: "Almost every piece of visibility you take for granted on CPU and memory, GPUs make you build yourself." [16]

A bill split on NVML's per-process memory has its own problem. vLLM and frameworks like it claim most of the card as soon as they launch, needed or not [11]. In our view, a split by held memory then charges a vLLM pod for what it reserved at startup. That may be the right policy for a shared cluster. It is still a policy the platform team has to write.

The source is a practitioner explainer on The New Stack, and it reports no measurements. It does not say how much spend ends up misallocated. The 300% case needs pods sharing a card through time-slicing or MPS [3].

What to watch

  • Whether NVIDIA's exporter adds per-pod attribution under time-slicing and MPS, where the piece says the driver exposes one counter set today.
  • Any measured data on how much GPU spend gets misallocated by device-level readings. The New Stack piece offers none.
  • Runtime configurations that honor NVIDIA_VISIBLE_DEVICES from the container, the case where allocation records and hardware use diverge.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence50
Adoption
Insufficient
Hype gap
Insufficient
Incentives
Insufficient
Confidence55
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    With CPU and memory, the kernel already tracks usage per container, so getting a per-pod number is basically free.

    ReportedSupportedSource: The New StackView cited source
  2. [2]

    NVIDIA's DCGM exporter reports at the physical device level by default.

    ReportedSupportedSource: The New StackView cited source
  3. [3]

    When a GPU is shared across pods with time-slicing or MPS, DCGM gives every pod sharing that GPU the same value.

    ReportedSupportedSource: The New StackView cited source

Sources

1 independent publisher whose own reporting we read for this story.

  1. thenewstack.io

    1 article · October 12, 2026

    GPUs on Kubernetes are bring-your-own-everything, starting with the bill

Share your take

Let Clarity write the post for you.

Signed-in readers get a short post drafted on this story in the register they choose — narrative, analytical, or a direct position — editable to the last word before it goes anywhere. The share buttons at the top of this story work without an account.

Topics and entities

Follow any of these and your For You feed starts watching them — no settings page required.

Topics

  • Kubernetes GPU schedulingFollow
  • GPU and CUDA Workload ObservabilityFollow
  • GPU cost attributionFollow

Entities

Loading related stories