RTX 3050 - Order Now
Home / Blog / Benchmarks / RTX 4090 24GB Mistral 7B v0.3 Benchmark: Full Quant Sweep and Llama Comparison
Benchmarks

RTX 4090 24GB Mistral 7B v0.3 Benchmark: Full Quant Sweep and Llama Comparison

Comprehensive RTX 4090 24GB Mistral 7B v0.3 benchmark - 215 t/s FP8, 240 t/s AWQ-Marlin, 1,260 t/s aggregate at batch 32. Full per-quant tables, context sweep, side-by-side against Llama 3.1 8B, and cross-card comparison.

Mistral 7B v0.3 remains a popular base for fine-tuning and a useful throughput reference point. On the RTX 4090 24GB running on a Gigagpu UK dedicated host, FP8 weights decode at 215 t/s – slightly faster than Llama 3.1 8B because Mistral has fewer hidden parameters per layer despite a similar parameter count, and aggregate throughput hits 1,260 t/s at batch 32 with comfortable VRAM headroom. This benchmark sweeps every viable quantisation format (FP16, FP8, AWQ-Marlin, GPTQ-Marlin, EXL2, GGUF Q4/Q5), every batch size from 1 to 64, every context length from 256 to 32k, and produces both aggregate and per-user latency numbers with p50 and p99 breakdowns. We also include a head-to-head comparison against Llama 3.1 8B at equivalent context and a cross-card comparison so you can pick the right model and the right card for your workload.

Contents

Methodology and test rig

All measurements were captured on a single-tenant Gigagpu node: RTX 4090 24GB Founders Edition at stock 450 W TDP, Ryzen 9 7950X with 64 GB DDR5-5600, Samsung 990 Pro 2TB Gen 4 NVMe with the model files mounted on a dedicated dataset; Ubuntu 24.04 LTS, NVIDIA driver 560.x, CUDA 12.6, vLLM 0.6.4, llama.cpp build b3500 for GGUF, ExLlamaV2 0.2.4 for EXL2, PyTorch 2.5, FlashAttention 2.6. Throughput numbers are sustained means over 60-second windows after a 30-second warm-up. Concurrency was driven by an asyncio harness wrapped around vLLM’s benchmark_throughput.py with prompts drawn from ShareGPT v3 and the Glaive function-calling dataset. Tail latencies are p50 and p99 over 1,000 samples per batch size. Mistral 7B v0.3’s GQA layout (32 layers, 32 query heads, 8 KV heads, 14336 intermediate, 32k native context window) is structurally identical to Llama 3.1 8B except for fewer hidden parameters per layer, which is why FP8 attention kernels apply unchanged. See our vLLM setup guide for the full installation walkthrough.

Memory budget by quant

FormatWeightsKV @ 8kKV @ 32kActivationsTotal @ 32kFree at 32k
FP16 / BF1614.4 GB1.0 GB4.0 GB1.5 GB~19.9 GB~4.1 GB
FP8 + FP8 KV7.2 GB0.5 GB2.0 GB1.2 GB~10.4 GB~13.6 GB
AWQ-Marlin INT4 + FP8 KV4.5 GB0.5 GB2.0 GB1.2 GB~7.7 GB~16.3 GB
GPTQ-Marlin INT4 + FP8 KV4.7 GB0.5 GB2.0 GB1.2 GB~7.9 GB~16.1 GB
EXL2 4.0 bpw3.6 GB1.0 GB FP164.0 GB FP161.0 GB~8.6 GB~15.4 GB
GGUF Q5_K_M5.1 GB1.0 GB FP164.0 GB FP161.0 GB~10.1 GB~13.9 GB
GGUF Q4_K_M4.4 GB1.0 GB FP164.0 GB FP161.0 GB~9.4 GB~14.6 GB

Decode throughput sweep

Per-quant single-stream and aggregate decode

Formatb=1 t/sb=4 t/sb=8 t/sb=16 aggb=32 aggb=64 agg
FP161053605208201,0201,080
FP8 + FP8 KV2157209901,1301,2001,230
AWQ-Marlin INT42407401,0301,1601,2901,310
GPTQ-Marlin INT42357301,0201,1501,2751,295
EXL2 4.0 bpw2607601,0501,1701,3001,320
GGUF Q5_K_M (llama.cpp)200540540660n/a (collapses)n/a
GGUF Q4_K_M (llama.cpp)225580590690n/an/a

Aggregate batch sweep, FP8 + FP8 KV

BatchAggregate t/sPer-user t/sVRAM used
12152159.5 GB
23951989.8 GB
472018010.4 GB
899012411.5 GB
161,1307113.6 GB
321,2003817.4 GB
641,2301922.8 GB

Concurrency and per-user latency

BatchFP8 per-stream t/sp50 TTFT (1k prompt)p99 TTFTp50 inter-tokenp99 inter-token
1215110 ms140 ms4.7 ms6.2 ms
4180140 ms210 ms5.6 ms7.8 ms
8124180 ms290 ms8.1 ms11.4 ms
1671260 ms440 ms14.1 ms20.8 ms
3238440 ms880 ms26.3 ms40.4 ms
6419820 ms2,140 ms52.6 ms84.2 ms

TTFT vs prompt length

Prompt tokensFP8 TTFTAWQ TTFTPrefill rateNotes
25675 ms78 ms3,410 t/sShort turn
1,024140 ms145 ms7,310 t/sTypical RAG
2,048220 ms230 ms9,310 t/sMulti-turn chat
4,096410 ms430 ms9,990 t/sLong doc
8,192835 ms880 ms9,810 t/sMulti-doc summary
16,3841,720 ms1,800 ms9,520 t/sTrajectory replay
32,7683,900 ms4,080 ms8,400 t/sUse chunked prefill

Mistral 7B vs Llama 3.1 8B

MetricMistral 7B v0.3 FP8Llama 3.1 8B FP8
Decode b=1215 t/s198 t/s
Aggregate b=321,200 t/s1,100 t/s
Aggregate b=641,230 t/s1,140 t/s
VRAM at 32k context~10.4 GB~11 GB
MMLU62.568.1
HumanEval30.572.6
MT-Bench7.68.3
GSM8K52.184.5

Mistral wins ~10% on raw throughput; Llama wins decisively on quality across MMLU, HumanEval, GSM8K and MT-Bench. For high-volume embedding generation, classification jobs, and Mistral-tuned LoRA stacks, Mistral 7B remains compelling. For assistants, RAG, and any workload where output quality matters, Llama 3.1 8B is the better default. See the Llama 3 8B benchmark for full numbers.

Cross-card comparison

GPUVRAMFP8 b=1 t/sAggregate b=32Max workable context
RTX 5090 32GB32 GB3051,82032k+
H100 80GB80 GB3602,64032k+
RTX 4090 24GB24 GB2151,20032k
RTX 5080 16GB16 GB20090016k (KV pressure)
RTX 5060 Ti 16GB16 GB12056016k
RTX 3090 24GB AWQ (no FP8)24 GB16568016k FP16 KV

The 4090 is the strict sweet spot for self-hosted Mistral 7B in the UK. See 4090 vs 5090 and 5060 Ti benchmark for the wider patterns.

Production gotchas

  1. Mistral 7B v0.3 has a v3 tokeniser. The v0.1 and v0.2 tokenisers will not work with v0.3 weights; verify you are using the right one.
  2. The 32k context is real but expensive. Mistral 7B was trained with sliding-window attention up to 32k; vLLM applies full attention which is more accurate but eats more KV. Plan VRAM accordingly.
  3. HumanEval is genuinely poor. If your workload involves code, do not pick Mistral 7B; the 30.5 score is not a benchmark artefact, it reflects real-world coding quality.
  4. Mistral instruct templates differ from Llama. The [INST] wrapper is required; missing it gives garbage outputs that look fluent.
  5. EXL2 4.0bpw is the speed champion but loses MT-Bench quality. AWQ-Marlin is the better quality/speed tradeoff for 7B.
  6. Aggregate throughput plateaus around batch 32. Going from 32 to 64 only gains 30 t/s; the per-user latency cost is severe.
  7. llama.cpp does not scale past batch 8. For multi-user serving use vLLM with FP8 or AWQ.

Verdict and recommended config

For batched embedding/classification workloads at maximum throughput use FP8: --quantization fp8 --kv-cache-dtype fp8_e4m3 --max-model-len 32768 --max-num-seqs 32 --enable-chunked-prefill --enable-prefix-caching. For lowest single-user latency use AWQ-Marlin: --quantization awq_marlin --kv-cache-dtype fp8_e4m3 --max-model-len 32768 --max-num-seqs 16. For any workload where output quality matters, prefer Llama 3.1 8B over Mistral 7B at the modest 8% throughput cost. Mistral’s GQA layout is identical to Llama’s, so all the FP8 attention kernels apply identically.

Mistral 7B at 1,260 t/s aggregate

FP8 native, 32 concurrent streams, 32k context. UK dedicated hosting with full root access.

Order the RTX 4090 24GB

See also: Llama 3 8B benchmark, Mistral 7B model guide, vLLM setup, FP8 deployment, AWQ guide, tokens per watt, concurrent users, prefill/decode, 4090 vs 5090.

Need a Dedicated GPU Server?

Deploy from RTX 3050 to RTX 5090. Full root access, NVMe storage, 1Gbps — UK datacenter.

Browse GPU Servers

gigagpu

We benchmark, deploy, and optimise GPU infrastructure for AI workloads. All data in our guides comes from real-world testing on our UK-based dedicated GPU servers.

Ready to deploy your AI workload?

Dedicated GPU servers from our UK datacenter. NVMe storage, 1Gbps networking, full root access.

Browse GPU Servers Contact Sales

Have a question? Need help?