RX 6800M-ல் Qwen3.8 27B-ஐ benchmark செய்து கொண்டிருந்தபோது, llama.cpp-வின் ஒரு எச்சரிக்கை விளக்கம் கொடுத்தது விளக்கவே முடியாத 2.6× வேக வீழ்ச்சிக்கு காரணம்: fused Gated Delta Net (chunked) not supported. அந்த ஒரே வரி, அடுத்த தலைமுறை language models வருகையில் AMD சந்திக்கப் போகும் மிகப்பெரிய software இடைவெளியின் முன்னோட்டம் – ஆனால் பெரும்பாலானவர்களுக்கு இது தெரியவே தெரியாது, ஏனெனில் model ஓடுவது ஓடும்தான். வேகமாக மட்டுமல்ல.
முழு test logs மற்றும் எண்கள்: RX 6800M-ல் Qwen3.8 27B GSQ-RCO · auto-fit benchmark entry.
Benchmark தரவுத்தளம் →எல்லாம் தொடங்கிய எச்சரிக்கை
IQ3_S-ஐ இரண்டாவது முறை ஓட்டினேன்; -ngl 999 ஐ கட்டாயப்படுத்துவதற்குப் பதிலாக GPU/CPU பிரிவை --fit-க்கு விட்டுக்கொடுத்தேன். Decode 19.0-லிருந்து 7.3 tok/s-ஆக சரிந்தது. காரணம் லாக்கில் இருந்தது:
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
இந்த இரண்டு வரிகளில் இரண்டு உண்மைகள் மறைந்திருக்கின்றன. முதலாவது: Qwen3.8 சாதாரண transformer அல்ல – standard attention layers-உடன் Gated Delta Net (GDN) layers-ஐ கலக்கிறது. இரண்டாவது: CUDA-க்கு llama.cpp-ல் வேகமான fused GDN kernel உள்ளது, ஆனால் ROCm-ல் எதுவும் இல்லை. fit algorithm GDN layer-ஐ தொட்ட உடனேயே அது fallback-க்கு செல்ல நேர்ந்தது – அந்த fallback பேரழிவு அளவுக்கு மெதுவு.
Gated Delta Net என்றால் என்ன – எளிய மொழியில்
Standard attention ஒவ்வொரு புதிய token-ஐயும் கடந்த ஒவ்வொரு token-உடனும் ஒப்பிடுகிறது. அந்த வரலாறு தான் KV cache – context அதிகரிக்க அதிகரிக்கும், VRAM-ஐ உண்ணும். Linear attention சொல்கிறது: துல்லியமான வரலாறை மறந்துவிடு, அதற்குப் பதிலாக ஒரு fixed-size running summary வைத்திரு. token ஒன்றுக்கான செலவு context-உடன் வளர்வதை நிறுத்தும்; memory நிலையாகிவிடும்.
அந்த summary-யை உருவாக்க தற்போதைய சிறந்த மருந்து GDN. இரண்டு ideas அடுக்கடுக்காக:
- Delta rule – புதிய தகவல் வரும்போது memory-ல் சேர்க்காதீர்கள்; அது எந்தப் பகுதியோடு மோதுகிறதோ அந்தப் பகுதியை overwrite செய்யுங்கள் – append log அல்ல, diff மாதிரி.
- Gating – update-இல் எவ்வளவு பயன்படுத்த வேண்டும் என்று தீர்மானிக்கும் கற்ற per-channel volume knob; எதுவும் மாறாதபோது layer state-ஐ பிடித்தும் வைக்கலாம்.
தனியே ஓடினால் linear attention விவரங்களை மறந்துவிடும். அதனால் தான் தீவிரமான புதிய models எல்லாம் hybrid: ஒரு full-attention layer-க்கு சுமார் மூன்று GDN layers. Attention layers துல்லியமான recall-ஐ வைக்கும்; GDN layers மலிவு விலையில் sequence mixing-ன் பெரும் பணியை செய்யும். Qwen3-Next இந்த design-ஐ நிரூபித்தது; Qwen3.8 அதை 27B size class-க்கு கொண்டு வருகிறது; Kimi Linear, MiniMax-ன் lightning attention, Falcon-H1, Nemotron-H (Mamba-2, அதே idea family) எல்லாம் இந்த திசையிலேயே ஓடுகின்றன.
இது AMD பயனர்களை ஏன் குத்துகிறது
GDN layer ஒரு recurrent state update. மேம்படுத்தாமல், token-by-token ஓட்டினால் அது sequential – GPU-களுக்கு sequential வேலை பிடிக்காது. "chunked" fused kernel-ன் முழு நோக்கமே அந்த recurrence-ஐ மறுஎழுதி parallel blocks-ஆக ஓட்டுவது. NVIDIA பயனர்களுக்கு அந்த kernel விரைவில் கிடைத்தது. ROCm-ல் llama.cpp-ன் fused-op table-இல் இது இன்னும் இல்லை – அதனால் layer அல்ல unfused fallback-ல் ஓடும், அல்லது என்னைப் போல CPU-க்கு செல்லும்.
விலை என்ன? அதே model, அதே அட்டை, ஒரே ஒரு flag வித்தியாசம்:
Config Layers on GPU Decode Context ────────────────────────────────────────────────────────────── -ngl 999 (forced) all 18.97 tok/s 4K --fit (auto) all but layer 0 7.30 tok/s 4K
ஒரே hybrid layer CPU-க்கு போனதற்கு 62% penalty – அதன்பின் GPU ஒவ்வொரு token-லும் அதைப் பார்த்து stall ஆகும். பாடம் கசக்கமாக generalise ஆகிறது: இன்று ROCm-ல், hybrid model ஒரு வேகம் தான் – அதன் மோசமாக வைக்கப்பட்ட linear-attention layer எவ்வளவு வேகமோ அவ்வளவு.
உங்கள் model பாதிக்கப்பட்டுள்ளதா? மூன்று சோதனைகள்
- Startup log-ஐப் படியுங்கள்.
resolve_fused_opsஅல்லது "not supported, set to disabled" வரி – GDN, Mamba, SSM, "recurrent" என்று இருந்தால் உங்களிடம் hybrid உள்ளது; ROCm-ல் அதன் வேக பாதை இல்லை. - Architecture-ஐச் சரிபார்க்கவும்.
llama-gguf --metadata model.gguf(அல்லது எந்த GGUF reader)-ல்general.architectureபார்க்கவும் –qwen3nextவகை keys,linear_attentionlayer types,ssm*fields ஆகியவை சொல்லும். - இரண்டு config-உம் benchmark செய்யுங்கள்.
-ngl 999கட்டாயப்படுத்தி auto-fit-உடன் ஒப்பிடுங்கள். forcing ஜெரித்தால், fit algorithm hybrid layer-ஐ உங்கள் backend வேகமாக ஓட்ட முடியாத இடத்தில் வைக்கிறது.
இன்று என்ன செய்வது
- AMD-ல் hybrid models-க்கு
-ngl 999கட்டாயம் – சிறிய context-ஐ ஏற்றுக்கொள்ளுங்கள்; என் சோதனையில் இது auto-fit-ஐ 2.6× தோற்கடித்தது. - VRAM இடவசதியை context-ஆல் அல்ல, quant-ஆல் வாங்குங்கள். IQ2_XS 52K tokens இடம் விட்டது; IQ3_S கிட்டத்தட்ட ஒன்றுமில்லை. 12 GB அட்டையில் 2 bpw quant தான் hybrid-க்கு நண்பன்.
- ROCm-ல் இன்னும் full-attention models தான் பாதுகாப்பான தேர்வு. fused kernels வருவதற்கு முன் dense 27B கணிக்கத்தக்கது; hybrid 27B-ல் குழி உள்ளது.
- llama.cpp-ன் ROCm backend-ஐ கண்காணியுங்கள். Fused-op table வளர்கிறது; இந்த இடைவெளி "எப்போது" என்ற கேள்வி, "ஏன்" அல்ல. பெரிய merge-களுக்குப் பிறகு மீண்டும் சோதிக்கவும்.
முடிவு
LLM stack-இன் architecture அடுக்கு "பெரிய KV cache" இலிருந்து "ஸ்மார்ட்டான fixed-size state" நகர்ந்து கொண்டிருக்கிறது; Gated Delta Net தற்போதைய வெற்றியாளர். AMD-ன் hardware சரி – இந்த புதிய ops-க்கு அதன் kernel coverage இல்லை, அதை llama.cpp startup-ல் ஒரு அமைதியான எச்சரிக்கை வரியில் மட்டுமே சொல்லும். நீங்கள் Radeon-ல் local AI ஓட்டுபவர் என்றால், அந்த வரியை இன்றே படிக்கத் தொடங்குங்கள்: 2026-ன் models hybrid – நீங்கள் தயாராக இருந்தாலும் இல்லையென்றாலும்.
LLM என்றால் என்ன? – KV cache எங்கே பொருந்துகிறது · KV cache explained – GDN மாற்றும் அந்த விஷயம் · LLM-க்கு எவ்வளவு VRAM தேவை?
AI-க்கு திரும்ப →