Ошибка CUDA illegal instruction в llama.cpp на RTX 5060 Ti: решение | AiManual
AiManual Logo Ai / Manual.
07 Янв 2026 Гайд

CUDA illegal instruction в llama.cpp на RTX 5060 Ti: почему новая карта ломает старый код и как это исправить

Полное руководство по диагностике и исправлению ошибки CUDA illegal instruction при запуске llama.cpp на видеокартах NVIDIA RTX 5060 Ti. Обновление драйверов, к

Новая железка, старые грабли

Ты купил RTX 5060 Ti. В теории - зверь для локальных LLM. В практике - запускаешь llama.cpp и получаешь красивый краш с "CUDA illegal instruction". Карта вроде работает, игры запускаются, но нейросеть - нет. Знакомо? Это не твоя вина. Это классический случай, когда новое железо обгоняет софт.

Ошибка "illegal instruction" означает, что процессор (в данном случае - GPU) получил команду, которую не понимает. Как если бы ты заговорил на древнегреческом с современным подростком.

Почему это происходит именно с RTX 5060 Ti?

RTX 5060 Ti построена на архитектуре Blackwell. В ней есть новые инструкции CUDA, которых не было в предыдущих поколениях. Llama.cpp, особенно если ты скачал готовую сборку или компилировал её месяц назад, просто не знает об этих инструкциях.

💡
Архитектура Blackwell требует CUDA Compute Capability 9.0+. Старые сборки llama.cpp часто компилируются для 8.0 или даже 7.0 для совместимости со старыми картами. Вот и получается несоответствие.

Ситуация напоминает историю с прекращением поддержки Pascal, только наоборот - не софт отстал от железа, а железо ушло вперёд.

Диагностика: что сломалось и где

Прежде чем лезть в компиляцию, убедись, что проблема именно в этом. Запусти простой тест:

  1. Открой терминал
  2. Выполни nvidia-smi - убедись, что драйвер видит карту
  3. Проверь версию драйвера: должно быть 555.xx или выше
  4. Запусти nvcc --version - если установлен CUDA Toolkit
Что проверяем Ожидаемый результат для RTX 5060 Ti Если не так
Драйвер NVIDIA 555.xx или новее Обновить через официальный сайт
CUDA Runtime 12.4 или новее Установить CUDA Toolkit 12.4+
Compute Capability 9.0+ Перекомпилировать llama.cpp

1 Обновляем всё, что можно обновить

Начни с самого простого. Зайди на сайт NVIDIA и скачай последние драйверы. Не через GeForce Experience - там часто отставание. Прямо с сайта, выбрав RTX 5060 Ti и свою ОС.

После установки драйверов перезагрузись. Серьёзно, не пропускай этот шаг. Я видел десятки случаев, когда проблема решалась обычной перезагрузкой после обновления драйверов.

2 Ставим правильный CUDA Toolkit

Если у тебя стоит CUDA Toolkit 11.x или даже 12.0-12.3 - удаляй. RTX 5060 Ti требует 12.4 как минимум. Качаем с официального сайта NVIDIA, выбираем версию под свою ОС.

Важный момент: не ставь CUDA Toolkit через apt-get в Ubuntu, если хочешь последнюю версию. Репозитории Ubuntu обычно отстают на несколько месяцев. Качай .run файл прямо с сайта NVIDIA.

3 Клонируем свежий llama.cpp

Если ты качал llama.cpp месяц назад - забудь. Удали старую папку полностью. Архитектура Blackwell появилась недавно, и поддержка добавлялась постепенно.

Открывай терминал и делай:

  • Переходи в папку, где хочешь собрать проект
  • Клонируем репозиторий: git clone https://github.com/ggerganov/llama.cpp
  • Заходим внутрь: cd llama.cpp
  • Обновляем до последней версии: git pull

4 Компилируем с правильными флагами

Вот здесь большинство ошибается. Нельзя просто сделать make. Нужно явно указать, для какой архитектуры компилируем.

Создаём папку для сборки:

  • mkdir build
  • cd build

Теперь самая важная команда. Запускаем cmake с указанием архитектуры:

  • cmake .. -DCMAKE_CUDA_ARCHITECTURES="90" -DLLAMA_CUDA=ON

Ключевой момент: "90" - это Compute Capability 9.0 для Blackwell. Если указать "80" (для Ampere) или "75" (для Turing) - получишь ту самую illegal instruction.

💡
Можно указать несколько архитектур через точку с запятой, например "80;90", если планируешь использовать сборку и на других картах. Но для чистоты эксперимента начни с "90".

После cmake запускаем сборку:

  • make -j$(nproc)

Готово. В папке build/bin появится свежий бинарник llama.cpp, который понимает твою RTX 5060 Ti.

А если не помогло? Дополнительные проверки

Бывает, что всё сделал правильно, а ошибка остаётся. Тогда копаем глубже.

Проверка 1: Системные библиотеки

Убедись, что у тебя установлены все необходимые зависимости. В Ubuntu/Debian:

  • sudo apt update
  • sudo apt install build-essential cmake git
  • sudo apt install libcurl4-openssl-dev

Проверка 2: Конфликт версий CUDA

Иногда в системе остаются старые версии CUDA. Проверь переменные окружения:

  • echo $PATH - посмотри, нет ли там старых путей к CUDA
  • echo $LD_LIBRARY_PATH - то же самое для библиотек

Если видишь пути к CUDA 11.x - удали их из .bashrc или .zshrc.

Проверка 3: Проблема с моделью

Редко, но бывает: проблема не в llama.cpp, а в конкретной модели. Попробуй скачать другую модель, желательно свежую. Некоторые старые квантования могут иметь проблемы с новыми архитектурами.

Кстати, о выборе моделей - у меня есть отдельный обзор для RTX 5080, но большинство рекомендаций подойдёт и для 5060 Ti.

Чего делать НЕ надо

Видел в интернете "советы", которые только усугубляют ситуацию. Запомни раз и навсегда:

  • Не откатывай драйверы до старых версий. RTX 5060 Ti требует новых драйверов. Откат приведёт к другим ошибкам.
  • Не используй флаг -DLLAMA_CUDA=OFF. Да, llama.cpp заработает на CPU, но зачем тогда тебе RTX 5060 Ti?
  • Не качай готовые сборки с GitHub Releases. Они почти всегда скомпилированы для старых архитектур.
  • Не игнорируй ошибки компиляции. Если cmake ругается на отсутствие CUDA - значит, не установил CUDA Toolkit.

Почему это происходит только с llama.cpp?

Справедливый вопрос. Игры работают, Blender рендерит, а llama.cpp - нет. Дело в том, что игры и большинство коммерческого софта используют драйверы высокого уровня. Llama.cpp же работает почти напрямую с CUDA, через низкоуровневые вызовы.

Это как разница между ездой на машине с автоматической коробкой (игры) и управлением гоночным болидом с механической КПП (llama.cpp). В первом случае система сама подстраивается под железо. Во втором - ты должен точно знать, какие передачи переключать.

Похожая ситуация бывает при сборке llama.cpp для нестандартного железа - там тоже нужно точно указывать архитектуру.

Что делать, если совсем ничего не помогает

Есть nuclear option. Полная очистка системы от всего NVIDIA и установка заново. Порядок действий:

  1. Удаляем все пакеты NVIDIA: sudo apt purge nvidia*
  2. Удаляем CUDA Toolkit: sudo rm -rf /usr/local/cuda*
  3. Чистим кэш apt: sudo apt autoremove
  4. Перезагружаемся
  5. Устанавливаем драйверы заново с сайта NVIDIA
  6. Устанавливаем CUDA Toolkit 12.4+
  7. Перекомпилируем llama.cpp как описано выше

Это радикально, но работает в 99% случаев.

Профилактика на будущее

Чтобы не сталкиваться с такими проблемами при следующем апгрейде:

  • Всегда компилируй llama.cpp сам, не используй готовые бинарники
  • При компиляции указывай несколько архитектур: "75;80;90" покрывает Turing, Ampere и Blackwell
  • Подписывайся на репозиторий llama.cpp в GitHub - там появляются новости о поддержке новых архитектур
  • Перед покупкой новой карты гугли "llama.cpp + название архитектуры" - смотри, есть ли уже поддержка

Кстати, если планируешь апгрейд на две карты, почитай про NVLink для RTX 3090 - многие моменты актуальны и для новых поколений.

Самая частая ошибка, которую я вижу: люди компилируют llama.cpp один раз и потом год используют одну и ту же сборку. Железо обновляется каждые 12-18 месяцев. Перекомпилируй llama.cpp хотя бы раз в полгода, даже если ничего не менял в системе.

А что с другими фреймворками?

Llama.cpp - не единственный, кто страдает от новых архитектур. TensorFlow, PyTorch, ONNX Runtime - у всех похожие проблемы. Разница в том, что у них обычно есть готовые wheels с поддержкой новых архитектур. С llama.cpp ты всё делаешь сам, поэтому и ответственность за совместимость лежит на тебе.

Если совсем надоело возиться с компиляцией, посмотри в сторону Ollama или текстовых веб-UI с автоматической сборкой. Но имей в виду: они добавляют оверхед, и производительность будет ниже, чем у нативно скомпилированного llama.cpp.

В конечном счёте, умение самостоятельно компилировать llama.cpp под своё железо - это скилл, который отделяет продвинутых пользователей локальных LLM от новичков. RTX 5060 Ti просто дала тебе повод этот скилл прокачать.