Ноутбук с процессором Intel Core i7-3612QM (Ivy Bridge). Видеокарты старенькие, встроенная Intel HD 4000 и дискретная NVIDIA GT 610M. Проц поменял, но видеокарты слишком старые для текущего пакета из репозитория.
При попытке запустить модель по стандартным мануалам сервер падает сразу после старта. В терминале видна ошибка инициализации Vulkan и вызов `
abort()`.
В пакете `
llama.cpp` жестко прописан путь (`
RPATH=/usr/lib/llama/`). При старте программа принудительно грузит `
libggml-vulkan.so` и пытается создать Vulkan-контекст на HD 4000. Драйвер Mesa ANV для Ivy Bridge не поддерживает 16-битные операции (`
fp16: 0`), возвращает `
Invalid device`, и процесс аварийно завершается. NVIDIA GT 610M (CC 2.1) также не поддерживается современным CUDA-бэкендом.
Ниже рабочий мануал для такого железа. `
libggml-vulkan.so` - это не системный драйвер Mesa, а плагин ggml, его временное переименование безопасно.
Запуск в llama.cpp (консоль и веб)
root# apt-get install llama.cpp
root# mv /usr/lib/llama/libggml-vulkan.so /usr/lib/llama/libggml-vulkan.so.bak
# Консольный
User$ llama-cli -hf bartowski/Qwen2.5-3B-Instruct-GGUF:Q4_K_M -ngl 0 -c 4096 --threads 4
Модель в `
~/.cache/llama.cpp/`.
User$ llama-server -hf bartowski/Qwen2.5-3B-Instruct-GGUF:Q4_K_M -ngl 0 -c 4096 --threads 4 --port 8081
Веб интерфейс
http://localhost:8081/Возврат после остановки (Ctrl+C):
root# mv /usr/lib/llama/libggml-vulkan.so.bak /usr/lib/llama/libggml-vulkan.so
Сейчас пакет ведет себя не очень дружелюбно на старом железе. Если на этапе `
ggml_vulkan_init()` возникает `
VK_ERROR_INITIALIZATION_FAILED` (как на HD 4000), программа сразу падает через `
abort()`.
Хотелось бы, чтобы в таких случаях она выдавала warning и просто откатывалась на CPU-бэкенд.
---
*P.S. В ollama аналогичная история - внутренний тот же `
llama.cpp`, падает.