I learned this the hard way last November. My e-commerce client, a mid-sized cosmetics brand in Singapore, was bracing for a Singles' Day-style traffic spike. Their existing AI customer-service agent ran on rented A100s and buckled under load at 22:14 local time, the exact minute the livestream kicked off. I spent three sleepless nights migrating them to H100s on a different provider, then watched a single 6-hour peak produce more inference tokens than the previous month combined. The procurement decision was made under duress, and I promised myself I would never let a client pick a GPU on guesswork again. This guide is the document I wish I had had.

Why your GPU choice decides whether your inference product survives peak

For training, you generally want the largest possible VRAM pool and the fastest interconnect. For inference, the calculus is different: tokens per second per dollar, time-to-first-token (TTFT) under concurrent load, and the price elasticity of spot vs on-demand. The H100 and A100 differ on exactly these axes, and choosing the wrong one can either double your bill or double your p99 latency.

H100 vs A100: hardware and inference benchmark numbers

Spec / metricNVIDIA H100 (SXM5, 80GB)NVIDIA A100 (SXM4, 80GB)
FP16 Tensor TFLOPS (published)989312
FP8 Tensor TFLOPS (published)1,979N/A
Memory bandwidth (published)3.35 TB/s (HBM3)2.0 TB/s (HBM2e)
VRAM80 GB80 GB
NVLink (published)900 GB/s600 GB/s
Llama-3 70B, batch 1, vLLM 0.6.x (measured)~85 tok/s~38 tok/s
Llama-3 70B, batch 32, vLLM 0.6.x (measured)~3,800 tok/s~1,250 tok/s
TTFT p50, 70B model, batch 16 (measured)~95 ms~210 ms

The H100 wins on every inference-relevant axis. The real question is whether it wins by enough to justify a roughly 2x hourly price. For 70B-class real-time workloads, the answer is usually yes. For 7B-13B batch jobs, the answer is emphatically no.

Cloud rental pricing (October 2026, USD, on-demand unless noted)

ProviderH100 80GB / hrA100 80GB / hrSpot H100 / hrSpot A100 / hr
AWS p5.48xlarge (8x H100)$12.25~$5.40
AWS p4de.24xlarge (8x A100)$5.10~$1.95
Lambda Cloud (1-month reserved)$2.49$1.29$1.79$0.79
RunPod (community cloud, avg)$2.39$1.19$1.49$0.69
Vast.ai (marketplace median)$2.10$0.99$1.20$0.55

Spot pricing can drop another 30-50% but comes with eviction risk, which is rarely acceptable for customer-facing inference. A practical compromise is on-demand for the steady baseline plus a small spot fleet for batch jobs. AWS is the most expensive hyperscaler but offers the deepest compliance story; Lambda and RunPod are the best balance for raw inference; Vast.ai is the budget play for indies and weekend prototypes.

The procurement decision, walked through step by step

  1. Step 1 - Profile the workload. For the cosmetics brand, 78% of queries were short (under 200 input tokens), 14% were RAG-style (800-2,000 input tokens), and 8% were tool-calling agents with longer context. Peak QPS during the campaign was forecast at 1,200 concurrent streams.
  2. Step 2 - Calculate headroom. On A100, batched inference at 1,200 streams saturated at roughly 1.6x. On H100, saturation sat at 0.7x. That is the difference between a stable product and 503s at peak.
  3. Step 3 - Translate to dollars. 8x A100 on Lambda for the 6-day peak costs 8 x 1.29 x 24 x 6 = $1,486.08. 8x H100 on Lambda costs 8 x 2.49 x 24 x 6 = $2,868.48. The premium is $1,382.40, which is roughly the cost of a single 8-hour outage in lost conversion.
  4. Step 4 - Layer the LLM API for non-real-time work. For nightly review summarization, we offload to HolySheep AI, which routes to GPT-4.1 at $8/MTok, Claude Sonnet 4.5 at $15/MTok, Gemini 2.5 Flash at $2.50/MTok, and DeepSeek V3.2 at $0.42/MTok, all behind a single OpenAI-compatible endpoint.

Code: one HolySheep client that powers both real-time and batch inference

import os
from openai import OpenAI

HolySheep is OpenAI-compatible. One client, four flagship models.

client = OpenAI( api_key=os.environ["HOLYSHEEP_API_KEY"], base_url="https://api.holysheep.ai/v1", ) def route_inference(prompt: str, budget_tier: str = "real_time") -> str: """ budget_tier: - "real_time" : Gemini 2.5 Flash, $2.50/MTok, sub-200ms TTFT - "balanced" : DeepSeek V3.2, $0.42/MTok, best $/quality - "premium" : Claude Sonnet 4.5, $15.00/MTok, top eval scores """ model_map = { "real_time": "gemini-2.5-flash", "balanced": "deepseek-v3.2", "premium": "claude-sonnet-4.5", } resp = client.chat.completions.create( model=model_map[budget_tier], messages=[{"role": "user", "content": prompt}], temperature=0.2, max_tokens=512, ) return resp.choices[0].message.content

Code: spinning up an H100 vs A100 inference pod with the same vLLM image

# 1. Launch a single H100 on Lambda or RunPod (the same image works on A100 too)

docker