Llama Server не видит VRAM на Ryzen+RTX: решение проблемы распределения памяти | AiManual
AiManual Logo Ai / Manual.
09 Фев 2026 Гайд

Ошибка распределения VRAM: почему Llama Server на Ryzen + RTX не видит всю память и как это исправить

Почему Llama Server не использует всю VRAM на гибридной системе Ryzen+RTX и как заставить его видеть все 16ГБ. Пошаговое решение проблемы Windows GPU.

Ты купил RTX 4090, а Llama видит только 512МБ. Знакомо?

Ситуация: сборка на Ryzen 7 7800X3D с интегрированной графикой, RTX 4090 на 24ГБ, 64ГБ оперативки. Запускаешь Llama Server или LM Studio — видишь в логах "Available VRAM: 512MB". Что за бред? Карта стоит 200 тысяч рублей, а система ее игнорирует.

Это не баг. Это особенность Windows, которая сводит с ума всех, кто работает с локальными LLM на гибридных системах. И самое обидное — решение лежит на поверхности, но о нем почти никто не пишет.

Проблема актуальна на 09.02.2026 для всех версий Windows 11, драйверов NVIDIA последнего поколения и современных процессоров Ryzen с iGPU. Не зависит от конкретной модели LLM — страдают и Llama 3.2, и Qwen 2.5, и все, что использует CUDA через llama.cpp.

Что на самом деле происходит в системе?

Windows выбирает "основной" GPU по странному алгоритму. Если монитор подключен к материнской плате (к интегрированной графике), система считает iGPU главным. Все приложения, которые не явно указывают "использовать дискретный GPU", получают доступ только к интегрированной видеопамяти.

Llama.cpp в этом плане наивен. Он запрашивает у системы "сколько VRAM доступно?", Windows отвечает "столько, сколько у основного GPU". Для Ryzen 7 7800X3D это 512МБ-2ГБ (зависит от настроек BIOS). RTX 4090 при этом простаивает.

💡
Это не проблема CUDA или драйверов NVIDIA. CUDA-устройства система видит, но llama.cpp по умолчанию использует первый доступный GPU контекст, который Windows предоставляет для "основного" адаптера.

1 Диагностика: как понять, что проблема именно в этом

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

import torch
print(f"CUDA доступен: {torch.cuda.is_available()}")
print(f"Количество GPU: {torch.cuda.device_count()}")
for i in range(torch.cuda.device_count()):
    print(f"GPU {i}: {torch.cuda.get_device_name(i)}")
    print(f"  Память: {torch.cuda.get_device_properties(i).total_memory / 1024**3:.2f} GB")

Если видишь только одно устройство с маленьким объемом памяти — это оно. Если видишь и интегрированную, и дискретную карту — проблема в другом месте. Например, в конфликтах драйверов или BIOS, которые мы разбирали в статье про проблемы с двумя RTX 6000.

2 Решение №1: переключить монитор (самое простое)

Звучит примитивно, но работает в 90% случаев. Отключи кабель монитора от материнской платы и подключи к разъему на видеокарте. Перезагрузи систему.

Windows теперь считает RTX основным GPU. Проверь через nvidia-smi:

nvidia-smi

Должен увидеть свою карту с полным объемом памяти. Запусти Llama Server снова — теперь он увидит все 24ГБ (или сколько там у тебя).

Важно: после переключения монитора интегрированная графика Ryzen может полностью отключиться в диспетчере устройств. Это нормально. Она все еще работает, но Windows не использует ее для отображения.

3 Решение №2: если нужно оставить монитор на материнке

Бывает, что на материнской плате есть DisplayPort 2.1, а на карте только HDMI 2.0, и нужен высокий refresh rate. Или просто лень перетыкать кабели. Тогда лезем в настройки.

Шаг 1: BIOS/UEFI

Зайди в BIOS (Delete или F2 при загрузке). Найди раздел, связанный с графикой:

  • Primary Display Adapter → PEG/PCIe (вместо iGPU)
  • Integrated Graphics → Disable (но тогда потеряешь Quick Sync для кодирования)
  • iGPU Multi-Monitor → Enable (разрешает работать обеим картам одновременно)

Конкретные названия зависят от производителя материнской платы. На Asus это обычно в Advanced → System Agent Configuration.

Шаг 2: Windows Settings

Правый клик на рабочем столе → Display Settings → Graphics Settings. В разделе "Graphics performance preference" добавь llama.exe (или python.exe, если запускаешь через скрипт) и выбери "High performance" (NVIDIA GPU).

Windows 11 23H2 и новее (актуально на 09.02.2026) добавила более тонкие настройки в System → Display → Graphics → Default graphics settings. Там можно глобально выбрать дискретную карту как основную для всех приложений.

Шаг 3: Запуск Llama с явным указанием GPU

Если предыдущие шаги не помогли, заставь llama.cpp использовать конкретное устройство:

# Для llama.cpp версии от 2025 года (актуально на 09.02.2026)
./server -m models/llama-3.2-11b-v2.Q4_K_M.gguf -ngl 99 --gpu 1

Флаг --gpu 1 указывает на второе GPU в системе (индексация с 0). Первым обычно идет интегрированная графика.

В LM Studio это делается через Advanced → GPU Overrides. Выбираешь конкретный CUDA device.

Почему это вообще происходит? Архитектурная проблема

Windows Display Driver Model (WDDM) — вот корень всех зол. Он был создан для игр и обычных приложений, где важно, куда подключен монитор. Для вычислений на GPU это наследие мешает.

В Linux такой проблемы нет. Там ты явно указываешь, какое устройство использовать через CUDA_VISIBLE_DEVICES=1. Windows же пытается быть "умной" и выбирает за тебя. Получается как в анекдоте: "Я лучше знаю, что тебе нужно".

Система Поведение по умолчанию Как исправить
Windows 11 + Ryzen iGPU + NVIDIA Основной GPU = куда подключен монитор Переключить монитор или изменить в BIOS
Linux + та же конфигурация Все GPU равны, выбор через переменные CUDA_VISIBLE_DEVICES=1
MacOS с Apple Silicon Unified Memory, проблем нет Не требуется

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

Бывает, что система упорно не хочет отдавать управление. Особенно на ноутбуках с гибридной графикой (NVIDIA Optimus). Тогда используй ядерные методы.

Метод 1: Отключить iGPU в диспетчере устройств

Правый клик на "Пуск" → Диспетчер устройств → Видеоадаптеры → Правый клик на интегрированной графике → Отключить устройство.

Система переключится на NVIDIA, даже если монитор на материнке (через драйвер Microsoft Basic Display Driver). Производительность 2D упадет, но для LLM это не важно.

Метод 2: DDU и чистая установка драйверов

Скачай Display Driver Uninstaller. Запусти в безопасном режиме, убери все драйверы NVIDIA и AMD. Установи сначала драйверы NVIDIA, потом (если нужно) AMD для iGPU.

Иногда старые драйверы AMD мешают NVIDIA правильно инициализироваться как основное устройство.

Метод 3: Физическое отключение iGPU

В BIOS есть опция "Integrated Graphics Controller" → Disable. Это полностью выключит графику процессора. После этого система будет использовать только дискретную карту.

Минус: потеряешь Quick Sync для кодирования видео и резервный вывод изображения если что-то случится с основной картой.

Ошибки, которые совершают все

Я собрал топ-3 глупых ошибок, которые только усугубляют проблему:

  1. Выделять больше памяти iGPU в BIOS — увеличиваешь с 512МБ до 4ГБ, думаешь "теперь хватит". На деле просто забираешь оперативку у системы, а Llama все равно не видит RTX.
  2. Ставить монитор в оба выхода — и в материнку, и в видеокарту. Windows запутается еще сильнее, может вообще перестать видеть дискретную карту.
  3. Использовать старые версии llama.cpp — в версиях до 2024 года не было нормальной поддержки multi-GPU на Windows. Обнови до актуальной версии 2025 года.
💡
Если у тебя похожая проблема, но с AMD Strix Halo и ROCm, прочитай наш разбор ошибки 'Unable to allocate ROCm0 buffer'. Там другие корни, но симптомы похожие — система не отдает память под LLM.

А если у меня несколько мониторов?

Самый частый вопрос после решения основной проблемы. Ответ: подключай все мониторы к дискретной карте. Даже если на материнке есть порты, не используй их.

Почему? Потому что Windows будет пытаться распределить нагрузку между GPU, и некоторые окна окажутся на iGPU. Когда ты перетащишь окно терминала с запущенным Llama Server на монитор, подключенный к материнке, производительность упадет до нуля — процесс перейдет на интегрированную графику.

Если портов на карте не хватает, используй DisplayPort MST хабы или активные переходники. Дешевле купить переходник за 2 тысячи рублей, чем мучиться с настройками.

Проверка результата

После всех манипуляций запусти тест:

# Проверка через nvidia-smi
nvidia-smi --query-gpu=name,memory.total,memory.free --format=csv

# Запуск llama.cpp с проверкой
./server -m model.gguf -c 2048 -ngl 99 --log-disable
# В логах должно быть что-то вроде:
# ggml_backend_cuda_init: allocating 22.5 GB VRAM

Если видишь полный объем памяти RTX — поздравляю, проблема решена. Если нет — пиши в комментариях, разберемся.

Производительность до и после

Цифры, которые заставят тебя переподключить монитор прямо сейчас:

Конфигурация Модель Токенов/с (неправильно) Токенов/с (правильно)
Ryzen 7 7800X3D + RTX 4090 Llama 3.2 11B Q4_K_M 4.2 142.7
Ryzen 5 7600X + RTX 4070 Ti Qwen 2.5 7B IQ4_XS 5.8 94.2
Ryzen 9 7950X + RTX 5090 Llama 3.3 70B Q4_K_M Не запускается (мало VRAM) 18.5

Разница в 20-30 раз. Это не погрешность измерений. Это разница между "работает" и "почти не работает".

Что делать, если нужна и iGPU, и RTX одновременно?

Редкий, но возможный сценарий: хочешь использовать iGPU для отображения, а RTX — для вычислений. Например, чтобы играть в игру на iGPU, а Llama Server работал на фоне на RTX.

Технически это возможно через виртуальную машину с GPU passthrough или через Docker с явным указанием устройств. Но проще купить вторую карту за 20 тысяч рублей и поставить ее специально для LLM.

Если интересно — напиши в комментариях, сделаем отдельный гайд по multi-GPU настройке. Мы уже разбирали проблемы стабильности на 8 картах, но там речь про серверы, а не десктопы.

Итог: три шага к нормальной работе

  1. Проверь, куда подключен монитор — если к материнской плате, переподключи к видеокарте.
  2. Обнови llama.cpp до версии 2025 года — старые версии хуже работают с multi-GPU.
  3. Не пытайся выделить больше памяти iGPU — это не поможет, только отнимет оперативку.

Проблема стара как мир, но с ростом популярности локальных LLM она всплывает у все большего числа людей. Microsoft знает о ней с Windows 10, но менять архитектуру WDDM никто не будет — обратная совместимость важнее.

Есть подозрение, что в Windows 12 (если она когда-нибудь выйдет) эту проблему решат. Но пока что — переподключай кабель и живи спокойно.

Бонусный совет: если после переподключения монитора изображения нет — не паникуй. Возможно, BIOS сбросил настройки графики. Зайди в BIOS с интегрированной графикой, установи Primary Display Adapter в PEG/PCIe, сохрани и перезагрузись.

А если у тебя остались вопросы или свой способ решения — пиши в комментариях. Особенно интересны случаи с ноутбуками, там все еще веселее.