Содержание
GPU уже определённо используются не только геймерами или майнерами криптовалюты. Они также стали ключевым оборудованием при работе с ИИ, кодированием медиа и задачами вроде машинного обучения. Даже в домашней лаборатории мы можем использовать GPU для ускорения окружения при выполнении многих новых и интересных рабочих нагрузок, таких как локально размещённый приватный ИИ. Это включает использование GPU-ускорения в таких вещах, как Kubernetes, LXC и Docker-контейнеры.

Контейнеры LXC и Docker с пробросом GPU в Proxmox
При работе с контейнерами вы можете настроить GPU-совместимые контейнеры в своей домашней лаборатории, чтобы использовать аппаратное GPU-ускорение. Давайте посмотрим, зачем это нужно и как это настроить.
Зачем беспокоиться о GPU-ускорении в домашней лаборатории?
Вы, конечно, можете выполнять многозадачность и запускать серьёзные рабочие нагрузки на современных процессорах. Однако GPU гораздо эффективнее справляются с задачами, выполняемыми параллельно. Модели ИИ опираются на тысячи потоков, которые выполняются одновременно, и только GPU способны обработать такую нагрузку с высокой производительностью. Большинство из нас испытывали это даже на очень быстром современном CPU. Если запускать модели ИИ только на CPU, ответы в чатах идут чрезвычайно медленно в терминах «токенов в секунду» по сравнению с использованием GPU для локального ИИ.
Обратите внимание на следующие рабочие нагрузки, которые выиграют от наличия GPU:
- ИИ: Это, вероятно, главный сценарий сейчас. Самостоятельно размещённый ИИ — отличный способ гарантировать, что вы владеете и контролируете данные вашего ИИ-чата
- Медиа-серверы: Решения вроде Jellyfin, Plex и HandBrake могут использовать GPU для кодирования H.264, H.265 и AV1
- Эксперименты с машинным обучением: Вы можете использовать такие инструменты, как PyTorch и TensorFlow, чтобы перенести тяжёлые вычисления на GPU
- Параллельная обработка данных: Вы можете использовать инструменты, такие как RAPIDS или базы данных с ускорением на CUDA, чтобы тестировать рабочие процессы данных без необходимости в облачных ресурсах
Запуск GPU-совместимых контейнеров позволяет использовать мощь вашего GPU в лёгком контейнере для рабочих нагрузок. Давайте посмотрим, как это настроить.
Шаг 1: Проверьте оборудование и драйверы
Первый шаг зависит от вашего оборудования. Прежде чем углубляться в настройки Docker или Kubernetes, убедитесь, что у вас есть оборудование, поддерживающее передачу (проброс) GPU (passthrough).
Обычно это включает следующее:
- GPU NVIDIA: Большинство карт GTX, RTX и дата-центровых карт (например, A2000 или A6000) поддерживают CUDA. Драйверы NVIDIA доступны для хостов на Linux и Windows.
- GPU AMD: Многие современные Radeon GPU поддерживают ROCm — открытую платформу вычислений от AMD. Поддержка контейнеров AMD улучшилась в 2025 году и теперь имеет официальную интеграцию с Docker.
- GPU Intel: Intel Arc и встроенная графика Iris Xe поддерживают ускорение GPU с помощью Intel GPU Tools и рантайма OneAPI
Далее проверьте, поддерживает ли ваш BIOS IOMMU и включены ли расширения виртуализации. Это гарантирует, что GPU можно изолировать для проброса или прямого доступа.

Если вы хотите использовать командную строку, вы также можете проверить IOMMU и виртуализацию AMD для ввода-вывода таким образом. Ниже мы проверяем, включены ли IOMMU и AMD-Vi.
dmesg | grep -e IOMMU -e AMD-Vi 
Шаг 2: Установите драйверы GPU и рантайм
Для большинства домашних лабораторий на базе Linux вам нужно установить правильные драйверы на хост-систему. Посмотрите обзор ниже, если вы запускаете Docker-контейнеры на «голом» железе с установленным Linux или на виртуальной машине с Linux поверх гипервизора.

NVIDIA:
Использование graphics-drivers/ppa с последующим указанием nvidia-driver-latest обычно обеспечивает установку последнего драйвера.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install -y nvidia-driver-latest
sudo reboot После установки драйверов вы можете проверить, что они установлены и оборудование работает, командой nvidia-smi:
sudo nvidia-smi 
Важно: NVIDIA Container Toolkit устанавливается только на хост-систему (то есть на Docker-хост), а не внутри ваших контейнеров. Этот пакет действует как мост между Docker и драйверами NVIDIA. Он позволяет контейнерам получить доступ к GPU-оборудованию. Контейнеры будут автоматически использовать драйверы хоста, поэтому вам не нужно устанавливать драйверы внутри контейнера. Если вашему приложению нужны библиотеки CUDA, вы можете использовать предсобранные базовые образы NVIDIA (например, nvidia/cuda), которые уже включают их.
Далее установите NVIDIA Container Toolkit, который позволяет Docker взаимодействовать с GPU:
# Добавить репозиторий NVIDIA Container Toolkit
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker Вы можете убедиться в доступе к GPU внутри контейнеров с помощью:
docker run --rm --gpus all nvidia/cuda:12.5.0-base-ubuntu22.04 nvidia-smi AMD
Установите ROCm и пакеты поддержки контейнеров:
sudo apt install -y rocm-dkms Для интеграции с Docker AMD предоставляет образ рантайма ROCm, который вы можете протестировать:
docker run --device=/dev/kfd --device=/dev/dri --group-add video \
rocm/pytorch:latest rocm-smi Intel
Для Intel Arc и встраиваемой графики необходимо установить рантайм Intel GPU:
sudo apt install -y intel-opencl-icd intel-level-zero-gpu level-zero Вы можете проверить доступ к GPU с помощью:
docker run --device /dev/dri intel/oneapi-basekit А что насчёт LXC-контейнеров?
Для LXC-контейнеров всё зависит от того, что вы запускаете внутри LXC. Если вы запускаете приложения непосредственно внутри LXC (без Docker), вам нужно установить драйверы NVIDIA внутри самого LXC-контейнера, но вам НЕ нужно устанавливать container toolkit.

sudo apt update
sudo apt install -y nvidia-driver-latest Если вы запускаете Docker внутри LXC-контейнера, тогда вам нужно установить и драйвер NVIDIA, и Container Toolkit.

Команды для выполнения в этом случае:
# Установить драйверы
sudo apt update
sudo apt install -y nvidia-driver-latest
# Установить Docker (если не установлен)
curl -fsSL https://get.docker.com | sh
# Установить Container Toolkit
sudo add-apt-repository ppa:graphics-drivers/ppa
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
# ... (остальная часть установки Container Toolkit) Шаг 3: Запуск GPU-рабочих нагрузок
После того как вы пройдёте этапы с оборудованием и драйверами, мы можем настроить Docker для использования вашего GPU в качестве устройства рантайма. Эта часть довольно проста — нужно передать флаги в команду Docker для обнаружения всех доступных GPU или добавить это в Docker Compose.
1. Ollama или OpenWebUI для локального ИИ
Если вы экспериментируете с локальными LLM, такими как Llama 3 или Mistral, вы можете запускать их прямо в Docker с GPU-ускорением:
docker run -d --gpus all -p 3000:3000 \
-v /opt/openwebui:/data \
ghcr.io/open-webui/open-webui:latest 
Вы также можете указать доступ к GPU в вашем файле Docker Compose:
services:
ollama:
image: ollama/ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
- /opt/ollama:/root/.ollama
ports:
- 11434:11434 2. Plex или Jellyfin для GPU-транскодирования
Если вы используете домашнюю лабораторию как медиа-сервер, GPU-ускорение существенно улучшает производительность стриминга и энергоэффективность. Примечание: Plex требует подписки Plex Pass для аппаратного транскодирования.
services:
plex:
image: linuxserver/plex
container_name: plex
runtime: nvidia
environment:
- PUID=1000
- PGID=1000
- VERSION=docker
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
volumes:
- /opt/plex/config:/config
- /media:/media
ports:
- 32400:32400
restart: unless-stopped Вот пример Plex с Intel QuickSync:
services:
plex:
image: linuxserver/plex
container_name: plex
devices:
- /dev/dri:/dev/dri # Intel QuickSync
environment:
- PUID=1000
- PGID=1000
- VERSION=docker
volumes:
- /opt/plex/config:/config
- /media:/media
ports:
- 32400:32400
restart: unless-stopped Вот пример Jellyfin, который является open-source и использует NVIDIA-устройства:
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
# Для NVIDIA:
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
# Для Intel/AMD:
devices:
- /dev/dri:/dev/dri
volumes:
- /opt/jellyfin/config:/config
- /opt/jellyfin/cache:/cache
- /media:/media
ports:
- 8096:8096
restart: unless-stopped Вы можете включить аппаратное ускорение в настройках Plex в разделе Transcoder. Включите «Использовать аппаратное ускорение, когда доступно». В Jellyfin перейдите в Dashboard > Playback > Transcoding. Там установите аппаратное ускорение на NVIDIA, Intel QuickSync или VAAPI и т.д.
3. Машинное обучение с TensorFlow или PyTorch
Если вы экспериментируете с ML-моделями локально, использование GPU-совместимых контейнеров даёт огромный прирост производительности.
Быстрый тест TensorFlow на GPU:
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu bash
python -c "import tensorflow as tf; print('GPUs Available:', tf.config.list_physical_devices('GPU'))" PyTorch с NVIDIA:
# Тест доступа PyTorch к GPU:
docker run --gpus all -it --rm pytorch/pytorch:latest bash
python -c "import torch; print('CUDA Available:', torch.cuda.is_available()); print('GPU Count:', torch.cuda.device_count())" PyTorch с AMD ROCm:
# Для Radeon RX 7000/9000 серии AMD:
docker run -it --rm \
--device=/dev/kfd --device=/dev/dri \
--group-add video \
rocm/pytorch:latest bash
python -c "import torch; print('ROCm Available:', torch.cuda.is_available())" Шаг 4: GPU в Kubernetes или MicroK8s
Если вы перешли на Kubernetes в вашей домашней лаборатории, вы можете использовать планирование GPU для ваших рабочих нагрузок. Предварительные требования: Убедитесь, что драйверы NVIDIA и Container Toolkit установлены на всех узлах, которые будут запускать GPU-рабочие нагрузки (см. Шаг 2 выше).
NVIDIA
# Использование kubectl (проверьте последнюю версию)
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.16.2/deployments/static/nvidia-device-plugin.yml Или вы можете сделать это с помощью Helm:
helm repo add nvdp https://nvidia.github.io/k8s-device-plugin
helm repo update
helm install nvidia-device-plugin nvdp/nvidia-device-plugin \
--namespace kube-system \
--create-namespace Затем вы можете проверить обнаружение GPU с помощью:
kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.capacity.'nvidia\.com/gpu' Затем вы можете добавить запросы на GPU в спецификацию Pod:
apiVersion: v1
kind: Pod
metadata:
name: gpu-pod
spec:
containers:
- name: gpu-test
image: nvidia/cuda:12.5.0-base-ubuntu22.04
resources:
limits:
nvidia.com/gpu: 1 # Запрос 1 GPU
command: ["nvidia-smi"]
args: ["-L"] # Перечислить GPU и выйти (для тестирования) Для постоянных рабочих нагрузок вы можете использовать деплоймент с долгоживущим контейнером, например:
resources:
limits:
nvidia.com/gpu: 1 # Или "2" для нескольких GPU MicroK8s также включает встроенный аддон GPU, который автоматически настраивает драйверы для поддерживаемого оборудования, что делает процесс очень простым. Примечание: Это предполагает, что вы уже установили драйверы NVIDIA и Container Toolkit на хост MicroK8s. Аддон развёртывает только device plugin, а не сами драйверы.
microk8s enable gpu AMD
AMD имеет плагин устройства для Kubernetes через ROCm:
kubectl create -f https://raw.githubusercontent.com/RadeonOpenCompute/k8s-device-plugin/master/k8s-ds-amd-gpu-dp.yaml Затем вы можете планировать GPU-рабочие нагрузки аналогичным образом:
resources:
limits:
amd.com/gpu: 1 Шаг 5: Устранение неполадок
Если контейнеры «не видят» GPU, вы можете пройти базовую диагностику с помощью нескольких команд на уровне хоста.
# Для NVIDIA:
nvidia-smi
# Для AMD:
rocm-smi
# Проверьте наличие устройств:
ls -la /dev/nvidia* /dev/dri/ Если nvidia-smi не работает на хосте, значит, проблема с установкой драйвера. После проверки уровня хоста, если нужно протестировать доступ к GPU внутри контейнера, выполните следующее:
# Для NVIDIA:
docker run --rm --gpus all nvidia/cuda:12.5.0-base-ubuntu22.04 nvidia-smi
# Проверить, что устройства примонтированы:
docker run --rm --gpus all nvidia/cuda:12.5.0-base-ubuntu22.04 ls -la /dev/nvidia* Вы также можете использовать инструменты вроде watch nvidia-smi, чтобы отслеживать активные процессы на GPU, когда контейнеры запускаются, чтобы увидеть, используют ли они GPU.
Шаг 6: Мониторинг
Когда ваши GPU-рабочие нагрузки работают, мониторинг помогает оптимизировать распределение ресурсов и раннее обнаружение проблем. Вы можете использовать открытое решение с Prometheus и NVIDIA DCGM Exporter, которое рекомендуется для сбора статистики и метрик:
NVIDIA
Вы можете развернуть DCGM Exporter на каждом GPU-узле для экспорта метрик.
docker run -d --restart=unless-stopped \
--gpus all \
--name dcgm-exporter \
-p 9400:9400 \
nvcr.io/nvidia/k8s/dcgm-exporter:3.3.5-3.4.0-ubuntu22.04
# Kubernetes
helm repo add gpu-helm-charts https://nvidia.github.io/dcgm-exporter/helm-charts
helm install dcgm-exporter gpu-helm-charts/dcgm-exporter --namespace gpu-monitoring Затем вы можете настроить Prometheus для скрапинга метрик:
scrape_configs:
- job_name: 'dcgm'
static_configs:
- targets: ['localhost:9400'] AMD
Используйте экспортер ROCm SMI:
git clone https://github.com/platina-systems/rocm_smi_exporter
cd rocm_smi_exporter
python3 rocm_smi_exporter.py Рекомендуемые модели GPU
Обратите внимание на несколько рекомендаций по GPU для различных рабочих нагрузок и задач на 2025–2026 годы с моделями, которые нам известны на текущий момент.
Для задач AI/ML
| GPU | VRAM | TDP | Прибл. цена | Лучше всего для | Доступность |
|---|---|---|---|---|---|
| NVIDIA RTX 5070 | 12GB GDDR7 | 250W | 60 000 руб | Начальный уровень для ИИ, заявляет производительность RTX 4090 с DLSS 4 | Доступна сейчас |
| NVIDIA RTX 5080 | 16GB GDDR7 | 360W | 120 000 руб | Серьёзные ИИ-задачи, 4K-гейминг | Доступна сейчас |
| NVIDIA RTX Pro 4000 SFF | 20GB GDDR6 | 70W | 170 000 руб | Компактные серверы, низкое энергопотребление | Доступна сейчас |
| AMD Radeon RX 9070 XT | 16GB | 300W | 75 000 руб | ROCm-совместимые ИИ-задачи, дружелюбна к open-source | Доступна сейчас |
| AMD Radeon RX 9070 (желательно модель 48GB) | 48GB | 350W | 150 000 руб | Большие языковые модели, огромные датасеты | В России практически недоступна сейчас |
| Intel Arc B770 | 16GB GDDR6 | 225W | 36 000 руб | Бюджетный ИИ, медиа-транскодирование | Доступна сейчас |
Для медиатранскодирования (Plex/Jellyfin и т.д.)
| GPU | VRAM | TDP | Прибл. цена | Лучше всего для | Доступность |
|---|---|---|---|---|---|
| Intel Arc B580 | 12GB | 190W | 32 000 руб | Самая выгодная, справляется с 10+ потоками, AV1-кодирование | Доступна сейчас |
| Intel Arc Pro B50 | 16GB | 70W | 32 000 руб | Низкопрофильные, компактные сборки | Доступна сейчас |
| Intel Arc A770 | 16GB | 225W | 45 000 руб | Зрелые драйверы, проверенная производительность | Доступна сейчас |
| NVIDIA RTX 5050 | 8GB | 130W | 27 000 руб | NVENC-кодирование, компактна | Доступна сейчас |
Для бюджетных домашних лабораторий
| GPU | VRAM | TDP | Прибл. цена | Лучше всего для | Доступность |
|---|---|---|---|---|---|
| Intel Arc B580 | 12GB | 190W | 32 000 руб | Лучшая общая ценность для ИИ + транскодирования | Доступна сейчас |
| AMD Radeon RX 7700 XT | 12GB | 245W | 50 000 руб | Надёжная поддержка ROCm, игровая карта | Доступна сейчас |
| Intel Arc A380 | 6GB | 75W | 14 000 руб | Ультра-бюджетное транскодирование | Доступна сейчас |
В заключение
Нет сомнений, что GPU-совместимые контейнеры — одна из крупнейших эволюций в современной домашней лаборатории. С учётом растущих требований к рабочим нагрузкам, таких как ИИ, машинное обучение и обработка медиа, нам всё чаще потребуется такая конфигурация. Процесс настройки стал значительно проще благодаря NVIDIA Container Toolkit и интеграции ROCm от AMD, а также растущей поддержке со стороны Intel.
С одним GPU и небольшими настройками вы можете открыть новый уровень производительности для задач ИИ и медиа. Напишите в комментариях — используете ли вы GPU-совместимые контейнеры?

