Nová cesta v llama.cpp zrychluje dávkové zpracování IQ vah na procesoru
Sestavení b10726 přidalo procesorový panel, který u IQ kvantizací dekóduje osm řádků vah najednou. Autor změny naměřil při dávce 512 na AMD EPYC 9654 podle modelu a formátu 1,9násobnou až 8,4násobnou rychlost. Jde o jeho měření; generování po jednom tokenu se novou cestou nevydá.

Do vydaného sestavení llama.cpp b10726 se 31. srpna dostala nová cesta pro násobení matic na procesoru. Návrh 27402 sloučený pod commitem 85c55223 přidává panel pro osm řádků IQ vah. Porovnání tohoto commitu se značkou b10726 vrací shodný stav, nejde tedy jen o změnu čekající v hlavní větvi.
IQ jsou kvantizační formáty llama.cpp. Při jejich tvorbě lze použít matici důležitosti, kterou dokumentace nástroje zapíná přepínačem --imatrix. Kvantizace zmenší váhy modelu, ale jejich použití pak vyžaduje rozbalování hodnot z vyhledávacích tabulek. Právě toto rozbalování bylo při větší dávce drahé: stejnou váhu program podle autora návrhu dekódoval pro každý token znovu.
Osm řádků se vejde do jednoho panelu
Nový soubor iqp.cpp nejprve rozbalí osm řádků po 256 vahách do dlaždice s osmibitovými celými čísly. Ta se vejde do mezipaměti procesoru a násobení matice ji může použít opakovaně. Původní cesta naproti tomu při dávce 512 rozbalovala každou váhu až 512krát.
Kód panel zapne od osmi sloupců. Stejnou hranici používá u hustého modelu i u expertů v modelu typu mixture of experts (MoE). Kdo potřebuje porovnat staré chování, může nastavit proměnnou GGML_NO_IQ_PANEL=1; její přítomnost novou cestu vypne.
Hustý model získal víc než model s experty
Autor návrhu bartowski1182 měřil dva modely na AMD EPYC 9654 s 24 vlákny. Test perplexity zpracoval 50 částí dat a pro každou kvantizaci použil čistý model, aby se měřený formát uplatnil na všech vhodných tenzorech. Následující čísla patří dávce 512 a jsou výsledkem autora změny, nikoli nezávisle zopakovaným benchmarkem.
| Model | Formát | Před změnou | S panelem | Násobek |
|---|---|---|---|---|
| Qwen3.6-27B | IQ1_M | 14,36 tokenů/s | 73,70 tokenů/s | 5,13× |
| Qwen3.6-27B | IQ3_S | 8,77 tokenů/s | 73,84 tokenů/s | 8,42× |
| Qwen3.6-27B | IQ4_XS | 22,42 tokenů/s | 75,99 tokenů/s | 3,39× |
| Qwen3.6-35B-A3B | IQ1_M | 111,09 tokenů/s | 270,72 tokenů/s | 2,44× |
| Qwen3.6-35B-A3B | IQ3_S | 74,27 tokenů/s | 262,56 tokenů/s | 3,54× |
| Qwen3.6-35B-A3B | IQ4_XS | 154,27 tokenů/s | 293,41 tokenů/s | 1,90× |
Rozdíl mezi modely není jen v názvu. Rozhraní Hugging Face vede Qwen3.6-27B jako hustou architekturu s 27 781 427 952 parametry. U Qwen3.6-35B-A3B uvádí 35 951 822 704 parametrů a architekturu MoE. Druhý model při jednom kroku používá jen vybrané experty, takže se jednotlivé dávky mezi ně rozdělí a panel dostává méně práce najednou.
Perplexita se v jednom řádku posunula o 1,18 procenta
Slovní shrnutí návrhu mluví o posunu perplexity kolem 0,24 %. V přiložené tabulce jsou ale i větší hodnoty. Nejvyšší absolutní změna je 1,18 % u Qwen3.6-35B-A3B v IQ2_XXS a dávce 512; naměřená perplexita klesla z 11,0131 na 10,8834. U některých kombinací naopak stoupla. Z těchto dat proto nejde vyvodit jednotný vliv na kvalitu výstupu, pouze to, že výsledek výpočtu není ve všech řádcích totožný.
Projekt přidal také testy operací MUL_MAT a MUL_MAT_ID. Autor je vedle serverového procesoru spustil na Ryzen 9 7950X3D a Intel Core Ultra 7 358H; oba testy skončily úspěšně. Čísla výkonu pro tyto dva stroje zveřejnil jen u několika vybraných kombinací, takže je nelze zaměnit za celou tabulku z EPYC.
Rychlejší bude vstup, ne každý další token
Hranice osmi sloupců určuje praktický dopad. Dlouhý vstup, výpočet perplexity nebo tvorba matice důležitosti zpracovávají více tokenů současně a panel využijí. Při běžném generování jedné konverzace model vytváří další token po jednom; tato část pod hranici spadne a zůstane na původní cestě. Násobky z tabulky tedy nelze přenést na rychlost celé konverzace.
Kdo už používá llama-quantize nebo spouští IQ varianty na procesoru, potřebuje sestavení b10726 či novější. Největší rozdíl lze čekat u dlouhého prvního vstupu a u dávkového vyhodnocování. Samotné tempo jedné odpovědi po prvním tokenu se touto změnou nezrychlí.
Zdroje
- Návrh 27402 v llama.cpp, popis panelu, podmínky měření a tabulky rychlosti a perplexity
- Sestavení llama.cpp b10726 z 31. srpna 2026
- Zdrojový soubor procesorového panelu ve vydané značce
- Karta Qwen3.6-27B a karta Qwen3.6-35B-A3B, nezávislé údaje o architektuře a počtu parametrů