# Ornith 35B MoE at 262K on RX 6800M: ROCm vs Vulkan – VelsTech Lab

> Tested Ornith 1.5 35B-A3B MoE at 262K on RX 6800M – ROCm 25.6 tok/s vs Vulkan 19.6 tok/s decode, 83 tok/s prompt, with 28 CPU experts and q8 KV.

*Source: https://velstech.net/ornith-35b-moe-262k-rocm-vs-vulkan.ta (Tamil translation of https://velstech.net/ornith-35b-moe-262k-rocm-vs-vulkan) · Updated: 2026-08-27*

*Markdown version. [Read the interactive guide](https://velstech.net/ornith-35b-moe-262k-rocm-vs-vulkan.ta). English Markdown: https://velstech.net/ornith-35b-moe-262k-rocm-vs-vulkan.md.*

---

🧪 VelsTech Lab இரண்டாவது அளவிடப்பட்ட Lab: ஒரே 12GB RX 6800M, ஒரே q8 KV, ஆனால் 28 CPU experts மற்றும் 262K context சாளரம் கொண்ட 35B MoE. சிறிய prompt, பெரிய KV ஒதுக்கீடு.

🔧 இது உங்கள் GPU-க்கு பொருந்துமா?

[LLM VRAM Calculator](https://velstech.net/llm-vram-calculator) – உங்கள் quantization-க்கு 262K-இல் weights + KV · [GPU AI Performance Calculator](https://velstech.net/gpu-ai-calculator) – offload-க்கு முன் tok/s மேல் வரம்பு.

[கால்குலேட்டர்களைத் திறக்கவும் →](https://velstech.net/llm-vram-calculator)

## நாங்கள் சோதித்தது

- GPU: RX 6800M 12GB (RDNA2, ~384 GB/s) – Qwen 27B 16K சோதனையின் அதே கார்டு, எனவே MoE vs dense வன்பொருளில் apples-to-apples

- Model: Ornith-1.5-35B-A3B-AD-Q5_K-Q4_K.gguf – 35B மொத்தம், 3B active (A3B MoE), Q5_K + Q4_K கலப்பு quant

- MoE CPU offload: --n-cpu-moe 28 – 28 experts CPU-க்கு கட்டாயப்படுத்தப்பட்டனர் (எனவே tensor overrides to CPU with mmap எச்சரிக்கை)

- Context: -c 262144 -fa on --cache-type-k q8_0 --cache-type-v q8_0, n_slots=1, kv_unified=false – ஒரு slot, 262K KV pool ஒதுக்கப்பட்டது

- மற்றவை: -ngl 999 --jinja --reasoning-preserve --parallel 1 --temp 0.6 --top-p 0.95 --top-k 20, n_threads=8

- Builds: Run 1 – llama.cpp/build/bin/llama-server (ROCm); Run 2 – llama.cpp_vulkan/build-vulkan/bin/llama-server (Vulkan)

## அதை எப்படி இயக்கினோம்

```
llama-server \
 -m Ornith-1.5-35B-A3B-AD-Q5_K-Q4_K.gguf \
 -ngl 999 --n-cpu-moe 28 \
 --cache-type-k q8_0 --cache-type-v q8_0 \
 -c 262144 -fa on --jinja --reasoning-preserve \
 --parallel 1 --temp 0.6 --top-p 0.95 --top-k 20
```

இரண்டு ரன்களிலும் ஒரே 335-டோக்கன் prompt (`progress 322→331`), ~274 vs 307 tokens generate. Server: `listening on 127.0.0.1:8080`, `llama threadpool n_threads=8`.

## நாங்கள் அளந்தது

```
Run            Prompt eval                 Decode (tg)                 Total          Graphs
─────────────────────────────────────────────────────────────────────────────────────────────
ROCm           3995 ms /335 tok = 11.93 ms/tok = 83.84 tok/s   100:25.16 179:25.52 257:25.60 → 25.62 tok/s   14.65s /609 tok  272
Vulkan         4029 ms /335 tok = 12.03 ms/tok = 83.13 tok/s   100:19.65 160:19.66 219:19.65 → 19.66 tok/s   19.59s /642 tok  305
```

**முக்கிய கண்டுபிடிப்பு:** 262K + MoE-இல், **ROCm decode-இல் ~30% வேகமானது** (25.62 vs 19.66). Prompt eval ~83 tok/s-இல் சமம் – 335 tokens 262K திறனுடன் ஒப்பிடும்போது அற்பம், எனவே prefill context-ஐ அழுத்துவதில்லை. மொத்த wall நேரம் decode-ஐ பிரதிபலிக்கிறது: ~600 tok-க்கு ROCm 14.65s vs Vulkan 19.59s.

## Logs உண்மையில் என்ன சொன்னது – மற்றும் என்ன உடைந்தது

- W common_fit_params: failed to fit params to free device memory: n_gpu_layers already set by user to 999, abort (ROCm run) – Qwen போலவே: நீங்கள் -ngl 999-ஐ கட்டாயப்படுத்தினீர்கள், எனவே --fit புறக்கணிக்கப்படுகிறது. சரிசெய்தல்: -ngl 999-ஐ நீக்கி fitted layers-ஐ log செய்யவும், அல்லது -ngl 60 மற்றும் --n-cpu-moe-ஐ ஒன்றாக தெளிவாக அமைக்கவும்.

- W llama_model_loader: tensor overrides to CPU are used with mmap enabled - consider using --load-mode none for better performance – --n-cpu-moe 28 உடன் நீங்கள் உடனடியாக CPU RAM-க்கு நகலெடுக்கப்படும் tensors-ஐ mmap செய்கிறீர்கள். MoE CPU offload-க்கு --load-mode none-ஐ சேர்க்கவும்.

- kv_unified=false, n_slots=1, n_ctx_slot=262144 – prompt 335 tokens ஆக இருந்தாலும் ஒரு slot, 262K KV pool ஒதுக்கப்பட்டுள்ளது. அந்த ஒதுக்கீடுதான் உங்களுக்கு q8 KV தேவைப்படுவதற்கான காரணம் – 262K-இல் f16 ~2× பெரியதாக இருக்கும், OOM ஆகலாம். இங்குள்ள decode வேகம் pool ஒதுக்கப்பட்ட நிலையில் உள்ளது, நிரப்பப்படவில்லை.

## இது கால்குலேட்டர்களுக்கு எப்படி பொருந்துகிறது

எடைகள் ~35B கலப்பு Q5/Q4 ≈ 13–14 GB (சராசரியாக Q5 0.66 + Q4 0.61). MoE-க்கு 262K-இல் KV q8 என்பது எளிய `2×layers×kv_heads×head_dim×2×context` அல்ல – MoE ஒவ்வொரு டோக்கனுக்கும் KV-ஐ பகிர்ந்து கொள்கிறது, எனவே நீங்கள் 35B-ஐ உள்ளிட்டால் எங்கள் [VRAM Calculator](https://velstech.net/llm-vram-calculator) அதிகமாக மதிப்பிடும்; `3B active` + `28 CPU experts`-ஐ தனித்தனியாக உள்ளிடவும் அல்லது குறைக்கப்பட்ட KV உடன் custom model பயன்படுத்தவும். 3B active-இல் கூட, 262K q8 என்பது ~262K × ~0.5KB → முழுமையாக resident ஆக இருந்தால் ~130 GB – நீங்கள் **resident அல்ல**, MoE-sparse + q8 + CPU offload, எனவே முழு VRAM-ஐ கருதும் [GPU AI Performance Calculator](https://velstech.net/gpu-ai-calculator)-இலிருந்து வரும் 60 tok/s bound அல்ல, 19–25 tok/s நம்பத்தகுந்தது.

எப்படி கணக்கிடுகிறோம் – எண்களுக்குப் பின்னால் உள்ள சூத்திரங்கள்

#### VRAM: LLM VRAM Calculator

```
weights = params × bytes_per_weight / GiB
kv_per_token = 2 × layers × kv_heads × head_dim × 2 bytes (f16) or ×1 (q8)
kv_cache = kv_per_token × context × batch / GiB
```

262K-இல் MoE-க்கு, ஒவ்வொரு டோக்கனுக்கான KV-க்கு மொத்த 35B அல்ல, active அளவுருக்களைப் பயன்படுத்தவும், அல்லது custom model-ஐ மாற்றவும்.

#### Speed: GPU AI Performance Calculator

```
decode_tok/s ≈ (memory_BW × 0.8) / bytes_per_token
```

MoE ஒவ்வொரு டோக்கனுக்கும் குறைவான பைட்டுகளை decode செய்கிறது (35B அல்ல, active 3B), எனவே bound 35B dense-ஐ விட அதிகம். உங்கள் 25 tok/s என்பது bound-இல் ~40% – இடைவெளி CPU MoE + PCIe.

## இறுதி வரி

Ornith 35B MoE 262K-இல் q8 KV + 28 CPU experts உடன் 12GB-இல் **இயங்குகிறது**, ஆனால் decode-இல் செலுத்துகிறீர்கள்: ROCm 25.6 tok/s குறுகிய பதில்களுக்கு பயன்படத்தக்கது, Vulkan 19.6 இங்கு மெதுவானது (Qwen 16K-வின் எதிர்மறை). இரண்டுக்கும் உகந்ததாக `--load-mode none` மற்றும் `-ngl 999` இல்லாமை தேவை. அடுத்த Lab **ஒரே RX 6800M-ல் MoE vs dense** ஆகும்: இந்த Ornith 35B-A3B (3B active) vs [Qwen 27B dense 16K](https://velstech.net/qwen-27b-ridge-rocm-vs-vulkan) – active அளவுருக்கள் vs context பரிமாற்றம், ஒரே கார்டு, இரண்டு என்ஜின்கள்.

🧪 VelsTech Lab – அடுத்து MoE vs dense

ஒரே RX 6800M-ல் Ornith 35B MoE (3B active, 262K) vs Qwen 27B dense (27B, 16K)-ஐ ஒப்பிடுவோம் – ROCm vs Vulkan, q8 vs f16 KV, fitted layers log செய்யப்பட்ட நிலையில்.

[Qwen 27B 16K சோதனையைப் படிக்கவும் →](https://velstech.net/qwen-27b-ridge-rocm-vs-vulkan)

---

*VelsTech – https://velstech.net/ornith-35b-moe-262k-rocm-vs-vulkan.ta.md*
