Skip to lesson

NVIDIANVIDIA-Certified Professional: Agentic AI2026-104.5 Optimize deployment costs while ensuring high availability.

Size replicas against measured latency targets

Completed by the knowledge check

Learning objective

Size GPU capacity from target users, latency SLOs, and throughput.

Core idea

A user count is a demand input, not a GPU specification. You need the rate of user tasks, the inference calls each task produces, their token lengths, and the latency the application must deliver. Then measure how much of that workload one serving replica can serve within its service level objectives (SLOs).

Distinguish three quantities: offered requests per second, completed requests per second, and completed requests that satisfy the latency constraints. NVIDIA AIPerf calls the third quantity goodput. A configuration that increases total throughput while pushing most requests outside their deadlines is not additional usable capacity.

This lesson turns demand into a capacity estimate. See 4.5.2 for reducing serving cost and 4.5.3 for the extra capacity needed during failures. Keep those additions visible rather than hiding them inside an unexplained utilization percentage.

How it works

Translate users into a representative load

Start with a workload sheet owned by the application team: active users during the design peak, tasks per user per minute, inference calls per task, input and output token distributions, and burst duration. An agent that performs three sequential calls has different latency behavior from one that launches three calls together, even when both consume the same request count.

For an illustrative average, 600 active users submitting one task every 120 seconds produce five tasks per second. At three model calls per task, the model tier receives 15 requests per second. This calculation estimates demand; it does not establish the concurrency, GPU count, or response time of the deployment.

Preserve long-context and long-output cases in the load. Averaging a short classification and a lengthy report into one artificial prompt hides the requests most likely to exhaust memory or occupy decode capacity. Record tool waits separately: adding GPUs cannot repair an external search service that consumes most of the end-to-end deadline.

Establish a deployable unit

Use NIM’s list-model-profiles for the exact image being evaluated. A model profile includes backend, precision, tensor parallelism (TP), and pipeline parallelism (PP). Set NIM_MODEL_PROFILE to the returned profile ID or complete description when you need the benchmark and deployment to select the same configuration. See 3.4.2 for choosing precision; here the profile determines the unit whose capacity you measure.

NIM distinguishes Compatible, Low memory, and Incompatible profiles. Low memory means weights fit but the full context length exceeds available memory; the listing suggests a reduced --max-model-len. Incompatible means even the weights do not fit, for which higher tensor parallelism or a quantized precision can be alternatives. Reducing context is acceptable only if it still accommodates the application’s required inputs and outputs.

A multi-GPU profile is one serving replica, not several independently available servers. Count its entire TP/PP allocation when converting replica counts into GPUs. A successful container startup establishes neither representative-load memory safety nor sufficient throughput.

Estimate capacity from the whole workflow

NeMo Agent Toolkit’s nat sizing calc estimates cluster size from workflow performance at different concurrency levels. It requires profiler support (nvidia-nat[profiler]) and assumes an isolated GPU cluster; public endpoint variability can make its estimates inaccurate.

Collect measurements with --config_file, --calc_output_dir, a comma-separated --concurrencies range, and --num_passes. NVIDIA recommends at least ten concurrency values for a robust slope-based fit. The output separates P95 LLM Latency from P95 WF Runtime, both in seconds: the workflow runtime includes the orchestration and tool waits that endpoint measurements miss.

Reuse those measurements with --offline_mode, the same --calc_output_dir, --test_gpu_count, --target_workflow_runtime, and --target_users. The test count is the GPUs used during measurement, not the requested cluster size; the runtime target is p95 seconds. An optional --target_llm_latency adds a p95 model-latency target. The JSON output reports gpu_estimate_by_wf_runtime and gpu_estimate_by_llm_latency when their targets apply.

Inspect failed passes before accepting an estimate. A concurrency flagged workflow_interrupted: true is excluded, so an estimate does not demonstrate success at that load. Tool waits also remain part of workflow runtime: a fitted GPU estimate is a planning input that needs a deployment-level load test, not a promise that GPUs accelerate every workflow step.

Find the useful endpoint operating point

Use AIPerf to measure the model tier with the production prompt and output mix; see 4.3.1 for how AIPerf counts good requests. Inspect goodput and good_request_fraction, then retain a sustainable offered rate whose latency attainment and errors satisfy the requirement. This is the per-replica capacity used in the demand calculation.

Pair that endpoint rate with the calculator’s workflow estimate. Neither alone establishes both the model tier’s capacity and the complete task’s response time. Repeat the test at the proposed replica count to expose shared bottlenecks and uneven distribution.

The per-replica capacity and the workflow estimate come from separate measurements that meet in the test at the proposed replica count.

The per-replica capacity and the workflow estimate come from separate measurements that meet in the test at the proposed replica countThe production prompt and output mix and the model profile feed the measurement of the model tier, which yields the per-replica capacity. Separately, the estimate from the whole workflow passes through an inspection of failed passes before it becomes the workflow estimate. Both lanes end in one test at the proposed replica count.Production promptand output mixModel profileMeasure the modeltierPer-replicacapacityEstimate from thewhole workflowInspect failedpassesWorkflowestimateTest at theproposed replicacount

Key distinctions and trade-offs

The sizing inputs answer different questions:

Input or measurementWhat it establishesWhat it does not establish
Target active users and task frequencyOffered business demandModel calls or GPU count without workflow fan-out
Token-length distributionsRepresentative prefill and decode workA universal requests-per-GPU rate
NIM profile compatibilityA feasible model configuration on the hardwareRequired latency under concurrent traffic
nat sizing calcWorkflow-level GPU estimates against p95 runtime and user targetsGuaranteed capacity when failed concurrency passes are excluded
Request throughputCompleted request rateCompliance with latency constraints
Goodput and good_request_fractionUseful completion rate and attainmentEnd-to-end agent quality or tool-service capacity

More concurrency can keep hardware busy but also raises contention and memory demand. More GPUs per replica can make a model deployable, yet consume the budget that could otherwise fund additional replicas. Compare whole configurations under the same workload; a larger allocation is not automatically a better capacity purchase.

Architecture / decision scenario

A pharmaceutical research assistant serves 600 active scientists at peak. Each submits one evidence-summary task every two minutes, and the measured workflow averages three inference calls per task: 15 model requests per second. The application team budgets eight seconds at p95 for a complete task, including retrieval; its model-tier test requires at least 99% of requests to satisfy the assigned inference latency constraints.

In this hypothetical benchmark, a compatible candidate uses two GPUs per replica. At five offered requests per second it achieves 99.5% attainment. At eight it completes seven requests per second but only 80% meet the constraints. The tempting proposal buys two replicas on the strength of the higher throughput figure. That leaves each replica handling about 7.5 requests per second, near the measured failing region.

The platform lead instead starts from three replicas at the measured five-request operating point: six GPUs for steady-state load. The performance engineer profiles the workflow on those six GPUs with nat sizing calc, representative trajectories, and at least ten concurrency values. The team also specifies a peak target of 40 simultaneously executing workflows, distinct from the 600 active scientists who submit intermittently. Offline estimation uses --test_gpu_count 6 --target_workflow_runtime 8 --target_users 40. The engineer compares the workflow estimate with the endpoint-based six-GPU baseline, then tests the proposed deployment against both targets; three sequential calls and retrieval must fit the eight-second workflow budget. This is a starting capacity estimate, not the availability allocation; see 4.5.3 for failure headroom.

If procurement offers only four GPUs, the owner must change a measured input: reduce model-call demand, select another quality-qualified configuration, or revise the service target with the product owner. Relabeling the eight-request run as capacity does not resolve the shortage.

Common exam traps

  • Dividing registered users by GPUs without estimating active task rate and inference fan-out.
  • Using output tokens per second as though every request has the same output length.
  • Accepting high throughput when good_request_fraction misses the target.
  • Counting two GPUs in one model replica as two independent serving replicas.
  • Treating profile compatibility or a short-prompt benchmark as a production capacity guarantee.

What to remember

Translate users into a representative inference workload, fix the NIM profile, and measure a sustainable rate with explicit latency attainment. Convert replicas into the profile’s full GPU allocation, verify the combined deployment, and add failure headroom as a separate decision.

Knowledge check

References