SERIES Part 1 Part 2 Part 3 Part 4 Part 5 Part 6 Part 7 Part 8 Part 9 Part 10
AMD Field AI Enthusiast · by Pradeep Nallimelli · Part 2 of 10+ · May 2026

When 30 billion parameters got faster than 14 billion.

Same Radeon AI PRO R9700 card. Same VRAM budget. A different model architecture and a 16-way concurrency sweep later, single-stream throughput jumped 6.8× and the card sustained 381 aggregate tokens per second for a small agent fleet.

From part one7.5
tok / sec single-stream on a dense 14B model — memory bandwidth-bound.
Model swap51
tok / sec single-stream on a 30B / 3B-active Mixture-of-Experts model. 6.8× from a model choice.
16 concurrent users381
aggregate tok / sec · 24 tok / sec per user · 142 ms first-token latency.
The architecture switch

What Mixture of Experts is, in one slide.

A dense transformer reads every weight in the model for every output token. A Mixture-of-Experts transformer divides the network into many small expert sub-networks — often 128 per layer. For each token, a tiny routing network picks the best 8 experts. Only those experts run.

So even though the MoE model has 30 billion parameters sitting in VRAM, each token only touches about 3 billion of them. The other 27 billion are idle for that token, available the moment a different token wants them. If single-stream throughput is bound by "how many bytes do I read per output token," and MoE cuts that number by roughly 5×, the throughput math gets interesting fast.

The model used: a publicly available 30B / 3B-active MoE released by Qwen, quantized to 4-bit AWQ (compressed-tensors). It fits in 17.5 GiB of VRAM and leaves 7.7 GiB for KV cache on the R9700 — enough for around 84,000 tokens of total context across all active sessions.
The headline finding

Same card. Bigger model. 6.8× the speed.

The model swap moved single-stream throughput from 7.5 to 51 tokens per second. First-token latency dropped from about 410 milliseconds to 40 milliseconds — a 10× improvement. Power draw at single-user load was actually lower (216 W vs 276 W average) because compute was no longer stalled waiting on memory.

Single-stream comparison — dense 14B vs MoE 30B / 3B-active (same card)

Source: Radeon AI PRO R9700 · vLLM 0.16 · AWQ 4-bit · single-stream · 2026-05-28

Picking the right model architecture mattered more than any kernel tuning we attempted later. This is a 6.8× speedup with no hardware change and no code change — purely a model choice, on a model that also benchmarks stronger than the 14B dense it replaced.

The concurrency sweep

One to sixteen users on a single card.

The reason to put a workstation card on a developer team is concurrency. We swept from 1 to 16 simultaneous streaming chat completions with distinct prompts. Aggregate throughput rises sub-linearly — MoE pays a small bandwidth tax as concurrent users hit different experts — but per-user speed stays comfortably above reading speed all the way to 16.

Concurrency sweep — aggregate vs per-user throughput

Source: Radeon AI PRO R9700 · vLLM 0.16 · MoE 30B/3B-active AWQ · 512 output tokens · 2026-05-28
Concurrent usersAggregate tok/sPer-user tok/sFirst-token latencyGPU power avg
1515140 ms216 W
2804057 ms241 W
41363485 ms279 W
822628111 ms305 W
1638124142 ms305 W
An honest negative result

The "sub-optimal kernel" warning was cosmetic. We proved it.

vLLM printed a polite warning that no tuned MoE kernel config existed for this specific GPU. Three approaches to close that warning all failed — and one caused a measurable regression, which is itself the point.

Attempt 1

Auto-tune int8 path

Fails on a hardcoded assertion — the int8 tuner needs per-token activation quantization the harness does not enable.
Attempt 2

Auto-tune int4 path

Not exposed in the current vLLM release. Runtime kernel supports int4; tuner predates it.
Attempt 3

Borrow a data-center config

Config loaded cleanly. Aggregate at 16 users dropped from 381 to 83 tok/s — a 4.6× regression.
Tile choices that win on data-center CDNA wavefronts and MFMA matrix instructions do not transfer to consumer RDNA WGPs and WMMA. The right answer is purpose-built kernels for the architecture. Until those land in the GPU vendor's flagship MoE library for RDNA4, the generic Triton path is the correct default — and it is already turning in the numbers above.
Reading the curve

What this means for an agentic AI deployment.

1–4 users34–51
tokens / sec per user. First-token under 120 ms. Under 280 W. Feels instant. The comfortable single-developer or paired-agent zone.
8 users28
tokens / sec per user. 111 ms first-token. 305 W. The busy fleet zone — still very usable for tool-loop work.
16 users24
tokens / sec per user. 142 ms first-token. 376 W peak. The upper bound the card runs cleanly. KV cache pool still under-utilized.
The workload bottleneck on a 32 GB card serving this model will be KV cache before bandwidth or compute. At 4K context you can comfortably hold 20+ concurrent users; at 8K context, around 10–12. Both are well past the "small agent fleet" target the card was built for.
Next in the series. Part three — we keep the card and the model, change only the inference runtime, and watch single-stream throughput double again. The kernel ecosystem ends up mattering more than the silicon.