🧪 VelsTech Lab – விரைவில் Lab வடிவில் முதல் அளவிடப்பட்ட பதிவு இது: சரியான வன்பொருள், மென்பொருள், கட்டளை, மற்றும் மூல llama-server நேரங்கள் – உடைந்தவையும் சேர்த்து.
LLM VRAM கால்குலேட்டர் – 27B 3.7bpw + 16K உங்கள் VRAM இல் பொருந்துமா? · GPU AI செயல்திறன் கால்குலேட்டர் – இயங்குவதற்கு முன் எந்த tok/s எதிர்பார்க்கலாம்.
கால்குலேட்டர்களைத் திற →நாங்கள் என்ன சோதித்தோம்
- GPU: AMD RX 6800M 12GB (mobile, RDNA2, 12 GB VRAM, ~384 GB/s) – உள்ளூர் AIக்கு நாங்கள் பரிந்துரைக்கும் பட்ஜெட் 12 GB கார்டு
- மாடல்:
Qwen3.8-27B-Ridge-3.7bpw.gguf– Qwen 27B வகுப்பு ஒரு எடைக்கு 3.7 பிட்களில் (~12.3 GB எடைகள்). Ridge குவாண்ட், K-குவாண்ட்கள் அல்ல. - சூழல்:
-c 16384உடன்--cache-type-k q8_0 --cache-type-v q8_0 -fa on(q8 KV, flash attention இயக்கத்தில்) - ஆஃப்லோட்:
-ngl 999 --fit on(கட்டாயமாக அனைத்து அடுக்குகளும்; கீழே எச்சரிக்கை பார்க்கவும்) - Prompt: 373 டோக்கன்கள் (இரண்டு இயக்கங்களுக்கும் ஒரே prompt),
n_slots=4, n_ctx_slot=16384, kv_unified=true, n_threads=8 - பில்ட்கள்: இயக்கம் 1 –
/home/user-name/llama.cpp/build/bin/llama-server(ROCm); இயக்கம் 2 –/home/user-name/llama.cpp_vulkan/build-vulkan/bin/llama-server(Vulkan)
எப்படி இயக்கினோம்
export LD_LIBRARY_PATH=/opt/rocm/lib:$LD_LIBRARY_PATH llama-server \ -m /home/user-name/models/Qwen3.8-27B-Ridge-3.7bpw.gguf \ -ngl 999 \ --cache-type-k q8_0 --cache-type-v q8_0 \ -c 16384 -fa on --fit on --reasoning-preserve --jinja
இரண்டு பேக்எண்டுகள், ஒரே ஃபிளாக்குகள். சர்வர் listening on http://127.0.0.1:8080 என்று பதிவு செய்து பின்னர் 373-டோக்கன் prompt ஐ செயலாக்கி ~228-243 டோக்கன்களை உருவாக்குகிறது (600 token budget, truncated 0).
நாங்கள் என்ன அளந்தோம்
Run Prompt eval Decode (tg) Total ───────────────────────────────────────────────────────────────────────────── ROCm (build) 1713 ms / 373 tok = 4.60 ms/tok = 217.6 tok/s 100:18.42 155:18.12 210:18.08 → 18.12 tok/s 14.24s / 601 tok graphs reused 226 Vulkan 2493 ms / 373 tok = 6.68 ms/tok = 149.6 tok/s 100:22.09 166:21.83 232:21.82 → 21.84 tok/s 13.57s / 616 tok graphs reused 241
முடிவு: Vulkan decode இல் ~20% வேகமானது (21.84 vs 18.12 tok/s) – அரட்டை அடிப்பதற்கு முக்கியமான பகுதி. ROCm prompt eval இல் ~45% வேகமானது (217 vs 149 tok/s) – நீண்ட prompt இல் முதல் டோக்கனுக்கான நேரம். 615 டோக்கன்களுக்கு இறுதி-முதல்-இறுதி, decode ஆதிக்கம் செலுத்துவதால் Vulkan 0.67s (13.57 vs 14.23) வெற்றி பெறுகிறது.
பதிவுகள் உண்மையில் என்ன சொன்னது – எது உடைந்தது
W common_fit_params: failed to fit params to free device memory: n_gpu_layers already set by user to 999, abort– நீங்கள்-ngl 999ஐ கட்டாயப்படுத்தினீர்கள், எனவே--fit onபுறக்கணிக்கப்படுகிறது. 12 GB கார்டில் இந்த 27B q8-KV இயக்கம் பகுதியாக ஆஃப்லோட் செய்ய வேண்டும்; 999 ஐ கட்டாயப்படுத்துவது எத்தனை அடுக்குகள் உண்மையில் பொருந்துகின்றன என்பதை மறைக்கிறது. அடுத்த இயக்கத்தில் திருத்தம்:-ngl 999ஐ விட்டுவிட்டு--fit onதேர்வு செய்ய விடுங்கள், அல்லது-ngl 60அமைத்துn_gpu_layersஐ பதிவு செய்யுங்கள்.- 14×
W model has unused tensor blk.64.* (size ~20KB–73MB)– மாடல் தலைப்பு 65 பிளாக்குகளை (0-64) விளம்பரப்படுத்துகிறது ஆனால் பிளாக் 64 என்பது Qwen3nextnspeculative head (eh_proj/enorm/hnorm/shared_head_norm). llama.cpp அதை புறக்கணிக்கிறது. இந்த பில்டின் கீழ்--jinja --reasoning-preserveஉடன் வரைவு செய்யாதபோது. பிழை அல்ல, ஆனால் நீங்கள் ~300 MB இறந்த எடையை ஏற்றுகிறீர்கள். kv_unified=true, n_slots=4, n_ctx_slot=16384– 4 ஸ்லாட்டுகள் ஒரு KV பூலைப் பகிர்ந்து கொள்கின்றன. ஒவ்வொன்றும் 16K இல் இணை கோரிக்கைகளை அனுப்பினால், ஒற்றை-ஸ்லாட் சோதனை காட்டுவதை விட வேகமாக OOM ஆகிவிடும்.
இது கால்குலேட்டர்களுடன் எப்படி பொருந்துகிறது
எடைகள்: 27B × 0.4625 bytes (3.7bpw/8) ≈ 12.5 GB. 16K இல் KV q8: எங்கள் VRAM கால்குலேட்டர் 8K இல் ~1.0 GB என மதிப்பிடுகிறது 2×layers×kv_heads×head_dim×2 bytes×context – 16K q8 இல் அது ~2×, எனவே ~2.2 GB. மேலும் 6% மேல்நிலை + 0.25 GB → மொத்தம் ~15.6 GB, 12 GB க்கு மேல். இது இயங்கியதே பகுதி ஆஃப்லோட் (சிஸ்டம் RAM வழியாக) நிரூபிக்கிறது – இது ~18-21 tok/s ஐ விளக்குகிறது, முழுமையாக இருந்தால் GPU AI செயல்திறன் கால்குலேட்டரின் மேல் வரம்பு ~30 tok/s உடன் ஒப்பிடும்போது. அந்த வித்தியாசம்தான் ஆஃப்லோட் வரி.
எப்படி கணக்கிடுகிறோம் – எண்களுக்குப் பின்னால் உள்ள சூத்திரங்கள்
கால்குலேட்டர்களின் அதே தர்க்கம், நீங்கள் சரிபார்க்க இணைக்கப்பட்டுள்ளது.
VRAM: LLM VRAM கால்குலேட்டர்
weights = params × bytes_per_weight / GiB kv_per_token = 2 × layers × kv_heads × head_dim × 2 bytes kv_cache = kv_per_token × context × batch / GiB
வேகம்: GPU AI செயல்திறன் கால்குலேட்டர்
decode_tok/s ≈ (memory_BW × 0.8) / bytes_per_token
உங்கள் அளவிடப்பட்ட 18-21 tok/s 30 tok/s வரம்புக்குக் கீழே உள்ளது, ஏனென்றால் bytes_per_token ஆனது PCIe + RAM ஆஃப்லோடை உள்ளடக்கியது, VRAM BW மட்டுமல்ல.
இறுதி விளைவு
12 GB RX 6800M இல் 16K இல், Qwen 27B Ridge 3.7bpw இயங்குகிறது, ஆனால் முழுமையாக உள்ளமைவதில்லை. நீங்கள் அரட்டை அடித்தால் (decode-bound), Vulkan இன் +20% உண்மையானது. நீங்கள் நீண்ட ஆவணங்களை ஊட்டினால், ROCm இன் வேகமான prefill முக்கியமானது. Lab முடிவுக்கு: பயன்படுத்தக்கூடியது ஆனால் ஆஃப்லோட் செய்யப்பட்டது – 16K q8 KV இல் 18-21 tok/s எதிர்பார்க்கவும், 32K இல் மெதுவாக இருக்கும். வசதியாக உள்ளமைய விரும்பினால்? c 8192 க்கு இறங்கவும், இடம் இருந்தால் மட்டும் q8_0→f16 பயன்படுத்தவும், அல்லது 16/24 GB க்கு மேம்படுத்தவும்.
அடுத்தது: அதே மாடல் --fit on உடன் -ngl 999 இல்லாமல் (பொருந்திய அடுக்குகளைக் காட்டு), மற்றும் 16K இல் q8_0 vs f16 KV. பிறகு 70B வரம்பு cloud மட்டுமே.