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

При работе с контейнерами вы можете настроить 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.
|
1 |
dmesg | grep —e IOMMU —e AMD—Vi |

Шаг 2: Установите драйверы GPU и рантайм
Для большинства домашних лабораторий на базе Linux вам нужно установить правильные драйверы на хост-систему. Посмотрите обзор ниже, если вы запускаете Docker-контейнеры на «голом» железе с установленным Linux или на виртуальной машине с Linux поверх гипервизора.

NVIDIA:
Использование graphics-drivers/ppa с последующим указанием nvidia-driver-latest обычно обеспечивает установку последнего драйвера.
|
1 2 3 4 |
sudo add—apt—repository ppa:graphics—drivers/ppa sudo apt update sudo apt install —y nvidia—driver—latest sudo reboot |
После установки драйверов вы можете проверить, что они установлены и оборудование работает, командой nvidia-smi:
|
1 |
sudo nvidia—smi |

Важно: NVIDIA Container Toolkit устанавливается только на хост-систему (то есть на Docker-хост), а не внутри ваших контейнеров. Этот пакет действует как мост между Docker и драйверами NVIDIA. Он позволяет контейнерам получить доступ к GPU-оборудованию. Контейнеры будут автоматически использовать драйверы хоста, поэтому вам не нужно устанавливать драйверы внутри контейнера. Если вашему приложению нужны библиотеки CUDA, вы можете использовать предсобранные базовые образы NVIDIA (например, nvidia/cuda), которые уже включают их.
Далее установите NVIDIA Container Toolkit, который позволяет Docker взаимодействовать с GPU:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Добавить репозиторий 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 внутри контейнеров с помощью:
|
1 |
docker run —rm <strong>—gpus all</strong> nvidia/cuda:12.5.0—base—ubuntu22.04 nvidia—smi |
AMD
Установите ROCm и пакеты поддержки контейнеров:
|
1 |
sudo apt install —y rocm—dkms |
Для интеграции с Docker AMD предоставляет образ рантайма ROCm, который вы можете протестировать:
|
1 2 |
docker run —device=/dev/kfd —device=/dev/dri —group—add video \ rocm/pytorch:latest rocm—smi |
Intel
Для Intel Arc и встраиваемой графики необходимо установить рантайм Intel GPU:
|
1 |
sudo apt install —y intel—opencl—icd intel—level—zero—gpu level—zero |
Вы можете проверить доступ к GPU с помощью:
|
1 |
docker run —device /dev/dri intel/oneapi—basekit |
А что насчёт LXC-контейнеров?
Для LXC-контейнеров всё зависит от того, что вы запускаете внутри LXC. Если вы запускаете приложения непосредственно внутри LXC (без Docker), вам нужно установить драйверы NVIDIA внутри самого LXC-контейнера, но вам НЕ нужно устанавливать container toolkit.

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

Команды для выполнения в этом случае:
|
1 2 3 4 5 6 7 8 9 10 11 |
# Установить драйверы 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-ускорением:
|
1 2 3 |
docker run —d <strong>—gpus all</strong> —p 3000:3000 \ —v /opt/openwebui:/data \ ghcr.io/open—webui/open—webui:latest |

Вы также можете указать доступ к GPU в вашем файле Docker Compose:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
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 для аппаратного транскодирования.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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-устройства:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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:
|
1 2 |
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:
|
1 2 3 |
# Тест доступа 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:
|
1 2 3 4 5 6 7 |
# Для 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
|
1 2 |
# Использование kubectl (проверьте последнюю версию) kubectl create —f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.16.2/deployments/static/nvidia-device-plugin.yml |
Или вы можете сделать это с помощью Helm:
|
1 2 3 4 5 |
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 с помощью:
|
1 |
kubectl get nodes —o=custom—columns=NAME:.metadata.name,GPU:.status.capacity.‘nvidia\.com/gpu’ |
Затем вы можете добавить запросы на GPU в спецификацию Pod:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 и выйти (для тестирования) |
Для постоянных рабочих нагрузок вы можете использовать деплоймент с долгоживущим контейнером, например:
|
1 2 3 |
resources: limits: nvidia.com/gpu: 1 # Или «2» для нескольких GPU |
MicroK8s также включает встроенный аддон GPU, который автоматически настраивает драйверы для поддерживаемого оборудования, что делает процесс очень простым. Примечание: Это предполагает, что вы уже установили драйверы NVIDIA и Container Toolkit на хост MicroK8s. Аддон развёртывает только device plugin, а не сами драйверы.
|
1 |
microk8s enable gpu |
AMD
AMD имеет плагин устройства для Kubernetes через ROCm:
|
1 |
kubectl create —f https://raw.githubusercontent.com/RadeonOpenCompute/k8s-device-plugin/master/k8s-ds-amd-gpu-dp.yaml |
Затем вы можете планировать GPU-рабочие нагрузки аналогичным образом:
|
1 2 3 |
resources: limits: amd.com/gpu: 1 |
Шаг 5: Устранение неполадок
Если контейнеры «не видят» GPU, вы можете пройти базовую диагностику с помощью нескольких команд на уровне хоста.
|
1 2 3 4 5 6 7 8 |
# Для NVIDIA: nvidia—smi # Для AMD: rocm—smi # Проверьте наличие устройств: ls —la /dev/nvidia* /dev/dri/ |
Если nvidia-smi не работает на хосте, значит, проблема с установкой драйвера. После проверки уровня хоста, если нужно протестировать доступ к GPU внутри контейнера, выполните следующее:
|
1 2 3 4 5 |
# Для 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-узле для экспорта метрик.
|
1 2 3 4 5 6 7 8 9 |
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 для скрапинга метрик:
|
1 2 3 4 |
scrape_configs: — job_name: ‘dcgm’ static_configs: — targets: [‘localhost:9400’] |
AMD
Используйте экспортер ROCm SMI:
|
1 2 3 |
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-совместимые контейнеры?




Добавить комментарий