⚠️ Продвинутая компетенция: GPU Passthrough VFIO — одна из самых сложных и востребованных реализаций в портфолио. Она позволяет физически выделить RTX 5090 для ВМ с производительностью, близкой к нативной установке.
Почему RTX 5090 для локального ИИ? Благодаря ядрам CUDA и Tensor, а также 32 ГБ памяти GDDR7, она значительно ускоряет параллельные вычисления, необходимые для инференса языковых моделей, эмбеддингов и генерации изображений — при этом модели и обрабатываемые данные остаются локальными.
Почему passthrough, несмотря на его ограничения? PCIe passthrough с VFIO напрямую назначает карту одной ВМ: гостевая система, CUDA и контейнеры используют GPU с производительностью, близкой к нативной, и чёткой изоляцией нагрузок. Взамен назначение является эксклюзивным (нет одновременного использования несколькими ВМ) и требует тщательной подготовки хоста, загрузки и процедур восстановления.
⚡ Ограничение мощности — диагностическое измерение (в прошлом)

Временное программное ограничение 400 Вт (против 600 Вт по умолчанию на данной карте) использовалось во время электрической диагностики. Тесты ComfyUI и Ollama 27–28 сентября 2026 затем проводились при 600 Вт по явному решению. Устойчивый выигрыш в стабильности или сравнение производительности между этими ограничениями не установлены.

воспроизводимая публичная проверка
nvidia-smi \
  --query-gpu=power.limit,power.default_limit \
  --format=csv,noheader

Диагностическое значение 400 Вт применяется командой sudo nvidia-smi --power-limit=400 — настройка не сохраняется после перезагрузки или перезагрузки драйвера. Подробные команды, телеметрия и возврат к заводскому ограничению описаны на странице ИИ и LLM (VM210).

🔧 Технологический стек
ТехнологияРоль
VFIOLinux-фреймворк изоляции PCIe
IOMMU / AMD-ViБлок управления памятью для ввода-вывода
PCI PassthroughПрямое назначение GPU → ВМ
Q35Чипсет QEMU, необходимый для современного PCIe
OVMFUEFI, обязательный для passthrough NVIDIA
📁 Изменённые системные файлы
ФайлИзменение
/etc/default/grubamd_iommu=on iommu=pt
/etc/modprobe.d/vfio.confпривязка VFIO к ID GPU
/etc/modulesvfio vfio_iommu_type1 vfio_pci
/etc/initramfs-tools/Интеграция модулей при загрузке
/etc/pve/qemu-server/*.confКонфигурация ВМ Proxmox
🐛 Диагностика по уровням

Настройка потребовала различать несколько уровней диагностики, чтобы приписывать каждый эффект единственному параметру:

  • прошивка и IOMMU
  • драйвер хоста и группы PCIe
  • резервирование GPU и его аудиофункции за vfio-pci
  • конфигурация ВМ
  • гостевой драйвер и CUDA
  • контейнерная среда (доступ к GPU вплоть до Docker)

Перед любым обновлением прошивки сохраняются параметры, нужные для IOMMU и VFIO, и готовится откат; после изменения заново проверяются группы IOMMU, резервирование GPU и запуск ВМ. Для восстановления сохраняется отдельная виртуальная консоль.

Здесь не показано: никакие разовые обходные решения (патч OVMF, маскировка гипервизора, особое отображение IOMMU…) не приводятся, пока нет точного публичного подтверждения. Проверка VFIO, гостевого драйвера и CUDA не позволяет их предполагать.
🔄 Эксклюзивность GPU — статус и порядок запуска ВМ

Выполняемая на хосте Proxmox, эта команда обнаруживает RTX 5090 (не показывая её адрес), находит ВМ, настроенные на её использование, и выводит очищенную метку — отличая текущее состояние ВМ от её политики автозапуска и проверяя, что только одна ВМ passthrough активна одновременно.

bash — проверка эксклюзивности GPU
gpu_bdf=$(lspci -D | awk '/NVIDIA.*RTX 5090/ {print $1; exit}')
[ -n "$gpu_bdf" ] || { echo 'RTX 5090 non détectée'; exit 1; }

gpu_slot=${gpu_bdf%.*}
gpu_slot_short=${gpu_slot#0000:}
alternative=0
running_gpu_vms=0

for vmid in $(qm list | awk 'NR > 1 {print $1}'); do
    config=$(qm config "$vmid")

    if grep -Eq "^hostpci[0-9]+:.*(${gpu_slot}|${gpu_slot_short})([.,]|$)" \
        <<< "$config"; then
        if [ "$vmid" = 210 ]; then
            label="IA-Core"
        else
            alternative=$((alternative + 1))
            label="GPU-alternative-${alternative}"
        fi

        status=$(qm status "$vmid" | awk '{print $2}')
        onboot=$(awk -F': ' '/^onboot:/ {print $2}' <<< "$config")
        startup=$(awk -F': ' '/^startup:/ {print $2}' <<< "$config")

        [ -z "$onboot" ] && onboot=0
        [ -z "$startup" ] && startup="-"
        [ "$status" = running ] && running_gpu_vms=$((running_gpu_vms + 1))

        printf '%-20s status=%-8s onboot=%-2s startup=%s\n' \
            "$label" "$status" "$onboot" "$startup"
    fi
done

if [ "$running_gpu_vms" -le 1 ]; then
    printf 'GPU passthrough actif : %s VM — exclusivité OK\n' "$running_gpu_vms"
else
    printf 'ALERTE : %s VM GPU actives simultanément\n' "$running_gpu_vms"
    exit 2
fi
очищенный фрагмент — эксклюзивность подтверждена
IA-Core              status=running  onboot=1  startup=order=20,up=30,down=60
GPU-alternative-1    status=stopped  onboot=0  startup=-
GPU-alternative-2    status=stopped  onboot=0  startup=-
…                    status=stopped  onboot=0  startup=-
GPU passthrough actif : 1 VM — exclusivité OK
Как читать: только одна ВМ passthrough (IA-Core / VM210) использует RTX 5090; альтернативные GPU-окружения остаются вне автозапуска. При восстановлении хоста сначала запускается VM215 (PostgreSQL/pgvector), затем VM210 (нагрузка GPU + Ollama / OpenWebUI / RAG) — без конкуренции за GPU.
🔧 Базовый снимок BIOS и осторожность с прошивкой

Эталонный снимок BIOS отделяет реально наблюдаемые значения от лишь рассматриваемых улучшений. Перед любым обновлением прошивки параметры, необходимые для IOMMU и VFIO, сохраняются, и готовится план отката; после изменения группы IOMMU, резервирование GPU и запуск ВМ проверяются заново. Тесты остаются поэлементными, чтобы чётко связать каждый эффект с изменённым параметром.

Структурное ограничение: RTX 5090 — это эксклюзивный физический ресурс: только одна ВМ passthrough может использовать её одновременно. Поэтому архитектура явно документирует несовместимости при одновременном запуске, а для восстановления сохраняется отдельная виртуальная консоль.

Проверка: драйвер NVIDIA и CUDA были проверены в ВМ Ubuntu, после чего доступ к GPU был подтверждён вплоть до контейнеров Docker (через NVIDIA Container Toolkit).

Связанные страницы

Ссылки и источники

КатегорияРесурсURL
Официальная документацияProxmox VE — PCI(e) Passthroughpve.proxmox.com/wiki/PCI_Passthrough
Официальная документацияLinux Kernel — VFIOdocs.kernel.org/driver-api/vfio
ОборудованиеNVIDIA GeForce RTX 5090 · plateforme AMD (IOMMU / AMD-Vi)—
ЛицензияVFIO (noyau Linux) — GPL · pilotes NVIDIA — propriétaires—
Содержимое этой страницыПубликуется под CC BY-SA 4.0creativecommons.org/licenses/by-sa/4.0