Оптимизация Qwen3.5-9B на RTX 3070 Mobile с помощью ik_llama.cpp: Настройки конфигурации и тесты производительности

Аппаратное и программное обеспечение
Разработчик задокументировал свой опыт оптимизации локального вывода на ноутбуке с видеокартой RTX 3070 Mobile (8GB видеопамяти, фактически доступно ~7.7GB). Система работает на CachyOS (Arch-based Linux 6.19) с 32GB оперативной памяти и процессором Intel i7-10750H. Использовался ik_llama.cpp (оптимизированный форк llama.cpp от ikawrakow) с моделью Qwen3.5-9B Q4_K_M от Jackrong/Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-v2-GGUF.
Проблемы начальной конфигурации
Изначальная базовая конфигурация включала несколько проблем:
- Флаги для MoE (
--n-cpu-moe,-ger,-ser) были некорректно применены к не-MoE модели (n_expert = 0) --mlockмолча сбоил из-за ограничений выделения памяти (требуетсяulimit -l unlimitedили запись в limits.conf)- Размер батча
-b 4096потреблял чрезмерную видеопамять (2004 MiB вычислительного буфера), почти 2GB на карте 8GB
Эта конфигурация давала скорость генерации ~47.8 токенов/сек и оценку промптов ~82 токенов/сек при загрузке видеопамяти ~97%.
Результаты оптимизации
После исправления проблем конфигурации и настройки размеров батчей на -b 2048 -ub 512 (уменьшение вычислительного буфера до 501 MiB), разработчик протестировал разные конфигурации KV-кэша:
- Исходная (q4_0/q4_0, b4096): 47.8 т/с генерация, 82.6 т/с промпт, ~97% видеопамяти
- Исправленные флаги + b2048/ub512, q8_0K/q4_0V: 48.4 т/с генерация, 189.9 т/с промпт, ~80% видеопамяти
- q8_0K/q8_0V: 50.0 т/с генерация, 213.0 т/с промпт, ~84% видеопамяти
Скорость оценки промптов резко возросла с ~82 до ~213 т/с, в основном за счёт уменьшения размера батча для освобождения памяти GPU. Хотя скорость генерации изменилась минимально (~2% разница между q4_0 и q8_0), конфигурация q8_0/q8_0 давала заметно более связные и полные ответы на длинные выводы, что стоило дополнительных ~256 MiB видеопамяти.
Финальная конфигурация
Оптимизированная команда для локального сервера с одним пользователем:
./build/bin/llama-server \
-m ./models/Qwen3.5-9B.Q4_K_M.gguf \
-ngl 999 \
-fa on \
-c 65536 \
-b 2048 \
-ub 512 \
-ctk q8_0 \
-ctv q8_0 \
--threads 6 \
--threads-batch 12Открытые вопросы и будущие тесты
Разработчик определил несколько областей для дальнейшего исследования:
- Настройка лимита мощности GPU на мобильных видеокартах (потенциальное снижение TGP с минимальной потерей скорости, так как вывод ограничен пропускной способностью памяти)
- Другие модели, совместимые с 8GB, с хорошей производительностью в кодировании или рассуждениях
- Сравнение ik_llama.cpp с основной версией llama.cpp (оптимизации ik включают слияние операций и повторное использование графов)
- Советы по гибридной архитектуре SSM (предупреждения о сдвиге контекста вызывают жёсткие остановки при заполнении контекста, без скользящего окна)
Тестирование использовало промпт с запросом реализации программы Rust "Решето Эратосфена" с объяснением алгоритма, анализом сложности и примером вывода для N=50.
📖 Читать полный источник: r/LocalLLaMA
👀 Смотрите также

Практический обзор: 3 ключевых навыка для Clawhub и 3, которых стоит избегать
Разработчик тестировал навыки Clawhub несколько недель и нашёл три, которые стоит установить: web-search (Brave), daily-brief и memory-search. Три других — food-order, multi-agent orchestrators и humanizer — тратят токены и добавляют ненужную сложность.

Репозиторий ClaudeBusiness: Шаблоны для ведения реального бизнеса с помощью Claude Code
GitHub-репозиторий, собирающий практические шаблоны, фреймворки и ограничения из более чем 35 тредов Reddit, где основатели используют Claude для управления сервисными агентствами и сольными SaaS-проектами.

Советы по настройке OpenClaw из опыта пользователя: Gmail MCP, флаги профиля и проблемы с сетью
Пользователь, запускающий OpenClaw на Mac через UTM с виртуальной машиной Ubuntu, делится конкретными проблемами конфигурации, с которыми столкнулся: сервер Gmail MCP требует параметр html_body вместо body, необходим флаг --profile prod, чтобы избежать жестко заданной dev-идентичности, а API-ключи должны размещаться в auth-profiles.json с помощью команды paste-token.

Шаблоны проектирования CLI для AI-агентов: Заблуждения и практические подходы
В посте на Reddit поясняется, что CLI для агентов означает текстовый протокол интерфейса командной строки, а не обязательно реальную оболочку, и описываются принципы проектирования CLI, удобного для агентов, включая справку в стиле Unix, подсказки и механизмы безопасности, такие как предварительный просмотр в режиме dry-run и авторизация человеком.