Проблема: Qwen 3.5 валится на multi-GPU
Вы скачали свежую модель Qwen 3.5, собрали llama.cpp с поддержкой CUDA и Vulkan, запустили на двух видеокартах - и получили мгновенный краш. Знакомая ситуация? Это баг в llama.cpp, который проявляется именно с архитектурой Qwen 3.5 при распределении вычислений по нескольким GPU.
До февраля 2026 года этот баг был головной болью для всех, кто пытался запустить Qwen 3.5 на multi-GPU системах. Официальный фикс еще не влит в основную ветку, но сообщество уже нашло решение.
Решение: патч из пулл-реквеста #4217
Ветка llama.cpp на GitHub постоянно обновляется. Для исправления multi-GPU crash нужно применить патч из пулл-реквеста #4217, который добавляет корректную обработку тензорных операций для Qwen 3.5.
1Получаем последнюю версию llama.cpp
Сначала клонируем репозиторий llama.cpp. Важно: используем основную ветку, так как патч применяется к ней.
git clone https://github.com/ggerganov/llama.cpp
cd llama.cppЕсли у вас уже есть клон, обновите его:
git pull origin master2Применяем патч для multi-GPU crash
Патч можно скачать прямо из пулл-реквеста. Я сохранил его в отдельный файл для удобства.
wget https://patch-diff.githubusercontent.com/raw/ggerganov/llama.cpp/pull/4217.patch
git apply 4217.patchЕсли git apply ругается на конфликты, значит, у вас слишком старая или новая версия кода. Убедитесь, что вы на ветке master и она актуальна на 25.02.2026. В крайнем случае, можно применить патч вручную, но такое редко случается.
3Включаем prompt caching
Prompt caching - это оптимизация, которая кэширует вычисления для повторяющихся промптов. В llama.cpp она включается флагом -pkc. Но чтобы это работало эффективно с Qwen 3.5, нужно активировать поддержку в коде.
В том же пулл-реквесте #4217 есть изменения для prompt caching. Если патч уже включает их, хорошо. Если нет, нужно убедиться, что в llama.cpp определена макрос LLAMA_PROMPT_CACHE.
Проверяем в CMakeLists.txt:
grep -n "prompt_cache" CMakeLists.txtЕсли не нашли, добавляем опцию в cmake:
cmake -B build -DLLAMA_PROMPT_CACHE=ONИли, если собираете через make:
make LLAMA_PROMPT_CACHE=14Собираем llama.cpp с поддержкой multi-GPU
Теперь собираем llama.cpp с включенными опциями для multi-GPU. Здесь важно выбрать правильные флаги для вашего железа.
cmake -B build -DLLAMA_CUBLAS=ON -DLLAMA_VULKAN=OFF -DLLAMA_PROMPT_CACHE=ON
cmake --build build --config ReleaseЕсли у вас AMD видеокарты, вместо CUBLAS используйте Vulkan. Подробнее об оптимизации под AMD читайте в статье "Оптимизация llama.cpp под AMD видеокарты: Vulkan vs ROCm - полный гайд 2025".
Сборка llama.cpp - дело тонкое. Если возникают ошибки, посмотрите наше руководство "Сборка llama.cpp не для всех: как заставить его летать на твоём железе".
Запускаем Qwen 3.5 с исправлениями
После сборки тестируем. Скачиваем модель Qwen 3.5, если еще нет. Например, Qwen 3.5 14B в формате GGUF.
./build/bin/main -m /path/to/qwen3.5-14b.Q4_K_M.gguf -n 256 -ngl 99 -p "Скажи, привет" -t 8 -c 2048 -b 512 -np 2Здесь -ngl 99 загружает все слои на GPU, -np 2 указывает количество GPU (если собрано с multi-GPU поддержкой).
Если все работает, вы увидите вывод модели без крашей.
Prompt caching в действии
Чтобы использовать prompt caching, запустите с флагом -pkc:
./build/bin/main -m /path/to/model.gguf -p "Твой промпт" -pkcПри первом запуске с новым промптом будет небольшая задержка, но при повторных запросах с тем же промптом скорость возрастет. Это особенно полезно для чат-приложений, где системный промпт повторяется.
Альтернативы: стоит ли вообще мучиться с llama.cpp?
Llama.cpp - не единственный способ запустить Qwen 3.5 локально. Есть Hugging Face Transformers, Ollama, Text Generation WebUI. Но llama.cpp дает максимальную производительность на низкоуровневом железе, особенно при использовании квантованных моделей GGUF.
Если вы не хотите собирать из исходников, можно использовать готовые бинарники, но они могут не содержать последних исправлений. Поэтому для multi-GPU setups сборка из исходников - необходимость.
Для тех, кто работает на CPU, есть свои оптимизации. Читайте "Как запустить Qwen3-VL-8B на CPU: реальный бенчмарк производительности и ловушка llama.cpp с флагом -ngl 0".
Кому подойдет это обновление?
- Владельцам нескольких видеокарт, которые хотят запускать большие модели Qwen 3.5. Если у вас, например, две RTX 4090, это обязательно.
- Разработчикам чат-ботов, которые используют фиксированные системные промпты и хотят ускорить инференс.
- Энтузиастам, которые любят ковыряться в исходниках и применять патчи. (Да, такие есть.)
Если вы только начинаете, возможно, вам проще использовать Ollama - она автоматически управляет моделями и не требует сборки. Но для продвинутой настройки и максимальной производительности llama.cpp вне конкуренции.
Для тех, у кого нет мощного железа, но хочется поиграться с multi-GPU, можно арендовать облачные GPU. Например, на vast.ai часто бывают выгодные предложения. (Это партнерская ссылка, но я действительно пользуюсь этим сервисом.)
Что дальше?
Исправление multi-GPU crash и prompt caching - только два из множества улучшений, которые появляются в llama.cpp каждый месяц. Следите за репозиторием, читайте пулл-реквесты. Часто именно там рождаются прорывные оптимизации, как в статье "Qwen3 Next в llama.cpp: как один пулл-реквест ускорил всё на 30%".
А если вы столкнулись с другими багами или нашли лучший способ настройки - делитесь в комментариях. Сообщество локальных LLM держится на таких вот хаках.