Как я тестировал 9 LLM на Strix Halo: 29 запусков, 22 рабочих кода и одна неожиданная победа MoE
Когда у тебя на руках оказывается AMD Strix Halo с 128 ГБ унифицированной памяти, возникает естественный вопрос: а что из современных LLM на нём реально работает, а что — только красиво выглядит в бенчмарках?
Я провёл 29 запусков, протестировал 9 моделей, 5 архитектур, 16+ конфигураций спекулятивного декодирования и сгенерировал 29 HTML-страниц с Three.js-сценой Статуи Свободы — чтобы оценить не только скорость, но и качество кода. Это лучшая выборка из всего того количества сравнений и анализов, что я делал: все прогоны на одном железе, одном бэкенде, одном seed и одном промпте.
Вот что из этого вышло.
Железо и стенд
CPU: AMD Ryzen AI MAX+ 395 (16 ядер / 32 потока)
iGPU: Radeon 8060S (gfx1151, RDNA 3.5)
Память: 128 ГБ unified
Backend: Vulkan (RADV STRIX_HALO)
ОС: Linux
Билд: llama.cpp + Unsloth build
Настройки:
ttm.pages_limitна максимум
Все замеры — на Vulkan, потому что ROCm на gfx1151 всё ещё слишком сырой. И да, это важно: поведение q8_0 KV и плотных моделей на Vulkan сильно отличается от дискретных GPU.
Что тестировалось
Модель | Архитектура | Квант | Размер | Активных |
|---|---|---|---|---|
Xing4.0-29B-A4B | xing4_0 (MLA) | Q6_K | 23.92 GiB | 31 B |
Ling-3.0-flash-APEX | bailingmoe3 (SSM+MLA) | Q5_K | 85.96 GiB | 5.1 B |
Cyber-Tiel-Coder-35B | qwen35moe | Q6_K | 30.01 GiB | 3 B |
Cyber-Tiel-Coder-35B | qwen35moe | Q8_0 | 36.16 GiB | 3 B |
Ornith-1.5-35B-A3B | qwen35moe | Q8_0 | 35.20 GiB | 3 B |
OrcaSAQ-2-27B | qwen35 (плотная) | IQ4_XS | 14.59 GiB | 27 B |
Agnes-3.0-Flash | qwen35 (плотная) | Q6_K | 24.61 GiB | 32 B |
Qwen3.6-35B-A3B | qwen35moe | Q6_K | 29.37 GiB | 3 B |
Qwen3.8-Flash-Next | qwen4exp (MoE) | Q4_K_M | 110.96 GiB | 3 B |
Скорость генерации: главные цифры
Модель | Draft | tg, t/s | acceptance | mean len |
|---|---|---|---|---|
Qwen3.6-35B-A3B | MTP+ngram | 73.22 | 0.892 | 2.89 |
Cyber-Tiel Q6_K | MTP n=3 | 68.12 | 0.691 | 3.07 |
Cyber-Tiel Q6_K | MTP n=2 | 66.65 | 0.871 | 2.63 |
Cyber-Tiel Q6_K | MTP n=4 | 62.92 | 0.741 | 3.16 |
Cyber-Tiel Q6_K | MTP n=1, p=.50 | 60.84 | 0.906 | 1.91 |
Ornith-Q8 | MTP n=1 | 58.41 | 0.910 | 1.91 |
Ornith-Q8 | MTP n=2 | 52.63 | 0.509 | 2.02 |
Cyber-Tiel Q8_0 | MTP n=3 | 50.82 | 0.692 | 3.08 |
Qwen3.8-Flash | MTP n=3 | 47.01 | 0.943 | 3.61 |
Ling-3.0-flash | MTP n=3 | 46.67 | 0.580 | 2.74 |
Xing4.0-29B | MTP n=3 | 44.75 | 0.570 | 2.92 |
Ornith-Q8 | MTP n=3 | 44.02 | 0.328 | 1.98 |
OrcaSAQ DFlash2 | DFlash n=7 | 40.01 | 0.625 | 5.38 |
OrcaSAQ MTP | MTP n=3 | 33.06 | 0.864 | 3.59 |
Agnes-3.0-Flash | — | 7.93 | — | — |
Качество кода: где скорость обманывает
Я сгенерировал 29 HTML-страниц с Three.js-сценой Статуи Свободы и оценил каждую по 10-балльной шкале — на работоспособность, структуру, UI, модель.
Оценка | Модель | Конфигурация | tg |
|---|---|---|---|
9.7/10 | Ling-3.0-flash | n=3, p=.00 | 46.67 |
9.6/10 | Cyber-Tiel Q6_K | n=1, p=.50 | 60.84 |
9.6/10 | Qwen3.6-35B-A3B | MTP+ngram | 73.22 |
9.4/10 | Cyber-Tiel Q8_0 | n=1, p=.50 | 48.58 |
9.4/10 | Ornith-Q8 | n=2, p=.00 | 52.63 |
9.2/10 | OrcaSAQ DFlash2 | reasoning medium | 30.92 |
9.1/10 | Qwen3.8-Flash-Next | MTP-draft | 47.01 |
9.0/10 | OrcaSAQ MTP | n=3, t=0.6 | 33.06 |
8.8/10 | Ornith-Q8 | n=1, p=.50 | 58.41 |
8.2/10 | Xing4.0-29B | — | 44.75 |
Ключевой вывод: скорость и качество кода коррелируют слабо. Qwen3.6 даёт 73 t/s и 9.6/10, а Ornith-Q8 с n=1 — 58 t/s, но 8.8/10. При этом Agnes-3.0 с 7.93 t/s не дала вообще ничего пригодного.
Что реально работает на Strix Halo
1. MoE — единственный путь к скорости
Архитектура | Модели | tg |
|---|---|---|
qwen35moe (MoE+SSM) | Cyber-Tiel, Ornith, Qwen3.6 | 50–73 |
bailingmoe3 (SSM+MLA) | Ling-3.0 | 46.67 |
qwen4exp (MoE) | Qwen3.8-Flash | 47.01 |
qwen35 (плотная) | OrcaSAQ, Agnes | 7.93–33 |
Плотные модели с 27–32B активных параметров дают 8–33 t/s. Это неприемлемо. MoE с 3–5B активных — 46–73 t/s.
2. MTP + n-gram — лучшая стратегия
Комбинация --spec-type draft-mtp,ngram-mod на Qwen3.6 дала 73.22 t/s — абсолютный рекорд. N-gram-модуль находит длинные повторы в тексте и предлагает целые куски (mean len до 14.90), а MTP верифицирует их.
3. Q6_K + f16 KV — оптимум на Vulkan
KV | Модель | tg |
|---|---|---|
f16 | Cyber-Tiel Q6_K | 68.12 |
q8_0 | Cyber-Tiel Q8_0 | 50.82 |
q8_0 KV на Vulkan даёт -25% tg. На дискретных GPU картина другая, но здесь — так.
4. DFlash2 — рекордный mean len, но не скорость
OrcaSAQ с DFlash2 даёт mean len 5.38 — лучший результат. Но tg всего 40 t/s. DFlash2 зависит от внешней draft-модели (1.92B), и с SWA не зависит от длины контекста — 40 t/s и на 32k, и на 262k.
Что не работает
Agnes-3.0-Flash — 7.93 t/s. Плотная модель, 32B активных, 72 слоя. Непригодна.
q8_0 KV на Vulkan — стабильно -25% tg.
Ornith-Q8 с n=3, p=.00 — acceptance 0.328. MTP-голова плохо обучена.
Xing4.0 — код 8.2/10, много опечаток, не запускается.
Плотные модели в целом — 27–32B активных на Strix Halo не работают.
Рекомендации
Для максимальной скорости
Qwen3.6-35B-A3B-Uncensored-Q6_K
--spec-type draft-mtp,ngram-mod
--spec-draft-n-max 2 --draft-p-min 0.80
--temperature 0.6 --ctx-size 524288
tg: 73.22 t/s
Для максимального качества кода
Ling-3.0-flash-abliterated-APEX
--spec-type draft-mtp
--spec-draft-n-max 3 --draft-p-min 0.00
--temperature 0.6 --ctx-size 210000
tg: 46.67 t/s, код: 9.7/10
Для баланса
Cyber-Tiel-Coder-35B-A3B-MTP-Q6_K
--spec-type draft-mtp
--spec-draft-n-max 1 --draft-p-min 0.50
--temperature 0.6 --ctx-size 210000
tg: 60.84 t/s, acceptance: 0.906, код: 9.6/10
Итоговый рейтинг
Место | Модель | Конфигурация | Код | tg | acceptance |
|---|---|---|---|---|---|
1 | Ling-3.0 | n=3, p=.00 | 9.7/10 | 46.67 | 0.580 |
2 | Cyber-Tiel Q6_K | n=1, p=.50 | 9.6/10 | 60.84 | 0.906 |
2 | Qwen3.6-35B-A3B | MTP+ngram | 9.6/10 | 73.22 | 0.892 |
4 | Cyber-Tiel Q8_0 | n=1, p=.50 | 9.4/10 | 48.58 | 0.876 |
4 | Ornith-Q8 | n=2, p=.00 | 9.4/10 | 52.63 | 0.509 |
6 | OrcaSAQ DFlash2 | medium | 9.2/10 | 30.92 | 0.449 |
7 | Qwen3.8-Flash | MTP-draft | 9.1/10 | 47.01 | 0.943 |
8 | OrcaSAQ MTP | n=3, t=0.6 | 9.0/10 | 33.06 | 0.864 |
9 | Ornith-Q8 | n=1, p=.50 | 8.8/10 | 58.41 | 0.910 |
10 | Xing4.0 | — | 8.2/10 | 44.75 | 0.570 |
Заключение
Strix Halo + Vulkan — отличная платформа для локального инференса, но с оговорками:
MoE с 3–5B активных — единственный способ получить 50+ t/s.
MTP + n-gram — лучшая стратегия (73.22 t/s).
Q6_K + f16 KV — оптимальная квантизация.
DFlash2 — рекордный mean len (5.38), но медленнее.
Плотные модели — непригодны.
q8_0 KV — -25% tg на Vulkan.
Мультимодальность — работает на Qwen3.6/Qwen3.8-Flash.
Лучший баланс: Qwen3.6-35B-A3B (MTP + n-gram) — 73.22 t/s, код 9.6/10. Лучшее качество кода: Ling-3.0 — 9.7/10. Лучший acceptance: Ling-3.0 (n=1, p=.75) — 0.984. Лучший mean len: OrcaSAQ DFlash2 — 5.38.
Если у вас есть вопросы по конкретным конфигурациям или хотите увидеть сырые логи — пишите в комментариях. Все замеры воспроизводимы: seed 42, одинаковый промпт, одно железо.