Перейти к содержанию
modelium.
Начать с задачи
←

llama.cpp b11408: ускорение Q8_0 на SpacemiT X60

В prerelease-сборке llama.cpp b11408 появился IME1-ядро для матричных операций с GGUF-квантизацией Q8_0 на RISC-V чипе SpacemiT X60. Автор изменения измерил рост скорости обработки 128 входных токенов Qwen2.5-0.5B-Instruct с 10,70 до 93,87 токена/с на Milk-V Jupiter. Это результат автора для конкретной платы и режима prefill, а не универсальное ускорение генерации или других устройств.

Что произошло

5 октября 2026 года в основную ветку llama.cpp вошёл PR #28479 с новым матричным IME1-ядром для Q8_0 на SpacemiT X60. В тот же день изменение попало в тег b11408, который GitHub помечает как prerelease. Это обновление движка инференса, не новая модель и не стабильная версия. s1 s2

На X60 прежде имелось ускорение IME для Q4_0, Q4_1 и Q4_K, но не для Q8_0. При настройке сборки GGML_CPU_REPACK=OFF отсутствовал и запасной путь repack. Изменение добавляет упаковку Q8_0 в 16-колоночный формат, INT8×INT8 IME1-ядро и пути для одной и четырёх строк активаций. В документации платформы Q8_0 теперь отмечен как поддерживаемый на X60. s2 s3

Что показывают измерения — и чего они не показывают

В тексте релиза автор сообщает для Qwen2.5-0.5B-Instruct Q8_0 рост pp128 (prefill) с 10,70 до 93,87 токена/с. Замер сделан на Milk-V Jupiter со SpacemiT X60, Bianbu 2.1.1 и GCC 14.2: llama-bench -t 4, процесс закреплён за ядрами 0–3, пять повторов на простаивавшей плате. В описании PR приведён другой прогон после изменения — 95,27 токена/с; автор объясняет разницу вариацией между запусками. Это авторские, не независимые измерения; Modelium их не повторял. s1 s2

Вывод ограничен стадией обработки промпта, конкретной Q8_0-моделью и X60. Автор PR отдельно отказался заявлять выигрыш скорости генерации токенов: контрольный Q4_0 также изменился между сборками без изменений его кода. Не переносите цифру на Q4_K, другой RISC-V чип или серверный CPU. s2

Практический выбор и следующий шаг

Если вы запускаете Q8_0 GGUF на плате со SpacemiT X60 и упираетесь во время обработки входного текста, имеет смысл сравнить b11408 с предыдущей сборкой на одном и том же файле модели, prompt length и числе потоков. Для Q4_0 это изменение не обещает аналогичного прироста. В release assets нет готового пакета, названного SpacemiT/RISC-V: платформа собирается из исходников. Официальная инструкция требует соответствующий RISC-V toolchain, GGML_CPU_RISCV64_SPACEMIT=ON, GGML_CPU_RISCV64_SPACEMIT_IME_SPEC для IME1/IME2 и конфигурацию toolchain из репозитория. Следуйте закреплённой инструкции сборки, а не скачивайте бинарник для Ubuntu arm64/x64 как пакет для X60. s1 s3

Код llama.cpp в закреплённом теге распространяется по MIT; условия использования весов конкретной модели проверяются отдельно. В авторском тесте использована Qwen2.5-0.5B-Instruct; её карточка указывает Apache-2.0, но собственный GGUF-файл для сравнения нужно выбирать и проверять отдельно. Проверка корректности нового ядра в PR — авторское сравнение с целочисленным эталоном и короткие генерации; сам автор предупреждает, что test-backend-ops на CPU-only сборке пропускает CPU backend и не является доказательством этого изменения. s2 s4 s5

Источники

  1. llama.cpp b11408 release (GitHub). Получено 05.10.2026.
  2. ggml-cpu: Q8_0 IME1 matrix kernel for SpacemiT X60, PR #28479. Получено 05.10.2026.
  3. llama.cpp: Build for RISC-V SpacemiT at b11408. Получено 05.10.2026.
  4. llama.cpp MIT LICENSE at b11408. Получено 05.10.2026.
  5. Qwen2.5-0.5B-Instruct model card. Получено 05.10.2026.