n4nAI

Self-hosted inference on 4x A6000 vs hosted API latency

A practitioner's comparison of 4x A6000 self-hosted inference vs API latency: cost model, throughput, ops burden, and when to choose each for production LLMs.

n4n Team4 min read863 words

Audio narration

Coming soon — every post will get a voice note here.

The debate over 4x A6000 self-hosted inference vs API latency isn’t about which is faster in a vacuum—it’s about tail latency, throughput under concurrency, and total cost of ownership when you ship to production. After running both configurations for inference serving, the tradeoffs are sharper than most benchmark charts suggest.

Hardware and Capability Baseline

Four RTX A6000 cards deliver 192 GB of GDDR6 and roughly 48 TFLOPS of FP16 each, connected over PCIe 4.0 (or NVLink on supported boards). That pool fits a 70B parameter model in FP16 (≈140 GB weights) with tensor parallelism, or multiple 7B–13B models serving concurrently with separate contexts.

Hosted APIs expose models you didn’t train or host: closed frontiers, open-weight replicas, and specialized variants. You trade direct memory control for instant access to a catalog. The capability gap shows when you need a specific quantization, a custom fine-tune, or deterministic scheduling—things self-hosting gives for free.

# Self-hosted: launch vLLM across 4 GPUs
from vllm import LLM
llm = LLM(
    model="meta-llama/Llama-3-70B-Instruct",
    tensor_parallel_size=4,
    dtype="half",
    gpu_memory_utilization=0.9
)
# API: point OpenAI client at any compatible gateway
from openai import OpenAI
client = OpenAI(base_url="https://api.provider.dev/v1", api_key="sk-...")
resp = client.chat.completions.create(model="llama-3-70b", messages=[{"role":"user","content":"hi"}])

Price and Cost Model

Buying four A6000s runs $16k–$20k at current street prices, plus a 4U server, redundant PSU, and 1200 W sustained draw. Power and cooling add real opex; at $0.12/kWh, 1.2 kW is ~$1,050/year. Amortize hardware over three years and you get a fixed cost regardless of tokens.

Hosted APIs charge per token. Public pricing for 70B-class endpoints lands around $0.50–$1.00 per million tokens for input, often double for output. At 100M tokens/month, that’s $50–$100/month—cheap at low volume, punishing at scale. The break-even against self-hosted typically appears somewhere between 200M and 1B monthly tokens depending on utilization.

Self-hosting hides a second cost: engineering time. Keeping drivers, CUDA, and inference servers patched is a part-time job. API shifts that to the provider.

Latency and Throughput

Cold-start aside, 4x A6000 self-hosted inference vs API latency diverges most under load. On a quiet network, self-hosted TTFT for a 70B int4 model sits in the 150–350 ms range, with inter-token latency of 25–40 ms at batch size 1. vLLM’s continuous batching pushes aggregate throughput to thousands of tokens/sec across concurrent streams.

API latency includes TLS handshake, provider queueing, and generation. For small models, TTFT can be <200 ms; for large models, 300–800 ms is common under shared load. You don’t control batching, so a noisy neighbor directly degrades your tail latency.

import time, asyncio
async def measure(client, prompt):
    t0 = time.monotonic()
    stream = await client.chat.completions.create(
        model="llama-3-70b",
        messages=[{"role":"user","content":prompt}],
        stream=True
    )
    async for chunk in stream:
        if chunk.choices[0].delta.content:
            ttft = time.monotonic() - t0
            break
    return ttft

Throughput on self-hosted scales with how well you pack requests; API throughput is capped by your tier limit.

Ergonomics and Ops

Self-hosted means you own the full stack: CUDA 12.x, NVIDIA driver matches, inference framework (vLLM, TensorRT-LLM, SGLang), health checks, and rollback. You also build autoscaling—likely by spawning more replicas on spare nodes, not elastic cloud.

API is an HTTP call. No driver conflicts, no OOM kills at 3 a.m. But you must handle provider errors, schema drift, and rate-limit backoff. A gateway such as n4n.ai exposes one OpenAI-compatible endpoint across 240+ models with automatic fallback when a provider is rate-limited, which removes a class of operational toil.

Ecosystem and Tooling

Open-weight models on your A6000 farm integrate with HuggingFace, Axolotl for fine-tuning, and local eval harnesses. You can snapshot exact checkpoints and reproduce runs bit-for-bit (modulo nondeterminism).

API ecosystems lean on provider SDKs, prompt management platforms, and observability that assumes remote calls. You gain rapid access to new model releases—often same day—without downloading 140 GB.

Limits and Failure Modes

A 4x A6000 node fails as a unit: a single GPU ECC error or PSU trip takes down the whole serving instance unless you design multi-node redundancy. VRAM ceiling is fixed; you can’t serve a 180B fp16 model without more boxes.

API limits are rate, quota, and region availability. Provider outage or abrupt deprecation breaks your app unless you abstract the client. Data residency may forbid sending payloads off-prem.

Head-to-Head Summary

Dimension 4x A6000 Self-Hosted Hosted API
Capability Run custom/quantized 70B+ models, full control Instant access to 200+ hosted models, no custom weights
Cost model Capex $16k–$20k + power, flat token cost after Opex per token, $0.50–$1/M typical for 70B class
Latency (TTFT) 150–350 ms local, scales with batch 200–800 ms shared, variable tail
Throughput Thousands tok/s via local batching Bounded by tier, noisy neighbor risk
Ergonomics Driver/infra ownership, high ops Zero GPU ops, client-side backoff
Ecosystem HF, Axolotl, local eval Provider SDKs, fast model rotation
Limits Fixed VRAM, single-node failure Rate limits, outage, data residency

Which to Choose

High-volume internal assistant ( >500M tokens/mo ) Self-hosted 4x A6000 wins on unit economics and keeps data inside your VPC. Budget for one DevOps FTE equivalent.

Latency-sensitive consumer feature with spiky traffic API wins. You avoid provisioning for peak and get global edge termination. Use a fallback gateway to dodge provider outages.

Regulated or air-gapped workloads Self-hosted is the only option. The 4x A6000 box fits in a rack you control; API is non-starter if payloads can’t leave.

Sparse or experimental prototyping API. Don’t buy GPUs to test a prompt chain twice a week. Per-token cost is negligible until you scale.

Fine-tune-centric product Self-hosted: you need the weights anyway, and LoRA serving on local GPUs is trivial.

The 4x A6000 self-hosted inference vs API latency decision reduces to utilization and control. If you can keep the GPUs warm, own the stack. If you need breadth and zero ops, pay the token tax.

Tagsa6000self-hosted-llmgpu-benchmarkapi-latency

Written by

n4n Team

The team building n4n — a single OpenAI-compatible API in front of 240+ models, with automatic fallback, load balancing and pay-per-token metering.

More from n4n Team →

All self-hosted vs api performance posts →