🧪 VelsTech Lab

Benchmarks • Experiments • Tools

Practical tests on real hardware – not press releases. Every Lab post lists prerequisites, hardware/software specs, method, raw results and what broke – including failures.

All experiments · VRAM Calculator · GPU Performance · Lab overview

Illustration of an electronics test bench with oscilloscope and graphics card
🧪 Lab ✓ Completed Sep 29, 2026

Qwen3.8 35B-A3B on RX 6800M: 28 vs 30 vs 32 CPU experts at 262K

35B-A3B MoE (Q4_K_M) at full 262K q8 KV on a 12 GB RX 6800M – decode 24.3 → 22.7 → 20.9 tok/s as experts move to RAM, prompt ~89–105 tok/s, and vision needs VRAM headroom: image encode OOMs at 99% but works at 94% and 86%.

QwenRX 6800MMoEVision
24.3 / 22.7 / 20.9 tok/s decode · 262K ctx · 28 experts · 30 experts
🧪 Lab ✓ Completed Sep 19, 2026

Ternary-Bonsai-2-27B on RX 6800M: PTQ1_0 vs PQ2_0

27B ternary on a 12 GB RX 6800M – stock llama.cpp rejects type 143/142, Prism fork + gfx1031 source build fixes it. PQ2_0 decodes 32.8 tok/s vs PTQ1_0 18.8 tok/s.

BonsaiRX 6800MTernary
PQ2_0 32.8 tok/s · PTQ1_0 18.8 tok/s · 32K ctx
🧪 Lab ✓ Completed Sep 13, 2026

Spark-X2.5 4B on RX 6800M: BF16 vs Q8_0 vs Q4_K_M

Three quants of Spark-X2.5 4B side by side on a 12 GB RX 6800M: Q8_0 wins prompt eval at 2149 tok/s, Q4_K_M wins decode at 98.5 tok/s with 254K context fit, and BF16 loses a quality task to both.

SparkRX 6800MQuantization
Q8_0 2149 tok/s prompt · Q4_K_M 98.5 tok/s decode · 254K fit
🧪 Lab ✓ Completed Sep 4, 2026

Qwen3.8 27B GSQ-RCO on RX 6800M: IQ2_XS vs IQ3_S

Tested Qwen3.8 27B GSQ-RCO on a 12 GB RX 6800M – IQ2_XS decodes 20.8 tok/s with 52K context at 90% VRAM, while IQ3_S wins prompt eval but gets stuck at 4K context because --fit aborted on a manual -ngl.

QwenRX 6800MQuantization
IQ2_XS 20.8 tok/s · 52K ctx · IQ3_S 4K ctx (fit abort)
🧪 Lab ✓ Completed Sep 1, 2026

Tiel-Coder 35B-A3B on RX 6800M: MTP vs non-MTP at 262K

Same 12GB RX 6800M + R9 5900HX – Tiel-Coder 35B-A3B Q4_K_XL with and without the MTP draft head at 262K q8 KV, 28-32 CPU experts, ROCm 10.0. Does speculative decoding pay off on MoE?

MoEMTPRX 6800MSpeculative
MTP 29.09 vs 25.39 tok/s (+14.6%) · acceptance 54.7% · mean len 2.64
🧪 Lab ✓ Completed Aug 27, 2026

MoE vs Dense on RX 6800M: 3B Active vs 27B at 16K/262K

Same 12GB RX 6800M – Ornith MoE (3B active, 262K) vs Qwen dense (27B, 16K) at q8 KV, ROCm vs Vulkan head-to-head. When MoE wins and when it doesn’t.

MoE vs DenseRX 6800MBenchmark
ROCm 25.6 vs 19.6 tok/s (Ornith) · Vulkan 21.8 vs 18.1 (Qwen)
🧪 Lab ✓ Completed Aug 27, 2026

Ornith 35B MoE at 262K on RX 6800M: ROCm vs Vulkan

35B-A3B (3B active) Q5/Q4 mix at 262K q8 KV, 28 CPU experts – ROCm 25.6 tok/s vs Vulkan 19.6, 83 tok/s prompt. Huge context, sparse decode.

MoEOrnith 35BRX 6800M
12GB · q8 KV · --n-cpu-moe 28 · kv_unified=false
🧪 Lab ✓ Completed Aug 27, 2026

Qwen 27B Ridge 3.7bpw on RX 6800M: ROCm vs Vulkan at 16K

27B at 3.7bpw (~12.5GB) at 16K q8 KV – ROCm 18.12 tok/s vs Vulkan 21.84, 217 vs 149 tok/s prompt. First Lab with raw logs.

QwenRX 6800M3.7bpw
12GB · q8 KV · -ngl 999 (fit abort) · blk.64 nextn
🧪 Lab – Next ◷ Planned

Qwen 27B without -ngl 999: let --fit choose + --load-mode none for MoE

Re-run both models without forced -ngl 999 (log fitted layers) and with --load-mode none for 28 CPU experts – will the +30% ROCm at 262K hold?

NextROCmVulkan
Status: planned – same RX 6800M, same prompts

Buying guides

Practical picks for running local AI, based on the benchmarks above:

How Lab posts are structured

Every Lab follows the same format so you can compare runs:

  1. Prerequisites: model file, quant, GPU, driver (ROCm/Vulkan), llama.cpp commit
  2. Hardware/Software Specs: exact card, VRAM, CPU, RAM, OS, ROCm/Vulkan, cache type, context, threads
  3. Method: full llama-server command, prompt tokens, slots, KV settings
  4. Results: raw print_timing table – prompt eval ms/tok & tok/s, decode tg, graphs reused, total time (no smoothing)
  5. What broke: warnings like failed to fit params / tensor overrides to CPU with mmap / blk.64 unused nextn and the fix
  6. Calculator mapping: how VRAM + GPU Performance bounds explain the gap

Failures are valuable content – we log them. If a run OOMs or offloads, that’s the result.