How to Calculate GPU Cluster Utilisation

Learn to calculate GPU cluster utilisation using capacity-weighted metrics, scheduling data and workload context to improve AI infrastructure decisions.
[+] IN THIS BRIEFING
- 01. Calculate GPU Cluster Utilisation From GPU-Hours
- 02. Allocation Is Not Active GPU Utilisation
- 03. Weight for Heterogeneous Hardware
- 04. Build a Reporting Stack That Supports Decisions
- 05. Turn the Number Into an Operating Decision
A GPU estate can appear heavily subscribed while producing little useful compute. Reservations may sit idle, distributed jobs may wait on a slow rank, and a cluster-wide average can conceal a small group of saturated high-memory nodes. To calculate GPU cluster utilisation credibly, operators need to separate scheduler allocation, hardware activity and economically productive work.
For executive planning, this distinction is material. The first measure informs procurement pressure. The second identifies infrastructure waste. The third determines whether an AI platform is converting expensive accelerator capacity into training progress, inference throughput or autonomous execution output.
Calculate GPU Cluster Utilisation From GPU-Hours
The most defensible starting point is capacity-weighted utilisation over a defined reporting period:
`Cluster utilisation = consumed GPU-hours / available GPU-hours × 100`
Available GPU-hours are not simply the fleet size multiplied by calendar time. They should reflect the capacity genuinely available to the intended user population. A 128-GPU cluster observed for 30 days has 92,160 theoretical GPU-hours. If 16 GPUs were reserved for platform engineering, 8 were unavailable for maintenance and 4 failed midway through the month, those exclusions must be recorded rather than silently left in the denominator.
Consumed GPU-hours require an explicit definition. In scheduler terms, this is usually allocated GPU-hours: the sum of GPUs assigned to jobs multiplied by their runtime. It answers a useful question: what proportion of schedulable capacity did tenants hold? It does not answer whether those GPUs were computationally busy.
A practical monthly calculation might look like this. A cluster has 256 GPUs. After planned maintenance and hardware faults, it provides 171,000 usable GPU-hours in a 31-day period. The scheduler records 137,000 allocated GPU-hours. Allocated utilisation is therefore 80.1 per cent. That is a meaningful utilisation figure, but it is not evidence that 80.1 per cent of the fleet delivered active GPU compute.
Use the right denominator
The denominator is where internal reporting often becomes misleading. There are three legitimate bases, each serving a different decision:
- Installed capacity includes every commissioned GPU and is appropriate for finance, depreciation and long-term capacity planning.
- Schedulable capacity excludes failed, drained and permanently reserved devices. It is appropriate for platform operations.
- Tenant-available capacity additionally excludes protected research partitions or sovereign workloads inaccessible to the measured group. It is appropriate for chargeback and business-unit accountability.
Do not compare a numerator based on schedulable GPUs with a denominator based on installed capacity without stating the adjustment. The resulting percentage may be technically calculable but operationally ambiguous.
Allocation Is Not Active GPU Utilisation
GPU telemetry introduces a second layer. Hardware utilisation measures the share of time a device executes kernels, typically sampled over seconds or minutes. A simple fleet activity measure is:
`Active utilisation = Σ(GPU busy time) / Σ(GPU observable time) × 100`
This figure is often much lower than scheduler allocation. That gap is not necessarily waste. Training jobs can spend time on data loading, checkpointing, CPU-side preprocessing, network communication, synchronisation and evaluation. Inference capacity may deliberately retain headroom to meet latency service-level objectives.
The useful diagnostic is the ratio between active and allocated time. If allocated utilisation is 82 per cent and average active utilisation is 46 per cent, the cluster is not automatically underused. The right question is why 36 percentage points of allocated capacity did not execute kernels. For large training runs, inspect data-pipeline stalls, storage throughput, collective communication and straggler behaviour. For serving fleets, inspect request arrival patterns, batch formation and latency targets.
Hardware busy time also has limitations. A GPU can report high utilisation while delivering poor training efficiency because memory bandwidth, interconnect topology or low arithmetic intensity constrains useful work. Conversely, intermittent kernel activity may be economically rational for a latency-sensitive retrieval-augmented generation service. Telemetry must be interpreted against workload class, not treated as a universal productivity score.
Weight for Heterogeneous Hardware
A cluster containing H100s, A100s and older accelerators cannot be assessed accurately by device count alone. One allocated GPU-hour has different economic value, memory capacity and model throughput depending on the SKU, memory configuration and network attachment.
Calculate utilisation by hardware pool first, then aggregate using a stated weighting method. Financial reporting may weight each GPU-hour by internal cost rate. Training capacity planning may weight by measured throughput on a representative model, such as tokens per second at a fixed precision and sequence length. An inference organisation may weight by sustainable requests per second under its latency objective.
This produces a capacity-weighted formulation:
`Weighted utilisation = Σ(consumed GPU-hours × capacity weight) / Σ(available GPU-hours × capacity weight) × 100`
The capacity weight must remain stable throughout a reporting series. Changing from on-demand cloud price to benchmark throughput midway through a quarter can manufacture a trend that does not exist. Keep raw GPU-hour figures alongside the weighted measure so technical and finance teams can reconcile the result.
Account for topology and fragmentation
GPU capacity is not fully fungible. Eight free GPUs distributed across eight hosts cannot satisfy an eight-GPU job requiring high-bandwidth interconnects. Equally, a cluster can show 15 per cent unallocated capacity while being unable to admit its highest-priority distributed workloads.
Track fragmentation alongside utilisation. A useful measure is the percentage of free GPUs that belong to allocatable contiguous sets for the job sizes that matter, such as 8, 32 or 64 GPUs. If utilisation is 85 per cent but large-job admission is poor, the problem may be placement policy, partition design or reservation timing rather than insufficient fleet size.
This is especially relevant where autonomous training, fine-tuning and inference share the same estate. A single general queue maximises apparent flexibility but can impose queueing delays and topology fragmentation. Segmented pools reduce interference but may strand capacity. There is no universally correct design: workload volatility, interconnect architecture and business priority determine the trade-off.
Build a Reporting Stack That Supports Decisions
A credible utilisation report joins scheduler events, node-state history, hardware telemetry and workload metadata. The scheduler supplies requested GPUs, allocation start and end times, queue delay, pre-emption and cancellation records. Node-state data establishes which devices were actually eligible for work. Telemetry supplies utilisation, memory use, power draw, thermal throttling and error rates. Workload metadata identifies training, batch inference, online inference, experimentation and platform operations.
Report at least three horizons: daily for incident response, weekly for queue and placement tuning, and monthly for capacity and cost decisions. Daily figures are noisy, particularly in research estates with bursty experimentation. Monthly figures are stable but can hide repeated periods in which strategic work was blocked.
Percentiles matter as much as averages. A fleet averaging 70 per cent allocated utilisation may be at 95 per cent during business-critical weekday windows and below 40 per cent overnight. Procuring more hardware because of the average would be premature; shifting batch work, applying fair-share scheduling or using elastic capacity may address the binding period at lower cost.
The same discipline applies to utilisation targets. A sustained 95 per cent allocation rate sounds efficient, but may create excessive queue times, prevent rapid incident recovery and leave no headroom for high-priority model releases. Training estates commonly need more slack than stable batch systems. Online inference needs still more where demand spikes and latency commitments are strict.
Turn the Number Into an Operating Decision
The most valuable output is not a single percentage but a decision matrix. High allocation and high hardware activity may justify expansion, provided queue times and workload value support it. High allocation with low activity points towards software, data or network optimisation before new procurement. Low allocation with high queue times usually signals fragmentation, restrictive quotas or poor scheduling policy. Low allocation and low activity demand a harder review of demand forecasting, reservation design and whether dedicated capacity should be consolidated.
For cloud and hybrid estates, compare utilisation with committed-spend coverage and effective cost per useful GPU-hour. An apparently cheap reserved fleet can become expensive if idle allocation persists. Conversely, a higher unit-cost burst pool may be rational when it protects critical launch windows without forcing permanent overbuild.
Treat GPU cluster utilisation as a governed measurement system, not a dashboard ornament. Once allocation, activity, topology and workload value are visible in the same reporting frame, capacity decisions become far less dependent on anecdote and far more aligned with the compute token budgets the business is actually trying to deploy.


