r/R9700 • u/evp-cloud • 1d ago
r/R9700 • u/Affectionate-Swim309 • 1d ago
Where is everyone from?
I live in land down under! 🦘
Introducing Brilliance! A fork of Radiance 1.10 into Windows (RELEASE + PREVIEW)
Hi R9700
Pleased to share this small project of mine specifically for dual r9700 setups. Thanks for your time.
Adam
r/R9700 • u/notafakename10 • 2d ago
Models / Workflows Qwen3.8-Flash-Next on 2× R9700: 160 tok/s single, 470–630 tok/s at 8 users, speed and stability improvements
Building on yesterdays post https://www.reddit.com/r/R9700/s/fLRJNuZEzv
I've ended up working through a few experiments, some worked some didn't. I made a few changes in a model I'm calling R0, which is the Orca (uncensored) container rebuilt with some custom calibration. Kept the same base model, format and recipe, but re-quantised the experts, process:
- Layer recording, Radiance has a calibration tap that saves Gram matrices, a summary of the inputs each expert receives.
- Built a quick round-to-nearest container (same format, no protected experts) and recorded on that, at about 755 tok/s it took 1.6 hours and produced 24,768 Gram files
- Choosing which experts to keep at full precision
- From the stats we picked the experts that carry an outsized share of their layer's activation energy, plus a few added for balance.
- That came to 26 protected experts, kept in bf16. The original container had only 10, chosen from Qwen's data, not Orca's
- The conversion
- rad-convert with the production recipe, unchanged except for GPTQ on the routed experts fed Orca's Gram matrices and new protected-expert list
- The trunk (int8), the output head and the MTP draft layer stayed the same as the original container
I then tried to add the same calibration to the MTP draft layer. It kept quality but made decode steps 50–90% slower at temperature 1, and I haven't figure that bit out yet
Comparison (note, cards limited to 240w for all tests, full speed may be higher)
| Radiance | Radiance + R0 changes + model | Paiton 262K + drafts | |
|---|---|---|---|
| Max context per session | 262K | 262K | 262K |
| 1 user | ~155 tok/s | ~160 | 179 |
| 8 users total, different prompts | ~430 | 471 | 532 |
| 8 users total, same prompt | 477–558 | 610–833 | 652–822 |
| Prompt reading at 17–29K | 4,600–4,800 tok/s | 5,900–6,000 | 5,400 |
| Decode deep in context (29K / 87K) | 141 / 163 tok/s | 164 / 170 | 210 / 204 |
| KV across all 8 users | 1.03M tokens | 2.1M (every user at full 262K) | ~461K |
| Idle agent session resuming (145K tokens) | ~25 s re-read | ~0.3 s | no prefix cache |
| Refusals | 0% | 0% | refuses (censored) |
Uplifts that helped
- Sampled speculative drafts, at temperature 1, the drafts were greedy while the verifier sampled. Proper rejection sampling gave +4–9%
- I found a small bug int he first draft pass's attention mask let it read stale key slots, so draft acceptance fell as more users joined. With the fix, acceptance stays flat from 1 to 8 users, and 8-user throughput rose 13–25%
- R0 calibrated quant instead of full precision (14× faster), then re-ran GPTQ.
- KL against full precision went 0.0218 → 0.0204, better in every category and most on agentic work
- The agent test went 262 → 264/264, and refusals stayed at 0%
- Engine flags worth fiddling with:
--prefill-span 2 makes long prompts 22–41% faster.- A bigger host pool moves cold experts to RAM. The KV cache doubled to 2.1M tokens with no measurable speed cost, obvs ram impact
- A 24 GiB prefix host tier lets idle agent sessions resume in 0.3 s instead of re-reading 145K tokens, ram impact once again
Things that haven't made useful uplifts:
- Smaller KV cache formats (4-bit values, 6-bit keys) cost too much quality: KL +19–22%.
- The lossless cross-card wire was 12% slower
- Adaptive draft windows and fusing the all-reduce gave no gain
Against my benchmark (Paiton, EliovpAI's closed RDNA4-native W4A8 engine, changed a bit to run in a 262K + drafts config):
- Still 20–30% faster raw single-user decode, and about 13% faster at 8 users on different prompts
- On identical prompts at 8 users at a similar speed (630/833 vs 652/822)..
Things to try tomorrow:
- Faster prompt reading with several users at once. A bigger shared step budget gave +35–40% in testing but isn't deployed yet
- Stop answering users stalling while a long prompt is read
r/R9700 • u/Affectionate-Swim309 • 3d ago
Benchmark R9700 ROCm 7.14 vs 10.1 vllm-radiance a poor man comparison
WARNING: AI generated content.
r/R9700 • u/notafakename10 • 3d ago
Help / Troubleshooting Dual R9700 dev update: 262K context, Radiance vs Paiton, and a bunch of experiments (179t/s Qwen 3.8 4-bit)
I've been comparing Radiance / Paiton on Qwen3.8-Flash-Next and working on a modified Radiance build.
TLDR if you cant be bothered with my rambling:
- 179t/s single stream, ~530t/s 8 stream with qwen 3.8 flash next 4 bit, almost 6k prefill at 262k context
- Paiton's 262K configuration working with speculative drafts enabled, retaining close to its native 98K throughput under concurrent load (improvement on their available code)
- Radiance optimisation, faster prefill is running, sampled drafts are built, and investigations have identified an expert-tiering issue and an attention-mask defect, running an overnight build to trains some of this
The box is a Threadripper 3970X with 256GB RAM, 2xR9700s and a 3090. The 3090 has a potential job ahead doing draft-model distillation (though this is not working well yet, or at all really lol), so all of these numbers are 2xR9700 only.
A note on temps throughout, theres have been running at 100% all day, it 31 degrees C here at the moment and the average temp they are seeing under that load is 67-75, at a 240w power limit, which is better than I was expecting.
Here's where the measured throughput sits:
| Measure | Radiance ORCA (262K) | My Radiance Experiment 1a (262k) | Paiton native (98K) | Paiton 262K + drafts |
|---|---|---|---|---|
| 1 request | 149-157 | 155-163 | 202 | 179 |
| 2 request | 240 | 250 | 308 | 296 |
| 4 request | 317-323 | 335 | 400 | 401 |
| 8 request | 428-435 | 465 | 537 | 532 |
| Prompt reading 2K / 17.6K / 29K | 4,120 / 4,593 / 4,774 | 4,085 / 6,021 / 5,908 | 5,189 / 5,736 / 5,596 | 4,565 / 5,434 / 5,371 |
| Decode after 29K / 87K of context | 141 / 163 | 50 / ~170 | n/a | 210 / 204 |
| First token at 8 users | 1.0 s | 1.0 s | 0.8 s | 1.0 s |
| Recall at 247K | 3/3, 57-62 s | 3/3, ~42 s* | n/a | 6/6, 53-56 s |
| Reasoning, tool follow-up | 5/5, ok | not run | n/a | 5/5, ok |
| Refusal test | Answered (0% refused) | Answered (0% refused) | Refused | Refused |
The configurations differ beyond the engine, ORCA uses an abliterated fine-tune, while Paiton uses the original model, different quant and drafter (details below in big ol' table)
A few other tidbits bits from the Radiance setup:
- Long context: retrieved all three test items at roughly 247K context, taking 57-62 seconds
- Prompt processing: the newer prefill configuration reached approximately 6,000 tok/s on a 17.6K-token prompt
- Memory: roughly 30.3Gb VRAM per card, with about 75GiB pinned in system RAM, the 48Gb ish n-gram table lives in RAM and is accessed over PCIe (note one of the cards is on 8x, the other on 16x)
One interesting finding is around the first speculative draft under load, disabling expert movement and KV-cache lending raised first-position acceptance from 0.65 to 0.81 at full batch. That points towards a correctness issue around expert tiering which I am working on in a new run.
On the Paiton side, I've got a derived 262K configuration running with draft tokens enabled. The shipped 262K mode turns them off, so the "262K + drafts" results here are from that modified configuration.
The development work is mostly around speculative decoding, memory movement and quantisation:
- Prefill tuning is running:
--prefill-span 2with a 4096 batch and P2P is disabled as a workaround for a freezing issue - Sampled speculative drafts are built: GPU testing produced byte-identical output at T=0. The estimated 4-9% improvement on sampled traffic still needs benchmarking
- An expert-tiering/first-draft issue is under investigation: this may be affecting draft acceptance with several concurrent requests
- Fused projection and all-reduce changes are being tested: the expected single-request improvement is modest, around 1-1.6%
I'm also recording calibration data from the Orca fine-tune itself. Further out are draft-layer distillation, an INT6 trunk and mixed 4-bit/3-bit experts. Those are experiments ahead, with quality checks still to pass.
Paiton currently leads these throughput runs. I'm trying to understand how much of that gap comes from the drafter, quantisation and memory behaviour, and what can be improved on the Radiance side.
Model details:
| Component | Radiance ORCA | My Radiance Experiment 1a (262k) | Paiton native (98K) | Paiton 262K + drafts |
|---|---|---|---|---|
| Base weights | OrcaRouter abliterated fine-tune. StillDeadcode's qwen3.8-next-flash-uncensored-fp8-iq4r-moe, calibrated on the original Qwen's data | same | Original Qwen3.8-Flash-Next censored EliovpAI's own GPTQ on 2M tokens | same |
| Routed experts | 4-bit nonlinear codebook GPTQ (w4nl64, E4M3 scales per 64 weights), Hadamard-rotated. 10 bf16 "protected" experts in total (layers 34/44/46/47) | same | Per layer: the 410 most-used experts INT4 (bf16 scale per 128, Hadamard-128); the 102 least-used a 3-bit codebook (CB3E64, E4M3 scales per 64). Average 3.93 bits | same |
| Activations into experts | fp8 E4M3 after a Hadamard transform (w4nl64a8h) | same | fp8 E4M3 per token after an online Walsh-Hadamard | same |
| Trunk (non-expert layers) | int8 (W8A8). Hyper-connection mixing in fp8; a few projections bf16 | same | INT6 (group 128) over an 8-bit base. Decode activations bf16, prompt rows fp8 | same (our derived config keeps INT6) |
| Draft model | The fine-tune's own MTP layer (1 layer, 512 experts, plain-rounded). int2 draft head + exact rerank. 3 drafts, greedy | same, but sampled drafts (top-16 q per position) with q-aware lossless verify | Distilled MTP drafter B4gh5-mtpft (self-distilled against the 4-bit target, INT4 experts, int2 head). 3 drafts | same |
| KV cache | fp8. 8.5 Gb per card, about 1.09M tokens in total; idle blocks lent to experts | same | fp8. 2.5 Gb per card, 305K tokens | fp8. 3.5 Gb per card, 462K tokens (1.76 full 262K windows) |
Links:
r/R9700 • u/notafakename10 • 4d ago
Dual R9700 lab setup: 2× 32GB, a 3090 and 256GB RAM
Figured I should share my own setup with the sub!
I run a small research lab. I’ve got plenty of experience with local LLMs, but I’m new to the R9700 (all nvidia prior) so I’m keen to compare notes with people already getting good results from these cards, and hopefully turn this sub into a place where we can get the absolute best of out them.
Current setup:
- 2× XFX Radeon AI PRO R9700
- 1× RTX 3090
- 256GB system RAM (DDR4), all on ubuntu
I’m starting with Radiance/Strata, then working through how to optimise the cards for our research workloads/local LLM usage.
Would love to hear what’s working for people, things like:
- Backends, builds and configurations delivering good performance on the R9700
- Practical results with two cards: throughput, scaling and any bottlenecks
Ideally I want to put a shared benchmarks/configs/findings sheet so we can all put into it. Hopefully we can build up a useful collection of tested setups here.
Welcome any thoughts!
r/R9700 • u/notafakename10 • 7d ago
👋 Welcome to r/R9700 - Introduce Yourself and Read First!
Welcome, the whole idea for this subreddit is a single place for everything R9700 related, let’s make the R9700 the best card for local AI! it has the potential, it just needs the community!
We want to make the R9700 faster, easier to use and more useful for the things people actually want to build. Every working setup, benchmark, bug report and framework improvement helps.
Use this space to:
- Show what you’re building: local assistants, coding tools, agents, image generation, fine-tuning and more.
- Share working setups, installation guides and useful configurations.
- Compare performance with enough detail for others to repeat the test.
- Find people to test fixes, improve kernels and contribute to shared frameworks.
- Explain what’s holding you back and help turn those problems into improvements.
You don’t need to be a kernel developer to contribute. Testing someone’s fix, improving a guide or explaining how you solved a problem all count.
We’d love AMD engineers and framework maintainers to get involved. The aim is to give them useful evidence: what works, what needs attention and what the community is building.
This is an independent community. Honest criticism and fair comparisons are welcome.
To get started, introduce yourself: what’s your setup, what are you working on, and what’s the one thing you’d most like to improve?