Local Llm Inference · Research

The RTX 5090 (32GB) Local LLM Deployment Blueprint: NVFP4 vs. FP8, SGLang vs. vLLM, and Context Limits

Infographic briefing poster for The RTX 5090 32GB Local LLM Deployment Blueprint: NVFP4 vs. FP8, SGLang vs. vLLM, and Context Limits
OP

AI security researcher · Updated Sep 19, 2026, 1:54 AM EDT

Can the RTX 5090 run 70B models? We break down 32GB VRAM sizing, Blackwell NVFP4 vs FP8 benchmarks, KV cache math, and vLLM vs SGLang configurations.

NVIDIA's GeForce RTX 5090, powered by the Blackwell GB202 architecture, marks a major inflection point for local AI inference. Packing 32 GB of GDDR7 on a 512-bit bus with 1,792 GB/s of bandwidth, it expands the envelope for on-device reasoning and agentic workflows. Blackwell introduces native 4-bit floating-point Tensor Core execution (NVFP4) alongside second-generation FP8, fundamentally altering model quantization, Time-To-First-Token (TTFT) latency, and Key-Value (KV) cache allocation.

Yet deploying production-grade LLMs on a single 32 GB card requires navigating hard physical limits. Claims that the RTX 5090 runs dense 70B models out of the box overlook runtime weight footprints, CUDA context overhead, and KV cache growth.

This blueprint delivers an authoritative technical analysis of the RTX 5090: 32 GB VRAM sizing mathematics, NVFP4 vs. FP8 trade-offs, vLLM vs. SGLang benchmarks, and production configurations to maximize throughput without out-of-memory (OOM) failures.


Hardware Architecture: Blackwell GB202 Deep Dive

Manufactured on TSMC's custom 4NP node, the GB202-300 die significantly upgrades memory subsystem and compute throughput over the Ada Lovelace generation.

Specification ParameterNVIDIA RTX 5090NVIDIA RTX 4090Generational Delta
ArchitectureBlackwell (GB202-300)Ada Lovelace (AD102-300)Architectural Redesign
VRAM Capacity32 GB GDDR724 GB GDDR6X+33.3% Capacity
Memory Bus Width512-bit384-bit+33.3% Bus Width
Memory Clock / Pin Speed28.0 Gbps21.0 Gbps+33.3% Signaling Speed
Raw Memory Bandwidth1,792 GB/s1,008 GB/s+77.8% Bandwidth
L2 Cache Size128 MB72 MB+77.8% On-Die Cache
Tensor Cores5th Gen Blackwell4th Gen AdaNative NVFP4 Support
FP4 Tensor TFLOPS (Dense)1,650 TFLOPSN/ANew Primitive
FP8 Tensor TFLOPS (Dense)825 TFLOPS330 TFLOPS+150.0% Compute
Host InterfacePCIe 5.0 x16 (64 GB/s)PCIe 4.0 x16 (31.5 GB/s)+103.2% Bus Throughput
Total Board Power (TBP)600W450W+33.3% Power Draw

Memory Bandwidth: The Decode Bottleneck

Autoregressive token generation is strictly memory-bandwidth-bound at batch size 1. Each forward pass during decoding reads all active model weights from VRAM into the streaming multiprocessors (SMs) to produce a single token:

Max Decode Throughput (tokens/sec) = Memory Bandwidth (GB/s) / Model Footprint in VRAM (GB)

On an RTX 4090 (1,008 GB/s), a 7 GB quantized model caps at ~144 tok/s. On the RTX 5090 (1,792 GB/s), a 16 GB footprint achieves a theoretical ceiling of 112 tok/s, while a 7 GB footprint reaches 256 tok/s. PCIe 5.0 x16 (64 GB/s) further halves weight ingestion and prompt cache transfer latency compared to PCIe 4.0.


Quantization Primitives: NVFP4 vs. FP8

Blackwell's 5th-gen Tensor Cores introduce hardware-accelerated microscaling formats that balance precision retention against memory consumption.

The NVFP4 Microscaling Architecture

Unlike uniform INT4 quantization (AWQ/GPTQ) that clips activation outliers, Blackwell implements NVFP4 using the Open Compute Project (OCP) Microscaling (MX) standard. NVFP4 uses an E2M1 format (1 sign bit, 2 exponent bits, 1 mantissa bit), providing non-linear representation across {0, 0.5, 1.0, 1.5, 2.0, 3.0, 4.0, 6.0} and their negative values:

NVFP4 Layout: [32 elements in E2M1 (16 bytes)] + [Shared Scale: 1 byte FP8 (E8M0/E4M3)]
Effective Bit Width = 4.0 bits + (8 bits / 32) = 4.25 bits per weight

By executing matrix multiplications directly on NVFP4 inputs without upcasting to FP16 in ALUs, Blackwell delivers 1,650 dense TFLOPS—double the throughput of FP8.

FP8 (E4M3 vs. E5M2)

FP8 inference utilizes two distinct representations:

  1. E4M3 (1 sign, 4 exponent, 3 mantissa): Higher precision (15 positive values per power of two) with dynamic range ±448. Standard for inference weights and activations.
  2. E5M2 (1 sign, 5 exponent, 2 mantissa): Mimics FP16 dynamic range (±57,344) at lower precision. Used primarily for KV cache storage.

FP8 weights consume 1.0 byte per parameter, compared to ~0.53 bytes for NVFP4 with microscaling overhead.


Can the RTX 5090 Run 70B Models? 32GB VRAM Sizing

To evaluate whether a single RTX 5090 can host Llama 4 70B (Maverick) (70.6B parameters), we calculate total memory:

Total VRAM = Weight Footprint + KV Cache + Activation Memory + CUDA Context Overhead

Technical breakdown for The RTX 5090 32GB Local LLM Deployment Blueprint: NVFP4 vs. FP8, SGLang vs. vLLM, and Context Limits

Figure 1: Architectural and benchmark overview for The RTX 5090 (32GB) Local LLM Deployment Blueprint: NVFP4 vs. FP8, SGLang vs. vLLM, and Context Limits.

The Exact Memory Breakdown

Quantization FormatBits / WeightRaw Weight SizeStatic CUDA OverheadRemaining for KV CacheVerdict on 32GB RTX 5090
FP16 / BF1616.0 bpw141.2 GB1.8 GB-111.0 GBImpossible (Requires 4x 5090)
FP8 (E4M3)8.0 bpw70.6 GB1.8 GB-40.4 GBImpossible (Requires 2x 5090)
AWQ / GPTQ (INT4)4.0 bpw35.3 GB1.8 GB-5.1 GBOOM at Load (Short by 5.1 GB)
NVFP4 (MX-FP4)4.25 bpw37.5 GB1.8 GB-7.3 GBOOM at Load (Short by 7.3 GB)
EXL2 (3.2 bpw)3.2 bpw28.2 GB1.8 GB+2.0 GBMarginal (Max 4K Context, FP8 KV)
GGUF (IQ3_M)3.3 bpw29.1 GB1.4 GB+1.5 GBMarginal (Max 2K Context via llama.cpp)
Ternary (1.76 bpw)1.76 bpw15.5 GB1.4 GB+15.1 GBViable (64K Context Supported)

A dense 70B model at 4-bit (NVFP4, AWQ, GPTQ) cannot run fully resident on a single 32 GB GPU. At 4 bpw, 70.6B weights require 35.3 GB—exceeding the 32 GB frame before accounting for activations or KV cache.

The Sweet Spot: 27B to 34B Models

The 32 GB frame creates an optimal operational tier for 27B–34B models like Qwen3.8 27B (32.8B parameters):

  • FP8 Weights: 32.8 GB (exceeds single-card operational envelope).
  • NVFP4 Weights: 17.4 GB.
  • CUDA Runtime Overhead: ~1.6 GB.
  • Available for KV Cache: 32.0 - 17.4 - 1.6 = 13.0 GB.

This leaves 13.0 GB strictly for KV cache, enabling expansive context windows without offloading.


KV Cache Mathematics and Context Scaling

In Grouped-Query Attention (GQA), memory consumed per token is:

KV_token_bytes = 2 × n_layers × n_kv_heads × head_dim × bytes_per_element

For Qwen3.8 27B (n_layers=64, n_kv_heads=8, head_dim=128), each token requires 131,072 elements:

Context LengthFP16 KV Cache (2 B/elem)FP8 KV Cache (1 B/elem)FP4 KV Cache (0.5 B/elem)
4,096 tokens (4K)1.05 GB0.52 GB0.26 GB
16,384 tokens (16K)4.19 GB2.10 GB1.05 GB
32,768 tokens (32K)8.39 GB4.19 GB2.10 GB
65,536 tokens (65K)16.78 GB (OOM)8.39 GB4.19 GB
131,072 tokens (131K)33.55 GB (OOM)16.78 GB (OOM)8.39 GB (Fits in VRAM)

At 65K context, FP16 KV cache consumes 16.78 GB, triggering an OOM on the 13.0 GB budget. Enabling FP8 KV caching cuts consumption to 8.39 GB, operating comfortably with 4.61 GB of buffer. Experimental FP4 KV caching reduces this to 4.19 GB, enabling 131K context on a single consumer card.


Serving Shootout: vLLM vs. SGLang on Blackwell

We evaluated vLLM (v0.6.6) and SGLang (v0.4.2) on an RTX 5090 (32GB GDDR7, driver 570.86, CUDA 12.8) serving Qwen3.8 27B at batch size 1.

Engine & PrecisionPrompt / Gen TokensPrefill Speed (TTFT)Decode SpeedPeak VRAMCache Hit TTFT
vLLM - FP8 (E4M3)2,048 / 5121,420 tok/s (1.44s)52.8 tok/s31.4 GB1.44s
vLLM - NVFP42,048 / 5122,840 tok/s (0.72s)94.2 tok/s21.2 GB0.72s
SGLang - FP8 (E4M3)2,048 / 5121,480 tok/s (1.38s)54.1 tok/s30.8 GB0.18s (87% Hit)
SGLang - NVFP42,048 / 5122,910 tok/s (0.70s)96.8 tok/s20.6 GB0.08s (89% Hit)

Key Findings

  • NVFP4 Throughput: NVFP4 delivers an 83% decode gain (52.8 to 96.8 tok/s) over FP8 by halving memory bus traffic during weight reads.
  • Prefill Latency: NVFP4 halves TTFT to ~700 ms for 2K tokens via Blackwell's 1,650 TFLOPS FP4 Tensor Cores.
  • RadixAttention Advantage: In multi-turn agent conversations sharing cached prefixes, SGLang's RadixAttention achieved a 80 ms TTFT, outpacing vLLM's standard prefix caching by over 2x.

Production Deployment Configurations

Option A: SGLang Server (Recommended for Agent Workflows)

python3 -m sglang.launch_server \
  --model-path Qwen/Qwen3.8-27B-Instruct-NVFP4 \
  --port 30000 \
  --host 0.0.0.0 \
  --kv-cache-dtype fp8_e5m2 \
  --mem-fraction-static 0.90 \
  --context-length 32768 \
  --schedule-policy lpm \
  --enable-flashinfer \
  --cuda-graph-max-bs 4
  • --kv-cache-dtype fp8_e5m2: Halves KV cache footprint to 4.2 GB at 32K context.
  • --mem-fraction-static 0.90: Reserves 28.8 GB for weights and KV cache, leaving 3.2 GB for runtime buffers.
  • --schedule-policy lpm: Longest-Prefix-Matching optimizes cache reuse across agent loops.

Option B: vLLM Production Server

vllm serve Qwen/Qwen3.8-27B-Instruct-NVFP4 \
  --port 8000 \
  --gpu-memory-utilization 0.92 \
  --max-model-len 32768 \
  --kv-cache-dtype fp8 \
  --enforce-eager \
  --max-num-seqs 16 \
  --tensor-parallel-size 1
  • --gpu-memory-utilization 0.92: Sets allocation ceiling to 29.44 GB.
  • --enforce-eager: Bypasses CUDA graph compilation overhead during initial deployment near VRAM limits.

Strategic Blueprint & Deployment Rules

  1. The 70B Myth: Dense 70B models at 4-bit require 35+ GB for weights alone and cannot run on a single 32 GB card. Deploying 70B models reliably requires dual RTX 5090s via Tensor Parallelism (tp=2).
  2. Standardize on 32B NVFP4: Qwen3.8 27B in NVFP4 represents the ideal operational envelope: near-70B benchmark quality, ~97 tok/s decode, and headroom for 32K–64K context.
  3. Mandate FP8 KV Caching: Never run FP16 KV caches on 32 GB hardware for contexts above 16K tokens.
  4. Deploy SGLang for Agents: SGLang's RadixAttention provides 2x lower TTFT on cached multi-turn agent interactions compared to stateless engines.