Methods

Choose your workload, size the hardware, and compare costs.

Start here

1. Choose your workload

In Requirements, choose inference, training, or fine-tuning. Search models by name or provider, then select a compatible hardware layout. Start with known capacity if you already have a GPU count.

2. Check the estimate

Review GPU count, placement, and speed. Add data size for training time. Select “Review proposed design” to check the BOM, topology, and racks for all use cases.

3. Compare costs

Open Costs to compare on-premises with AWS IaaS or Token API. Start with the current estimate, refine prices and inputs, then open Review for the assessment and exports.

Keep the workload consistent

Simple and Advanced both include simultaneous requests and an optional requests-per-second target. Enter a rate to keep traffic volume fixed when comparing hardware or serving settings. Leave it blank to use current sizing capacity, recalculated when the model, request lengths, simultaneous requests, hardware or serving settings change. Demand & schedule defaults to 8,760 hours per year and 100% average load. Peak demand sizes hardware; scheduled token volume determines API costs.

Placement is automatic: TP within NVLink domains, PP between domains, and topology-aware EP for experts. Only weight and KV-cache precision need inputs; runtime arithmetic is derived. GPT-OSS on Hopper uses an analytical packed-weight/BF16 profile.

Prefix length and cache-hit requests are separate assumptions. Speculative decoding uses prompt lookup and separates proposal availability from acceptance and can be slower. Both features start off. They can change current sizing capacity, but an explicit request-rate target stays fixed. Provider-billed cache discounts are configured separately for each workload in Costs.

Model coverage

29 catalog configurations have pinned Hugging Face revisions. 21 use checkpoint-header evidence; 8 use configuration and implementation evidence. Performance remains analytical for every model.

Verified model configurations and evidence
Model configurationWeight evidence
nvidia/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-BF16Config and implementation
nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16Config and implementation
Qwen/Qwen3.5-9BConfig and implementation
deepseek-ai/DeepSeek-V4-Pro-0813Config and implementation
Qwen/Qwen3.8-27BCheckpoint headers
Qwen/Qwen3.8-Flash-NextCheckpoint headers
Qwen/Qwen2.5-32B-InstructConfig and implementation
deepseek-ai/DeepSeek-V4-ProConfig and implementation
zai-org/GLM-5.3Checkpoint headers
thinkingmachines/Inkling-SmallCheckpoint headers
meta-llama/Llama-3.2-1BCheckpoint headers
meta-llama/Llama-3.2-3BCheckpoint headers
meta-llama/Llama-3.1-8BCheckpoint headers
meta-llama/Llama-3.3-70B-InstructCheckpoint headers
meta-llama/Llama-3.1-405B-InstructCheckpoint headers
mistralai/Mistral-7B-v0.1Checkpoint headers
mistralai/Mixtral-8x7B-v0.1Checkpoint headers
meta-llama/Llama-4-Scout-17B-16E-InstructCheckpoint headers
meta-llama/Llama-4-Maverick-17B-128E-InstructCheckpoint headers
deepseek-ai/DeepSeek-R1Config and implementation
zai-org/GLM-5.2Checkpoint headers
moonshotai/Kimi-K2.7-CodeConfig and implementation
moonshotai/Kimi-K3Checkpoint headers
thinkingmachines/InklingCheckpoint headers
thinkingmachines/Inkling-NVFP4Checkpoint headers
google/gemma-4-31BCheckpoint headers
nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16Checkpoint headers
openai/gpt-oss-20bCheckpoint headers
openai/gpt-oss-120bCheckpoint headers

Model selection does not guarantee support for every workload. Sizing requires verified architecture and memory rules; unsupported operators, incomplete layouts, and inconsistent tensor counts are shown as limitations. Provisional dimensions do not authorize a trusted deployment or TCO handoff.

Inference uses your selected precision. Training uses BF16 weights; QLoRA uses an NF4 base with BF16 adapters. Add your data size to estimate training time.

Choose weight precision and KV-cache precision. The serving profile derives compute types internally: weight-only quantization and FP8 cache do not imply FP8 attention. The conservative attention profile uses BF16 arithmetic (FP32 for a FP32 model), with cache conversion as needed. FP4 storage includes scales and excludes tensors that retain their required BF16 or FP32 types.

Performance ranges are engineering scenarios, not measured confidence intervals or p95 guarantees. Validate representative workloads before committing to hardware.

How model differences are calculated
  • Dense models count each layer’s weights and attention cache.
  • Mixture-of-experts models store all experts and calculate work from the experts active for each token.
  • Hybrid models count attention cache and recurrent state separately.
  • Vision and audio weights are included; performance follows the text workload you enter.
  • Qwen hybrids include recurrent state, vision weights and, for Flash-Next, sparse indexing and lookup tables. DeepSeek V4 includes compressed history and index/compressor state. Llama 4 uses chunked causal attention. LoRA uses actual target matrix shapes. Unknown layouts remain limited.

Hardware and backend connectivity

Hardware layout filters the GPU choices. GB300 NVL72 locks to GB300; GB200 NVL72 locks to GB200. Other layouts offer compatible GPUs, and changing layouts replaces an incompatible selection automatically.

The single-plane versus dual-plane comparison appears for supported hardware only when the active model instance or training job communicates across NVLink domains over the backend fabric. Multiple trays within one NVLink domain do not trigger it. Independent single-node inference replicas do not trigger it. KV-cache offload and disaggregated inference are not modeled.

Worked examples

Coverage and worked examples for 14 architecture patterns, calculated by the current sizing engine. Unverified layouts show a limitation instead of a deployment estimate.

Dense · grouped-query attention

meta-llama/Llama-3.1-8B

1 active request · 1,024 input + 128 output tokens · BF16 weight setting · FP8 cache setting · B300 GPUs (288 GB each), 8 per server · dual-plane 800 Gbps fabric · no prefix reuse or speculation.

Sizing: 8 GPUs · 1 server

8.03 billion total parameters · 8.03 billion active per token.

Weights: 8.03 billion parameters × 2 bytes = 16.06 GB.

KV state = layers × KV heads × head width × 2 (keys and values) × cached tokens × cache bytes. Split heads across tensor-parallel GPUs.

Busiest GPU: 2.008 GB weights + 0.009437 GB request state + 0.05033 GB workspace = 2.068 GB.

Usable memory = 288 GB × 90% = 259.2 GB per GPU.

Placement: 8 GPUs sharing matrices × 1 pipeline stage × 1 model copy = 8 GPUs. Servers = 8 ÷ 8, rounded up = 1.

Total allocated GPU memory: 16.54 GB.

Latency and throughput

Time to First Token: 1.993 ms. Time per output token: 0.3413 ms.

Each operator group uses the slower of compute time and memory-read time. The engine adds communication and pipeline transfers for prompt processing and each generated token. These are analytical estimates with serving-efficiency assumptions.

Response time = first token + 127 more tokens × time per token.

1.993 + 127 × 0.3413 = 45.33 ms.

Requests Per Second = active requests ÷ response seconds.

1 ÷ 0.04533 = 22.06 requests/s.

Tokens Per Second = 22.06 requests/s × 128 tokens = 2,823 tokens/s.

How processing time is calculated

Text workload · figures rounded for display · workload-sizing-2026-10-09-v17

Understand your sizing results

Each topic shows the formula and a worked example. Percentages mean divide by 100; “round up” means use the next whole number.

Calculation version

workload-sizing-2026-10-09-v17 · vllm-0.29.0 · Reviewed 2026-09-20

Jump to a topic
Architecture evidence

Every catalog model has a pinned publisher config; weight evidence and analytical performance are separate.

Technical details and sources

The evidence table includes 29 pinned configurations: 21 with checkpoint-header evidence; the remaining configurations use configuration and implementation equations.

Sparse models distinguish retained cache from selected reads; recurrent and compressor state keep their implementation precision.

Llama 4 attention restarts at chunk boundaries.

Gemma 4 learned K/V sharing is distinct from materialized serving copies.

Text work includes resident auxiliary weights but excludes image/audio execution.

Training and fine-tuning methods

Full training updates the whole model. LoRA trains small add-ons called adapters; QLoRA also compresses the base model to save memory.

Full training: trainable parameters = all model parameters.

LoRA or QLoRA: adapter parameters = adapter rank × (input width + output width), added up for every selected matrix in every layer.

QLoRA frozen-weight bytes = quantized parameters × (0.5 + 1/64 + 4/16,384) + unquantized parameters × 4.

Example: One 4,096-by-4,096 matrix at rank 16 adds 16 × (4,096 + 4,096) = 131,072 trainable parameters.

Technical details and sources

Training and supervised full fine-tuning use all backbone parameters.

LoRA counts rank × (input + output) for each selected attention or feed-forward matrix, including every targeted expert, excluding embeddings and LM head.

Base-model forward and activation-gradient work remain.

QLoRA includes NF4 double-quantization metadata, unquantized norms/embeddings and BF16 dequantization workspace.

The model list supplies trainable base variants; training precision follows the selected method.

Training memory per GPU

Each GPU needs room for model weights, training updates, and temporary working data.

Full-training state before sharing = parameters × (2 bytes of weights + 4 of gradients + 4 of master weights + 8 of optimizer history).

For full training on ordinary dense layers: DDP keeps 18 bytes per assigned parameter on each copy. FSDP uses 18 ÷ data-sharing GPUs; Megatron uses 6 + (12 ÷ optimizer-sharing GPUs).

Total per GPU = its share of training state + frozen weights + activations + gathered layers + working and communication buffers.

Example: An 8-billion-parameter model needs 8 billion × 18 ÷ 1 billion = 144 GB for training state before sharing it across GPUs. Activations and buffers add to that.

Technical details and sources

The modeled GPU-only profile uses BF16 weights/adapters, FP32 gradients, FP32 master weights and two FP32 AdamW moments.

Frozen base weights have no optimizer or gradient state.

FSDP synchronizes gradients each microbatch and accounts for transient gathered layers in addition to sharded state; Megatron keeps full FP32 main-gradient buffers while sharding optimizer/master states over the dense and expert data groups (6 + 12/d bytes per BF16 parameter for the conventional dense profile).

FlashAttention avoids stored quadratic attention scores.

Checkpointing retains layer inputs plus recomputed-layer activations.

Workspace includes logits, a 2 GB runtime allowance and communication buffers.

Default memory reserve is 10%.

Minimum training hardware

The smallest GPU setup that fits your training job in memory. Add your data size to estimate how long it will take.

Usable memory per GPU = GPU memory × (1 − memory reserve percentage ÷ 100).

A setup fits when the busiest GPU’s total memory is at most its usable memory. Choose the fitting setup with the fewest GPUs.

Example: An 80 GB GPU with a 10% reserve has 80 × 0.90 = 72 GB usable. A setup needing 74 GB on one GPU fails, even if another GPU has spare space.

Technical details and sources

The minimum is the smallest supported active GPU configuration found for this GPU, method, sequence length and effective batch.

The planner searches GPU counts automatically.

The search retains the method and effective batch, varying supported sharding, microbatch and accumulation settings.

Whole physical hosts are reserved separately.

Architecture-specific components supply weight and active-work counts; adapter counts require actual matrix shapes; unsupported target shapes block adapter sizing.

When a whole expert layer cannot be gathered, nested FSDP wraps dense blocks and individual experts separately.

No CPU or NVMe offloading is included.

Training placement

A training job can span several GPUs. The estimate also counts the physical servers needed to hold them.

Training GPUs = tensor-split GPUs × pipeline stages × context-split GPUs × data copies.

Effective batch = examples per microbatch × data copies × accumulation steps.

Installed GPUs = physical servers × GPU slots per server.

Example: 2 tensor-split GPUs × 2 stages × 1 context split × 4 data copies = 16 GPUs. Expert groups divide those GPUs; they do not multiply the total again.

Technical details and sources

DDP replicates state; FSDP shards weights, gradients and optimizer state.

The full-weight Megatron profile has world size TP × PP × CP × DP.

Expert tensor parallelism equals TP in this profile.

EP divides the data group and expert optimizer states use DP/EP; EP is not another world-size multiplier.

TP remains inside an NVLink domain.

Tensor/sequence, pipeline, expert and context communication are included without assuming perfect overlap.

Balanced contiguous pipeline layouts account for uneven dense/expert stages, the busiest-stage compute, and in-flight microbatch activations.

Nondivisible layer counts require an explicit custom Megatron pipeline layout.

Adapter methods use DDP/FSDP; unsupported combinations are rejected.

Training-data size

Enter the total text to train on, including both questions and answers. More data or more passes takes longer.

Raw-text tokens = GB × 1,000,000,000 ÷ bytes per token. The starting assumption is 4 bytes per token.

Data tokens = examples × average tokens per example. Tokens trained = data tokens × passes.

With packing: sequences per pass = data tokens ÷ sequence length, rounded up. Without packing: examples × (tokens per example ÷ sequence length, rounded up).

Steps per pass = sequences ÷ effective batch, rounded up. Processed positions = total steps × effective batch × sequence length.

Example: 1,000,000 tokens ÷ 2,048 = 489 packed sequences after rounding. With batches of 32: 16 steps per pass, or 48 steps for 3 passes.

Technical details and sources

One dataset pass processes the stated data once.

Training defaults to one pass; fine-tuning to three epochs.

Packing forms full sequences; without packing, examples are padded or split at the sequence length.

The final optimizer batch of each pass is padded to preserve its effective batch and pipeline schedule.

Both actual data tokens and padded token positions are reported.

Estimated training time

Estimated time to finish your job. The range accounts for faster and slower hardware use and communication.

Matrix math operations = 2 × active matrix parameters × tokens processed × passes through the matrix. Full training uses 3 passes; adapters use 2, plus 1 when recomputing saved activations. Work is divided across the selected GPU layout.

For each operation: seconds = the larger of (math operations ÷ effective compute speed) and (bytes moved ÷ effective memory speed). Add the operation times.

Pipeline multiplier = (accumulation steps + pipeline stages − 1) ÷ accumulation steps.

Step seconds = (operation seconds × pipeline multiplier + communication seconds) × (1 + overhead percentage ÷ 100).

Job hours = total steps × step seconds ÷ 3,600. GPU-hours = job hours × GPUs used.

Example: 1,000 steps × 36 seconds ÷ 3,600 = 10 hours. On 8 GPUs, that is 10 × 8 = 80 GPU-hours.

Technical details and sources

Forward/backward matrix work uses active operators, with frozen-base activation gradients retained for adapters.

Attention work depends on sequence/window length.

Sequential projection, attention, feed-forward/expert and optimizer operations each use their own compute/HBM bound.

FSDP compute reads gathered matrices; two weight gathers and a gradient reduce-scatter per microbatch are modeled separately.

Hierarchical intra-domain and cross-domain transfers serialize.

Recomputed activations and pipeline bubbles are included.

Central dense BF16 compute efficiency defaults to 35%; scenarios use 0.6× and 1.4× that value.

HBM/link efficiency is 50/65/80%; other job overhead defaults to 10%.

Deadline sizing uses the slow scenario; TCO uses the central duration with its range retained.

Training job costs

Costs compares buying and operating the provisioned hardware. The training run figure allocates a share of that total to one run.

Provisioned cloud compute cost = physical cloud instances × hourly price × 730.5 hours per month × analysis months.

Training run allocation = total cost for that side ÷ (730.5 × analysis months) × estimated run hours.

Checkpoint bytes = trainable parameters × 14 + 1,000,000. Stored checkpoints = checkpoint bytes × copies retained.

Example: A one-year total of $87,660 ÷ 8,766 hours = $10/hour. A 10-hour training run is allocated $100 of that total.

Technical details and sources

The integrated comparison provisions AWS capacity for the full analysis period for every pricing model.

On-premises totals include purchases, implementation and operating costs.

A run allocation is the total for that side divided by analysis hours, multiplied by the central estimated run duration.

It is an allocation of the assessment, not incremental spend or an AWS job-only quote.

Checkpoint storage includes trainable weights, master weights and optimizer state; dataset storage is reviewed separately.

Training is excluded from inference token-API comparisons.

Model weights

The GPU memory needed to store the model. Lower precision uses less memory.

Weight GB = total stored bytes across all model components ÷ 1,000,000,000. For each component, count its parameters × stored bytes per parameter, including format overhead.

16-bit uses 2 bytes; 8-bit uses 1. Packed NVFP4 uses 0.5625 bytes for quantized weights; MXFP4 uses 0.53125. Unquantized components keep their own size.

Example: 8 billion parameters × 2 bytes ÷ 1 billion = 16 GB at 16-bit. At 8-bit the values take 8 GB, plus any format overhead.

Technical details and sources

Pinned Safetensors headers identify shapes, data types, and payload offsets.

Packed values are not logical parameter counts.

Architecture counts are checked against metadata; checkpoint storage and runtime allocations remain separate.

Memory per GPU

Each GPU must fit its model weights, active requests, and working data.

Per-GPU memory = local weights + (cache and fixed state per request × requests on that GPU) + working buffers.

For standard attention: cache bytes = layers on this GPU × KV heads on this GPU × values per head × 2 × bytes per value × retained tokens. The 2 counts keys and values.

Example: 32 layers × 1 KV head × 128 values × 2 × 1 byte × 4,096 tokens = 33,554,432 bytes, or 0.0336 GB per request, before page rounding. Hybrid models add their own state.

Technical details and sources

The selected vLLM profile replicates MLA caches across tensor-parallel ranks and replicates GQA heads when TP exceeds KV heads.

Pipeline stages own their assigned layers.

Local windows, fixed recurrent state, allocator rounding, and replicated components are counted separately.

Runtime headroom

The estimate leaves 10% of GPU memory free and includes space for working data.

Usable GPU memory = installed memory × 0.90 at the default 10% reserve. Working buffers must fit inside that allowance too.

Example: 80 GB × 0.90 = 72 GB usable; 8 GB stays in reserve.

Technical details and sources

The device reserve defaults to 10%.

Prompt working memory scales with a bounded 2,048-token prefill chunk and declared activation dimensions.

The baseline uses eager execution and no prefix caching.

Prefix caching

Reusing the same prompt prefix can speed up repeated requests. The cached text still uses GPU memory.

Reused tokens = input tokens × reusable-prefix percentage ÷ 100, rounded down.

New prompt positions to process = input tokens − reused tokens, with at least one position processed. The full request still counts toward cache memory.

Example: A 4,000-token prompt with 75% reused text processes 4,000 − 3,000 = 1,000 new positions.

Technical details and sources

Prefix caching removes projection work and attention work for query positions already in the cache.

Reusable-prefix length applies on a successful resident hit; request-hit percentage separately mixes warm and cold service time.

Only complete runtime-aligned blocks before the final prompt position are eligible.

Remaining queries attend to the cached prefix.

Full context and memory are provisioned.

Hybrid models reserve an extra recurrent-state snapshot per request at the cached boundary.

Server power

Platform-default server power determines electricity cost and rack capacity.

Default server watts = installed GPUs × watts per GPU + host watts. Your server-power value overrides that total.

Electricity cost = energy in kWh × cooling multiplier (PUE) × price per kWh.

Training GPU energy = GPU kW × (active hours + idle hours × 0.30). Hosts and shared equipment remain on.

Example: A server drawing 10 kW for 730 hours at PUE 1.5 and $0.12/kWh costs 10 × 730 × 1.5 × $0.12 = $1,314 in electricity.

Technical details and sources

System power uses GPU TDP plus platform host overhead, with a GPU-derived or 10 kW fallback when platform details are unavailable.

Training power follows scheduled active hours with a 30% GPU idle-power allowance.

Hosts and shared infrastructure remain powered on.

    GPU and server placement

    The GPU and server count needed to fit your model, serve your workload, and meet any targets you set.

    Inference GPUs = GPUs per deployment × deployment copies.

    Combined GPUs = add the GPU requirements of every use case. Combined servers = add their physical server counts.

    The calculator tests placements and adds copies until memory, request capacity, and enabled speed targets fit.

    Example: 8 inference GPUs + 16 training GPUs + 8 fine-tuning GPUs = 32 GPUs sent to TCO. Each use case keeps its GPU type and server layout.

    Technical details and sources

    Tensor parallelism splits operators, pipeline parallelism assigns layers, and independent replicas serve additional requests.

    For the PP=1 expert-sharing profile, EP=TP×attention-DP.

    Attention workers own their requests and caches; experts are distributed across the pool.

    Independent deployments replicate the whole pool.

    Balanced routing uses whole token/expert assignments on the busiest rank.

    EP is not multiplied into GPU count again.

    TP stays within an NVLink domain; PP stages use separate domains.

    EP pools follow local all-to-all or cross-domain DeepEP transport.

    Whole multi-server replicas retain their reservations in TCO.

    The search compares supported TP/PP layouts and PP=1 expert-sharing layouts.

    Communication follows the actual NVLink domains and physical servers.

    Capacity-only sizing minimizes purchased physical servers that fit the model and all concurrent requests at the configured maximum context, including memory reserve and any explicit replica admission cap.

    With throughput or service-time targets enabled, it minimizes physical servers satisfying capacity and every enabled target together.

    Automatic sizing evaluates at most 4,096 active requests per instance, a planning search limit rather than a measured runtime limit.

    A batching-throughput preference never adds hardware.

    Performance breaks ties between equal-size deployments; it remains an estimate rather than a guarantee.

    Minimum-fit, active and purchased GPUs are separate.

    Time to First Token

    Prompt processing + GPU communication + execution overhead, until the first output token. Continuous batching starts available requests without waiting to fill the batch. More active requests can increase GPU processing time.

    For each prompt operation: time = the slower of (math operations ÷ compute speed) and (bytes read ÷ memory speed).

    Time to First Token = operation times added together + GPU communication after overlap + execution overhead.

    Use the active requests and uncached prompt tokens. Empty batch slots add no waiting time.

    Example: If prompt operations take 12 ms and communication plus overhead adds 3 ms, Time to First Token = 15 ms. A limit of 32 requests does not require 32 arrivals before processing starts.

    Technical details and sources

    Continuous batching admits available requests without waiting for the replica admission limit.

    The estimate charges prompt compute, memory reads, GPU communication and execution overhead for the active requests assigned to a replica.

    A cached prefix skips its reusable prompt work.

    Active requests sharing the GPU can increase processing time; unused request slots add no batch-fill delay.

    This is a service-time estimate for the active cohort, not a simulation of request arrivals or chunk-by-chunk scheduling.

    Admission queueing and network transit are additional.

    Time per output token

    Average time to generate each token after the first. Lower values mean a faster response stream.

    Time per output token = decode-step time ÷ expected output tokens produced by that step.

    Without speculation, a decode step produces one output token per active request.

    Example: A 10 ms step producing one token per request gives 10 ms per output token, or 100 tokens/s per stream while decoding. Total throughput also includes prompt processing.

    Technical details and sources

    Each decode step charges the active requests’ model computation, memory reads and GPU communication.

    Prompt-lookup speculation charges lookup, target verification and acceptance/rollback work.

    Proposal availability mixes fallback and verification cycles; finite-response expectations reduce proposal depth near the output limit.

    TPOT is amortized and speculative tokens may arrive in bursts, whereas Tokens Per Second counts output across all active requests and replicas.

    Response time

    Time to read the prompt and generate the response. Waiting in a queue adds extra time.

    Response seconds = first-token seconds + (output tokens − 1) × seconds per later token.

    Example: 1 second + (10 − 1) × 0.01 seconds = 1.09 seconds for a 10-token response.

    Technical details and sources

    Sequential projection, attention, feed-forward/expert, output and replicated operations each contribute their own maximum of compute time and HBM time.

    Communication and scheduling overhead follow.

    Pipeline stages are sequential for an individual request.

    Time to first token includes prompt processing; response time adds the remaining generation steps.

    Tokens Per Second

    Output tokens generated per second across all active requests and replicas. Includes the time spent processing prompts.

    Requests per second = active requests ÷ response seconds, calculated for each group and added together.

    Output tokens per second = requests per second × output tokens per request.

    Example: 10 active requests ÷ 2 seconds = 5 requests/second. At 100 output tokens each: 5 × 100 = 500 tokens/second.

    Technical details and sources

    Actual requests are divided into integer cohorts across replicas, and cohort completion rates are summed.

    Idle replicas contribute no workload throughput.

    Output tokens/sec equals completed requests/sec times output length.

    Decode-only speed remains a diagnostic in Details.

    Mixture of experts

    These models use a subset of their experts for each token, but all loaded experts still need memory.

    Active expert parameters per token = all expert parameters × experts selected per token ÷ total experts.

    Active model parameters = active expert parameters + shared parameters. Weight memory still includes all loaded experts.

    Example: 160 billion expert parameters × 2 selected ÷ 8 experts = 40 billion active expert parameters per token, plus the shared part of the model.

    Technical details and sources

    Shared weights and routed expert weights are separate.

    For E experts, k selected per token, and B independent tokens, the central scenario expects E × (1 − (1 − k/E)^B) distinct experts.

    The central scenario uses uniform independent routing; conservative routing reads all experts and includes imbalance.

    Planning scenarios

    The range shows how results change when hardware and software run more or less efficiently.

    Inference: fast efficiency = configured efficiency × 1.2, capped at the hardware limit. Slow efficiency = configured efficiency × 0.7.

    Training: fast compute efficiency = configured efficiency × 1.4, capped at 80%. Slow compute efficiency = configured efficiency × 0.6.

    The calculator reruns the timing formulas at each efficiency; it does not add a fixed percentage to the final time.

    Example: At 35% training compute efficiency, the fast case uses 49% and the slow case uses 21%.

    Technical details and sources

    Using the configured compute and memory efficiencies, the optimistic scenario uses 1.2× efficiency, capped at peak; conservative uses 0.7× and serial communication with less expert reuse.

    These are uncalibrated engineering scenarios, not statistical confidence intervals.

    Recommendations use conservative service times and central sustainable throughput with workload headroom.

      Hardware limits

      Estimates use the selected GPU’s memory, compute speed, and connection bandwidth.

      Effective compute speed = GPU compute speed × compute efficiency.

      Effective memory speed = GPU memory bandwidth × memory efficiency.

      Compute seconds = operation count ÷ effective compute speed. Memory seconds = bytes moved ÷ effective memory speed.

      Example: 100 trillion operations ÷ (1,000 trillion operations/second × 50%) = 0.2 seconds of compute time.

      Technical details and sources

      Vendor sparse throughput is not a dense compute limit.

      Bidirectional link totals are converted to one-way bandwidth for transfers.

      NIC bandwidth and application efficiency follow the selected deployment settings.

      Performance sizing requires a complete hardware profile.

      Model support

      Available estimates depend on the model’s architecture and selected hardware.

      Technical details and sources

      The Standard profile uses vLLM 0.29.0 and explicitly pinned newer architecture implementations for text generation, eager execution, chunked prefill, and GPU-resident weights and caches.

      Prefix caching and prompt-lookup speculative decoding are optional.

      Speculation verifies the proposed tokens plus one new token together; expected output per pass is 1 + acceptance + acceptance squared, through the proposal count.

      Cache reserves include proposed tokens and architecture-specific recurrent rollback/snapshot envelopes.

      Index rings retain their own allocation.

      These buffer reserves and kernel efficiencies are analytical assumptions; no matching GPU measurements were fitted.

      CUDA graph pools and disaggregated serving are not modeled.

      Request lengths

      Count the prompt, conversation history, and generated response. Longer requests need more memory.

      Tokens held per request = maximum input tokens + maximum output tokens. If maxima are blank, use the typical lengths.

      Example: 4,096 input tokens + 1,024 output tokens = 5,120 token positions to allow for in memory.

      Technical details and sources

      Without maximum lengths, the calculation assumes the stated lengths for every active request.

      A publisher-advertised extended context is used only with a verified runtime profile; changing positional limits alone does not establish supported behavior.

      Vector storage and replicas

      Storage includes your vectors, search index, and replicas. Backups add separate storage.

      Vector bytes = vector count × dimensions × bytes per value × compression ratio, when compression is enabled.

      Storage = (vector bytes + index bytes + metadata bytes) × (replicas + backup copies).

      Vector DB displayed GB = bytes ÷ 1,073,741,824.

      With backups enabled, backup copies = retention days ÷ 30, rounded up, with at least one copy.

      Example: 1 million vectors × 1,536 dimensions × 4 bytes = 6,144,000,000 bytes, displayed as 5.72 GB in Vector DB. Two replicas use 11.44 GB before index and metadata.

      Technical details and sources

      HNSW includes 2M base-layer links plus an expected upper-layer allowance, vector IDs, offsets, and levels.

      Replicas occupy separate failure domains.

      CPU count and query performance are unavailable without an engine-specific model.

      Backup storage is separate from serving replicas.

      What goes into the cost?

      Choose AWS IaaS or Token API and the analysis period above the totals. “Plan shown” selects Buy now or Full build-out; each is a complete purchase snapshot, not a phased buying schedule.

      • Trace a number: Select a category or total to open its cost ledger. Expand a row for quantity, rate, calculation, and source. “Why the difference” shows which categories drive the gap.
      • Refine the estimate: Use Inputs for operating costs, AWS settings, and per-workload API pricing. Use Cost budget to switch each category between Assumed and Override; Component pricing in Costs holds your quotes.
      • Review: The Review page uses the same comparison and ledgers, with links back to Costs for edits.
      Estimates and cost coverage

      Once a valid design is available, totals and the estimated difference use priced items and available planning defaults. Unpriced components retain a category allowance; an unknown price is not a confirmed zero. Adding quotes improves the comparison without hiding the numbers already available.

      A fully assumed budget shows “Baseline assumptions” instead of a percentage. Once a price or operating override is active, the coverage bar weights completeness by cost importance, not the number of fields. Compute has the greatest influence on on-premises coverage, followed by networking. “Improve” opens the missing inputs in impact order. An explicit zero or valid included price counts as complete.

      Coverage measures modeled cost inputs, not engineering validation or quote certainty. AWS reference prices can support an estimate while the requested quotes are still missing.

      On-premises

      The three-year baseline uses $800,000 per complete HGX server or $7,000,000 per complete GB300 NVL72 rack. Compute is 60% of that baseline; facilities and energy 15%, switches 5%, optics and cabling 5%, staffing 5%, data platform (including VAST software) 5%, platform software 2.5%, and implementation 2.5%. These are planning assumptions, not vendor prices or measured industry averages.

      Assumed / Override pills apply independently by category. Entered prices replace a quantity-weighted share of the matching allowance, with GPU servers weighted 100:1 against control appliances; unpriced items retain the rest. No unit price is inferred for a Cisco SKU. Component pricing combines repeated SKUs and sums their quantities; one entered price applies across all matching BOM locations. The Design BOM retains its location breakdowns. A category quote can replace the whole allowance instead; software category quotes are annual. Switching back to Assumed preserves your entered values. A lower quoted server price does not reduce other allowances. Purchases and implementation are paid once; operating allowances scale from the three-year baseline. Energy and facilities split their combined allowance 2:1 until overridden.

      • Hardware: Conventional servers use per-server prices. NVL72 uses one integrated price per complete rack, including internal switches, power and cooling/CDUs. External frontend/backend networks and software remain separate.
      • Power: Electricity uses the equipment’s operating power, PUE, and 730.5 hours per month for the selected provisioned snapshot.
      • Space: Whole devices are packed into separate compute, network, storage and management racks under space and power limits. NVL72 retains its complete rack and internal power requirements. Zero electricity or rack prices are valid.
      • Operations: Platform engineers, maintenance, implementation, and selected software or services. There is no separate network-engineer charge.

      Upfront hardware cost = complete NVL72 racks × integrated rack price + conventional servers × server price + external network and storage purchases. Included rack components are not charged again.

      Total on-premises cost = upfront equipment + implementation + electricity + rack rent + platform staff + maintenance + software and services over the chosen period.

      Annual on-premises staff cost = platform engineers × annual salary × 1.30 for benefits.

      Annual maintenance = upfront hardware cost × maintenance percentage ÷ 100.

      Example: 6 HGX servers × $800,000 ÷ 0.60 = $8,000,000 baseline three-year TCO.

      Operating defaults

      Optional operating refinements start at $0.12/kWh, PUE 1.4, and $1,000 per rack-month. Base support is assumed bundled; a separate maintenance contract applies only when overridden. Platform staffing is one engineer per 256 GPUs, rounded up, with a minimum of two for a nonempty design. Salary starts at $180,000 per year, plus 30% benefits. These inputs are editable; reset controls restore defaults.

      AWS staffing starts at one engineer per 512 GPUs per cluster, rounded up, with a minimum of one. Salary and benefits use the same defaults. Implementation starts with a planning allowance; an entered amount replaces it.

      Cloud IaaS

      AWS matches provisioned GPU capacity for the selected snapshot. Compute runs for the full analysis period, including training designs; lower API demand does not reduce that reservation. GPU capacity matching does not establish equivalent application performance.

      Rates and storage

      On-Demand and Spot rates load for the selected region and instance. Reserved options currently apply editable planning discounts to On-Demand: 40% for one year and 60% for three years. These are not instance-specific Reserved quotes. Manual rates override the estimate.

      While a quote is unavailable, compute uses a B300 On-Demand reference scaled by GPU count, with the selected Reserved discount. Spot uses the On-Demand reference until a Spot quote arrives. Storage also has planning rates until regional quotes are available. Rate sources distinguish these estimates from fetched or manual prices.

      Storage rates cover EBS gp3, S3 Standard, FSx for Lustre Scratch SSD, and EFS Regional Standard. Matching VAST storage sizes FSx from usable capacity; it does not match throughput or protocol. EBS is a separate editable GiB capacity input; an EC2 selection does not currently populate it automatically. Local instance storage is not added as EBS.

      NVL72 cloud quantities cover 72 GPUs per rack: 18 four-GPU P6e instances, or nine eight-GPU P6 instances where mapped. The on-premises integrated rack includes internal switches, power, and cooling; external networking remains separate.

      Compute cost = instances × price per instance-hour × billed hours.

      Storage cost = provisioned GiB × regional tiered price per GiB-month × months. TiB inputs convert to GiB before pricing.

      Cloud total = compute + storage + transfer + support + staff + selected services. Custom support is a percentage of discounted services; AWS Enterprise uses monthly gross charges, published tiers and its minimum. Account scope is explicit. The selected hourly rate remains constant throughout the analysis period; the estimate does not model a purchase contract or commitment outside that period. Spot interruptions and future price changes are not modeled.

      Example: 2 instances × $8/hour × 730.5 hours = $11,688 in monthly compute. Training run costs allocate a share of the provisioned total by run hours; they are not a job-only AWS bill.

      Token API

      For inference, compare paying per input and output token. Choose the API provider and model for each workload; the comparison lists them beside the on-premises model. Each use case’s typical prompt length selects its pricing tier, including long-context output rates. Expand “Rate basis & source” to inspect the applied tier. Enable Fast mode where available, or Priority processing for xAI; the published speed premium applies to the selected context tier before the cache blend. Split mixed short and long requests into separate profiles. Each workload has its own cached-input toggle and cache-hit rate beneath its model selection. Custom cached-input rates default to the regular input price until you supply a quote. Token API compares inference workloads only, excluding training and fine-tuning from both sides. Shared on-premises costs are allocated by reserved server or rack capacity; shared operating costs follow installed GPU capacity. AWS IaaS compares all workloads. Training-only plans can use AWS IaaS.

      Request rate = your explicit requests-per-second target, or current modeled completed requests per second × utilization limit. Default limits are 65% for Interactive, 75% for Mixed and 85% for Batch; Advanced can override them.

      Current modeled capacity includes prompt processing and generation. Per replica group: response seconds = (first-token milliseconds + (output length − 1) × milliseconds per output token) ÷ 1,000; completed requests per second = simultaneous requests in the group ÷ response seconds. Add the groups for cluster capacity.

      Requests over the period = request rate × operating hours per year × 3,600 × years × average load percentage ÷ 100.

      Output tokens = requests × typical output length. Input tokens = requests × typical input length.

      Blended input rate = uncached input share × input rate + cache-hit share × cached rate + cache-write share × write rate. Shares add to 1; all prices are per million tokens.

      API total = input tokens ÷ 1 million × blended input rate + output tokens ÷ 1 million × output rate.

      Effective cost per million output tokens = total cost ÷ output tokens × 1 million. Use full on-premises TCO for one side and API total for the other, with the same output-token volume.

      For one API model: effective cost per million output tokens = output rate + (typical input length ÷ typical output length) × blended input rate. For multiple use cases, add costs and output tokens first, then divide.

      Example: With 1,024 input and 256 output tokens per request, the input/output ratio is 4. At example rates of $3/million input and $15/million output with no caching: effective API cost = $15 + 4 × $3 = $27 per million output tokens. At 10 billion output tokens, API total is $270,000. If full on-premises TCO for that same volume and period is $100,000, its effective cost is $10 per million output tokens. Cost per individual output token is the per-million figure divided by 1 million.

      Known-capacity plans

      Without workload sizing, Token API uses a full-context coding estimate: GLM-5.3, 872,000 input and 128,000 output tokens per request, FP4 weights, and 8-bit KV cache. It assumes continuous use with no latency target, prefix reuse, or speculative decoding. The model comparison identifies this basis above the cost worksheet; expand Capacity details to inspect it. Comparing models does not compare their quality.

      Utilization headroom and average load are separate: headroom limits peak serving capacity; average load reduces billed token volume during operating hours. Lower usage does not reduce the provisioned on-premises hardware purchase. Zero output volume has no defined cost per output token.

      Financial comparison

      Estimated payback is the first month when avoided cloud costs cover upfront purchases and implementation after on-premises operating costs. Cash flow separates purchases from recurring payments, including license renewals. NPV discounts future costs at 8% per year. Costs and Review use the current assessment; estimates remain marked when pricing is incomplete.

      Monthly savings = that month’s cloud cost − that month’s on-premises operating cost.

      Break-even = the first month when cumulative monthly savings cover upfront purchases and implementation.

      For NPV, divide each month’s savings by about 1.006434 once for each month in the future, add the results, then subtract upfront purchases and implementation. This uses the default 8% yearly discount rate.

      Example: With $120,000 upfront and steady savings of $5,000 per month: $120,000 ÷ $5,000 = 24 months to break even. Annual and term-based licenses follow their payment months; cloud costs are spread across the period.

      Integrated infrastructure planning

      Requirements accepts known capacity or workload-derived reservations. Compatible workloads can share infrastructure while reserving compute concurrently. Sizing builds the BOM automatically for Design and Costs.

      Design contains BOM configuration, topology and connections, and rack layout. Port allocations are planning values, not live telemetry; generated wiring is not vendor qualification.

      Vera Rubin NVL72 is preliminary topology planning only, in complete 14-rack scale units. Its TCO and procurement exports are disabled; it is distinct from the NVL144 GenAI preview.

      Edit component prices and operating assumptions in Costs. Missing prices reduce coverage while available costs remain visible. AWS compares full provisioned capacity for Buy now or Full build-out; review any approximate hardware mapping.

      Facilities inventory comes from the BOM. Enter missing operating power and dimensions, arrange racks, then apply a valid layout. Without an applied layout, TCO uses a labeled automatic estimate. Rack motion never silently changes cable lengths.

      Vector DB Sizing is retired. Existing saved results remain in the read-only legacy report. Integrated plans start fresh and use a separate storage format.

      Save, share, and export

      Your work saves automatically in this browser. Sizing runs in the background; changing inputs replaces the pending calculation. Public model information is cached for one hour. An uncached lookup can take up to a minute; models loaded with your own access token are kept out of the shared cache. Use Share plan or Copy plan link to save a restorable plan, or download a planning PDF or BOM workbook from Share. Changes automatically recalculate infrastructure. Review and exports use the current assessment; incomplete estimates retain their missing-cost status.