Введение
Содержание
Введение в аппаратный акселератор
Набор аппаратных акселераторов Kubernetes — это корпоративное решение для оптимизации распределения, изоляции и совместного использования ресурсов GPU в облачных нативных средах. Основанный на device plugins Kubernetes и технологиях NVIDIA, он включает три основных модуля:
-
vGPU Module
Основанный на Opensource GPU-Manager, этот модуль обеспечивает тонкую виртуализацию GPU, разделяя физические GPU на виртуальные единицы с квотами по памяти и вычислительным ресурсам. Идеально подходит для мультиарендных сред с динамическим распределением ресурсов.
-
pGPU Module
Используя официальный Device Plugin NVIDIA, обеспечивает полную изоляцию физического GPU с планированием, учитывающим NUMA. Предназначен для высокопроизводительных вычислительных задач (HPC), требующих выделенного доступа к GPU.
-
MPS Module
Реализует Multi-Process Service NVIDIA для одновременного выполнения нескольких контекстов GPU с ограничениями ресурсов. Оптимизирует приложения с чувствительностью к задержкам за счёт слияния CUDA-ядр.
Преимущества продукта
vGPU Module
- Динамическое разделение: Разделение GPU для поддержки нескольких процессов на одном физическом GPU
- Обеспечение QoS: Гарантированные вычислительные единицы (vcuda-core) и квоты памяти (vcuda-memory)
pGPU Module
- Изоляция на уровне аппаратуры: Прямой PCIe passthrough с защитой IOMMU
- Оптимизация NUMA: Минимизация передачи данных между сокетами за счёт автоматического привязывания к NUMA-узлам
MPS Module
- Низкая задержка выполнения: Снижение задержек на 30-50% благодаря слиянию CUDA-контекстов
- Ограничения ресурсов: Лимитирование вычислительных ресурсов GPU (0-100%) и использования памяти на процесс
- Отсутствие изменений в коде: Работает с немодифицированными CUDA-приложениями
Сценарии применения
Случаи использования vGPU
- Мультиарендные AI-платформы: Совместное использование GPU A100/H100 между командами с гарантированными SLA
- VDI-среды: Предоставление виртуальных рабочих столов с ускорением GPU для CAD/3D рендеринга
- Пакетный вывод: Параллельное обслуживание моделей с дробным распределением GPU
Случаи использования pGPU
- HPC-кластеры: Запуск MPI-задач с эксклюзивным доступом к GPU для моделирования погоды
- Обучение ML: Полное использование GPU для обучения больших языковых моделей
- Медицинская визуализация: Обработка высокоразрешённых данных МРТ без конкуренции за ресурсы
Случаи использования MPS
- Инференс в реальном времени: Аналитика видео с низкой задержкой с использованием параллельных CUDA-потоков
- Оркестрация микросервисов: Совмещение нескольких GPU-микросервисов на общем оборудовании
- Обслуживание с высокой конкуренцией: Увеличение QPS в 3 раза для рекомендательных систем
Технические ограничения
Требуется привилегированный доступ
Требования к доступу к аппаратным устройствам
Права доступа к устройствам
Устройства NVIDIA GPU требуют прямого доступа к защищённым системным ресурсам:
# Права и владельцы файлов устройств
ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195, 0 Aug 1 10:00 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Aug 1 10:00 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Aug 1 10:00 /dev/nvidia-uvm
- Требование: Доступ root для чтения/записи файлов устройств
- Последствие: Контейнеры без root получают ошибки отказа в доступе
Операции на уровне ядра
Необходимые взаимодействия с драйвером NVIDIA
Операция | Требуемые привилегии | Назначение |
---|
Загрузка модуля | CAP_SYS_MODULE | Загрузка модулей ядра NVIDIA |
Управление памятью | CAP_IPC_LOCK | Выделение памяти GPU |
Обработка прерываний | CAP_SYS_RAWIO | Обработка прерываний GPU |
Требования архитектуры device plugin Kubernetes
- Создание сокета: Запись в
/var/lib/kubelet/device-plugins
- Мониторинг состояния: Доступ к
nvidia-smi
и логам ядра
- Распределение ресурсов: Изменение cgroups устройств
Ограничения vGPU
- Поддержка только CUDA ниже версии 12.4
- Отсутствие поддержки MIG при включённом vGPU
Ограничения pGPU
- Отсутствие возможности совместного использования GPU (1:1
сопоставление пода и GPU)
- Требуется Kubernetes 1.25+ с включённым SR-IOV
- Ограничено GPU, подключёнными через PCIe/NVSwitch
Ограничения MPS
- Возможное распространение ошибок между объединёнными контекстами
- Требуется CUDA 11.4+ для ограничения памяти
- Нет поддержки GPU с MIG-разделением