# Normalization

> How a published machine price becomes USD per GPU-hour: the eight-GPU node, the arithmetic for each provider, the Google Cloud rebuild, the canonical variant of each GPU, and the 730-hour GPU-month.

Updated 2026-09-06. Canonical: https://gpuquant.com/docs/normalization

Most providers do not publish a price for one GPU for one hour. They publish something else, and each needs its own arithmetic. Normalization is the step that turns what a provider publishes into USD per individual GPU-hour, and every stored observation records which method produced it and keeps the component values, so any figure can be taken apart again.

## The unit: an eight-GPU node

Across every GPU GPUQuant prices, the canonical unit is the **8-GPU SXM or HGX node**. Holding node size constant is what makes the providers comparable: a single-GPU shape carries a different share of host CPU and memory per GPU, so mixing shapes would compare different machines wearing the same GPU name.

## Per provider

**Amazon Web Services**

AWS prices the whole instance. GPUQuant divides the Linux on-demand hourly rate by the GPU count in the AWS price file, which matches the count in the AWS instance specification tables.

**Microsoft Azure**

Azure prices the whole virtual machine and its size name does not encode a GPU count, so GPUQuant divides by a count read from the Microsoft size-series documentation.

**Google Cloud**

Google prices accelerators, vCPU and memory as separate SKUs, so GPUQuant rebuilds the complete machine price from its components before dividing by GPU count. Anything less would compare a bare accelerator against two whole machines.

**Oracle Cloud Infrastructure**

Oracle already prices per GPU-hour and bills its bare-metal GPU shapes as a whole shape, with no separate OCPU or memory SKU for any GPU family. The published figure is therefore already a complete per-GPU number and GPUQuant does not divide it.

## Worked example

If an eight-GPU node costs $24 per hour:

```
$24.00 complete node price ÷ 8 GPUs = $3.00 per GPU-hour
$3.00 × 730 hours              = $2,190 per GPU-month
```

## The Google Cloud rebuild

Google Cloud is the case that needs care. It bills the accelerator, the vCPU and the memory as three separate SKUs, so the accelerator price on its own is not the price of renting the machine. Using it directly would compare a bare GPU against complete machines elsewhere and understate Google Cloud by roughly a tenth. GPUQuant rebuilds the complete machine price from the published components first:

```
a3-highgpu-8g, one region

  8 GPUs   × H100 accelerator SKU
+ 208 vCPU × A3 Instance Core SKU
+ 1872 GB  × A3 Instance Ram SKU
= complete machine price per hour
÷ 8 GPUs
= USD per GPU-hour
```

The A4 family, which carries B200, is the exception: Google publishes a bundled per-GPU slice price and no A4 Core or Ram SKU exists, so the slice price is already a complete per-GPU figure and is used as published.

Google Cloud figures exclude the local SSD attached to A2 and A3 machines, which is billed separately. AWS and Azure include local NVMe in the instance price. The gap is around one percent of the node price.

Oracle is the other exception, in the opposite direction: it already prices per GPU-hour and bills its bare-metal GPU shapes as a whole shape, so its figure is never divided.

## Canonical variants

The same GPU name can cover materially different products, and blending them would be the fastest way to produce a wrong number. GPUQuant defines one canonical variant per model and publishes only that.

**NVIDIA H100 80GB SXM**[series](https://gpuquant.com/gpus/h100)

Included: AWS p5, Azure ND H100 v5 and Google Cloud a3-highgpu-8g. The same silicon in the same NVLink-connected form factor, which is what makes a cross-provider benchmark meaningful.

-   Excluded, H100 NVL 94GB: A PCIe card with 94GB and no NVLink fabric across eight GPUs. Different capacity and different interconnect, so it is a different product rather than a cheaper H100.
-   Excluded, H100 80GB Plus and H100 80GB Mega: Google Cloud prices these above standard H100. They are the same 80GB silicon on a higher networking tier, and including them would give Google Cloud two quotes in the same region.
-   Excluded, Nodes with fewer than eight GPUs: A smaller shape carries a different share of host CPU and memory per GPU. Holding node size constant is what keeps the three providers comparable.

**NVIDIA B200 180GB**[series](https://gpuquant.com/gpus/b200)

Included: AWS p6-b200 and Google Cloud a4-highgpu-8g.

-   Excluded, GB200 NVL: A rack-scale system in which Blackwell GPUs are coupled to Grace CPUs over NVLink and sold as a different machine. Azure publishes GB200 NVL but no standalone eight-GPU B200 node, which is why Azure shows no eligible B200 offering.
-   Excluded, B300, Blackwell Ultra: A later product with more memory per GPU. AWS already lists p6-b300; it is recorded but not part of the v1 model set.

Where a mapping is uncertain, the offering is excluded from every published aggregate and listed on [Coverage](https://gpuquant.com/docs/coverage) with the reason. Nothing is guessed into a benchmark.

## The GPU-month

A GPU-month is 730 hours of continuous access to one GPU. It is a presentation of the same number, not a separate measurement:

```
GPU-month = GPU-hour × 730

$3.20 per GPU-hour  →  $2,336 per GPU-month
```

730 hours is the convention used for compute contracts, including the planned rental-index futures, which is why GPUQuant uses it rather than an actual calendar month length.
