🧪 VelsTech Lab 12 GB mobile GPU-ல் 27B dense model உண்மையில் பயனுள்ளதாக இயங்குமா? Qwen3.8 27B GSQ-RCO-யின் இரண்டு quants – IQ2_XS (MTP draft head உடன்) மற்றும் IQ3_S – ஐ RX 6800M-ல் பக்கத்துக்குப் பக்கமாக இயக்கினேன். எந்த quant தேர்வு செய்கிறீர்கள் என்பது context பட்ஜெட்டையும் வேகத்தையும் தீர்மானிக்கிறது; llama.cpp-ல் ஒரு flag தவறு IQ3_S ஓட்டத்திடமிருந்து அமைதியாக 92% context-ஐ பறித்தது.
LLM VRAM Calculator – 27B IQ2/IQ3 + உங்கள் context உங்கள் VRAM-ல் பொருக்குமா? · GPU AI Performance Calculator – இயக்குவதற்கு முன்பே எந்த tok/s எதிர்பார்க்கலாம் என்று கணக்கிடுங்கள்.
கால்குலேட்டர்களைத் திறக்க →சோதனை இயந்திரம்
- Machine: ASUS ROG Strix G513QY · Ryzen 9 5900HX (8C/16T) · AMD RX 6800M 12GB (RDNA2, mobile) · 32 GB RAM · 2 TB NVMe
- OS: Ubuntu 26.04.1 LTS (Wayland) · ROCm · llama.cpp (current build),
n_threads=8 - Model A:
Qwen3.8-27B-GSQ-RCO-IQ2_XS-mtp.gguf– 27B dense, ~2 bpw i-quants, block-64 MTP draft head உடன் - Model B:
Qwen3.8-27B-GSQ-RCO-IQ3_S.gguf– அதே model, ~3 bpw, draft head இல்லை - இரண்டு ஓட்டங்களும்:
-ngl 999 --cache-type-k q8_0 --cache-type-v q8_0 -fa on --fit on --reasoning-preserve --jinja
எப்படி இயக்கினோம்
Run 1 – IQ2_XS (MTP tensors உடன்)
export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH llama-server \ -m /home/user-name/models/Qwen3.8-27B-GSQ-RCO-IQ2_XS-mtp.gguf \ -ngl 999 \ --cache-type-k q8_0 \ --cache-type-v q8_0 \ -fa on \ --fit on \ --reasoning-preserve \ --jinja
Run 2 – IQ3_S
export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH llama-server \ -m /home/user-name/models/Qwen3.8-27B-GSQ-RCO-IQ3_S.gguf \ -ngl 999 \ --cache-type-k q8_0 \ --cache-type-v q8_0 \ -fa on \ --fit on \ --reasoning-preserve \ --jinja
அளவீட்டு முடிவுகள்
Metric IQ2_XS-mtp IQ3_S Delta
──────────────────────────────────────────────────────────────
Decode (eval) 20.77 tok/s 18.97 tok/s +9.5%
Decode (tg) 20.70 tok/s 18.93 tok/s +9.4%
Prompt eval 113.51 tok/s 178.32 tok/s -36% (IQ3_S வேகம்)
Context fitted 52,736 tok 4,096 tok 12.9×
VRAM used 11.57 / 12.87 GB 12.52 / 12.87 GB
(90%) (97%)
Graphs reused 124 252
Chat UI avg speed 20.9 t/s 19.0 t/s
முக்கிய கண்டுபிடிப்பு: IQ2_XS decode-ல் வென்றது – 13 மடங்கு அதிக context எடுத்தபடி – பெரிய KV cache decode-ஐ மெதுவாக்குமே தவிர வேகமாக்காது, எனவே இந்த வெற்றி உண்மை. IQ3_S ஒரு token-க்கு அதிக bytes படிக்கிறது (~3 bpw vs ~2 bpw); இந்த அட்டை bandwidth-bound, அந்த வேறுபாடு ~1.8 tok/s-ஆக தெரிகிறது. ஆச்சரியம் prompt eval-ல்: IQ3_S உள்ளீட்டை 57% வேகமாக செயலாக்குகிறது (178 vs 114 tok/s) – 2 bpw i-quants compute-bound prompt pass-ல் கனமான dequant/codebook செலவு தருகின்றன; bandwidth-bound decode-ல் தரவரிசை திரும்பிவிடுகிறது.
சான்று – chat ஓட்டங்கள்
VRAM – அமைதியான பெரிய கதை
லாக்கள் என்ன சொன்ன – என்ன உடைந்தது
- Run 2:
W common_fit_params: failed to fit params to free device memory: n_gpu_layers already set by user to 999, abort–--fitதானே-ngl-உம் context-உம் தேர்வு செய்ய வேண்டும்; கைமுறையாக-ngl 999திணித்ததும் அது விட்டுக்கொடுத்து விட்டது, அதனால் IQ3_S இயல்பான 4096-token context-ல் நின்றுபோய்விட்டது. (கீழே உள்ள follow-up-ல் இந்த model-ல்-nglநீக்குவது உண்மையில் மோசம் என்று தெரிகிறது – ஃபோர்ஸ் செய்தே வைக்கவும்.) - Run 1: பதினைந்து
W model has unused tensor blk.64.*வரிகள் – முழு extra transformer block-உம் (attention + FFN +nextn.*MTP head, ~348 MB)--spec-type draft-mtpflag கொடுக்காததால் புறக்கணிக்கப்பட்டது. இந்த ஓட்டத்தில் MTP head வெறும் dead weight; அதை இயக்குவது தான் அடுத்த தெளிவான சோதனை (Tiel-Coder 35B-A3B-ல் அது +14.6% தந்தது). - இரண்டு ஓட்டங்களும்:
W srv llama_server: CORS is set to allow all origins ('*') and no API key is set– server127.0.0.1-ல் மட்டுமே bind ஆகி இருக்கும் வரை பாதுகாப்பானது; API key இல்லாமல் இந்த port-ஐ எப்போதும் நெட்வொர்க்கு வெளியே திறக்கக் கூடாது. - இரண்டு ஓட்டங்களும்:
n_ctx_slot = 52736 / 4096, kv_unified = 'true'– 4 slots-ல் unified KV; 52K என்ற எண்ணை IQ2_XS weights-உடன் சேர்த்து --fit தான் பொருத்தியது.
Follow-up: --fit-க்கு தேர்வு விட்டு, MTP-யும் இயக்கினோம்
முதல் சுற்றின் இரண்டு திறந்த கேள்விகளுக்கு முதல் மீண்டும் இரண்டு configs-ஐ ஓட்டினேன். இரண்டு பதில்களும் எதிர்பார்ப்புக்கு நேர் எதிர்.
IQ3_S -ngl இல்லாமல் – auto-fit
prompt eval: 3329.43 ms / 373 tokens ( 8.93 ms/tok, 112.03 tok/s) eval (decode): 45080.30 ms / 330 tokens ( 137.02 ms/tok, 7.30 tok/s) context: n_ctx_slot = 4096 (fit உயர்த்தவே இல்லை) W resolve_fused_ops: layer 0 is assigned to device CPU but fused Gated Delta Net (chunked) is assigned to device ROCm0 W fused Gated Delta Net (chunked) not supported, set to disabled
-ngl 999 நீக்கியதில் நிலை வியக்கத்தக்க வகையில் மோசமானது: 7.30 tok/s – manual அமைப்பின் மூன்றில் ஒரு பங்கு. --fit layer 0-ஐ CPU-ல் போட்டது; context default 4K-ஐ தாண்டவே இல்லை. இந்த warning model உண்மையில் என்ன என்பதையும் வெளிப்படுத்துகிறது: Qwen3.8 ஒரு Gated Delta Net (GDN) hybrid – பெரும்பாலான layers linear attention பயன்படுத்துகின்றன; ROCm-ல் fused chunked-GDN kernel இல்லை, அதனால் CPU/GPU கலப்பு பிரிவு throughput-ை அழித்துவிடுகிறது. இந்த அட்டையில் IQ3_S-க்கு சரியான config -ngl 999 (எல்லா layers-உம் GPU-ல், சிறிய context-ஐ ஏற்றுக்கொள்ளவும்) – என் அசல் "தவறு" தான் சரியான பதிலாக வெளிவந்தது.
IQ2_XS --spec-type draft-mtp உடன்
prompt eval: 3568.06 ms / 373 tokens ( 9.57 ms/tok, 104.54 tok/s) eval (decode): 8148.60 ms / 189 tokens ( 43.34 ms/tok, 23.07 tok/s) generate: 103 tokens @ 26.73 tok/s (tg), 26.99 tok/s (tg_3s) draft: acceptance = 0.48052 (111 accepted / 231 generated), mean len = 2.44 context: n_ctx_slot = 4096 (--fit aborted: -ngl 999 + draft context) W llama_sampler_backend_support: device 'ROCm0' does not have support for op TOP_K needed for sampler 'top-k' (×4)
MTP head இயங்குகிறது: 23.07 tok/s (உச்சம் 26.7) – இல்லாதபோது 20.77. இரண்டு காரணங்களால் இது தெளிவான +11% ஆகிவிடவில்லை: MTP run-க்கு 4K context தான் கிடைத்தது (draft context-ஆல் --fit KV-க்கு செலவிடும் திறன் உறிஞ்சப்படுகிறது; -ngl 999 இருந்தால் fit விட்டுவிடுகிறது), சிறிய KV cache decode-ஐ அழகாகக் காட்டும் – சம context-ல் நிகர MTP லாபம் +5–8% அருகில். நான்கு TOP_K warning-களும் முக்கியம்: ROCm draft sampler-ின் top-k-வை GPU-ல் இயக்க முடியாது, அது acceptance-ஐ 48%-ல் முடக்கலாம் (Tiel-Coder-ல் 54.7%). ஆனாலும், இந்த அட்டையில் இதுவரையிலான வேகமான IQ2_XS எண்.
முடிவு
12 GB RX 6800M-ல் இந்த 27B-க்கு IQ2_XS தான் practical choice: 52K context-ல் ~21 tok/s, --spec-type draft-mtp உடன் ~23 tok/s – 4K context போதும் என்றால் (அல்லது fit/MTP ஒன்றோடொன்று பழகும் வரை காத்திருங்கள்). IQ3_S தாள் மீது நல்ல quant, ஆனால் இந்த அட்டைக்கு மீறியது: உண்மையான context-க்கு முன்பே 97% VRAM; "proper" auto-fit பாதை ஒரு பொறி – layer 0 CPU-க்குச் சென்று decode 7.3 tok/s-ல் விழுந்துவிடும். IQ3_S ஓட்ட வேண்டுமென்றால் -ngl 999 ஃபோர்ஸ் செய்யவும், 4K-ஐ ஏற்கவும். இனி திறந்த கேள்விகள் hardware-து அல்ல, software stack-து: ROCm-க்கு fused GDN kernel, MTP sampler-க்கு TOP_K support – இவைதான் இந்த 3 bpw quant-ஐயும் மேலான draft acceptance-ஐயும் திறக்கும்.
தொடர்புடையவை: LLM-க்கு எவ்வளவு VRAM தேவை? · Quantization deep dive · இதே அட்டையில் MoE vs Dense.
VelsTech Lab-க்கு திரும்ப →