Архитектура GPU-сервера для видеоаналитики
Сервер для ИИ-видеоаналитики - это не просто мощный компьютер с видеокартой. Это спроектированная архитектура, где каждый компонент работает на пределе 24/7.
GPU: сердце системы
Выбор GPU определяет, сколько камер и моделей сможет обрабатывать сервер одновременно. Ключевые параметры:
Память GPU (VRAM): определяет, какие модели и какой batch size можно запустить. Модель YOLO11x требует ~8 GB для инференса batch=16. ArcFace с batch=256 - ~16 GB. Детекция + классификация + трекинг - ~24-32 GB.
Вычислительная мощность: FP16/INT8 Tensor Cores для инференса. RTX 5090 - 380 TFLOPS FP16. RTX 6000 Ada - 387 TFLOPS FP16. H100 - 989 TFLOPS FP8.
Тип памяти: GDDR6X (RTX 4090), GDDR7 (RTX 5090, RTX 6000 Blackwell), GDDR6 (RTX 6000 Ada), HBM3 (H100). HBM3 даёт пропускную способность до 3.35 TB/s - критично для больших батчей.
Декодирование: NVDEC вместо CPU
Каждый RTSP-поток H.264 1080p на CPU сжигает 30-40% одного ядра. 32 камеры - и сервер не справляется ещё до инференса.
Решение: аппаратное декодирование NVDEC в GPU. Один GPU T4 декодирует 32 потока 1080p без нагрузки на CPU. DeepStream SDK автоматизирует этот процесс через плагин nvdec.
Инференс: TensorRT вместо PyTorch
Нативный PyTorch на GPU - хороший старт для разработки, но плохое решение для продакшена. TensorRT оптимизирует модель: квантизация int8, fusion операций, автоматический выбор алгоритма.
Результат: ускорение инференса в 3-5 раз по сравнению с нативным PyTorch. Задержка с 50 мс падает до 12 мс.
Процесс:
1. Экспортируем модель из PyTorch/TensorFlow в ONNX.
2. Генерируем TensorRT-движок через trtexec с оптимизацией FP16 или int8.
3. Разворачиваем Triton Inference Server с TensorRT backend.
4. Настраиваем динамический батчинг для максимальной пропускной способности.
Стриминг: DeepStream для мультикамер
NVIDIA DeepStream - GPU-ускоренный фреймворк для видеоаналитики, построенный на GStreamer. 40+ плагинов для:
- Декодирования (NVDEC): H.264, H.265, AV1.
- Мультикамерного батчинга: объединение потоков в один батч для инференса.
- Инференса (TensorRT, Triton): запуск моделей на GPU.
- Трекинга (nvtracker): присвоение persistent object_id.
- OSD (nvdsosd): наложение рамок и меток на видео.
- Отправки данных (nvmsgbroker): MQTT, Kafka, REST.
DeepStream позволяет обработать 16-32 потока 1080p на одном GPU T4 с лёгкой моделью детекции. С frame-skip (пропуск кадров между инференсами) - до 64 потоков без значительной потери точности.
Edge: Jetson Orin для линии
Когда сервер не подходит по расстоянию или задержке, используем NVIDIA Jetson:
Jetson AGX Orin: 275 TOPS, 64 GB LPDDR5. Для 4-16 камер с инференсом YOLO11 + трекинг + классификация.
Jetson Orin NX: 100 TOPS, 16 GB LPDDR5. Для 2-8 камер, более простых задач.
Jetson Thor: следующее поколение для robotics и edge AI.
Edge-вычисления идеальны для установки на производственную линию, в шкаф Автоматики, в удалённой точке без доступа к центральному серверу.
Мониторинг: Prometheus + Grafana
Сервер видеоаналитики без мониторинга - это бомба замедленного действия. Настраиваем:
- GPU metrics: utilization, memory, temperature, power draw (nvidia-smi, DCGM).
- Pipeline metrics: FPS по каждой камере, задержка инференса, количество объектов.
- System metrics: CPU, RAM, disk I/O, network throughput.
- Alertmanager: уведомления в Telegram/Email при перегреве GPU, падении FPS, потере связи с камерой.
Интеграция с АСУ ТП
Результат инференса должен попадать в систему, где принимаются решения:
PLC: дискретный сигнал PASS/FAIL через Modbus TCP или Profinet. Задержка 5-20 мс.
MES/SCADA: JSON через OPC UA или MQTT. Объект, класс, координата, timestamp, фото.
REST/gRPC API: Triton Inference Server предоставляет API для внешних систем.
Заключение
GPU-сервер для видеоаналитики - это не покупка видеокарты и установка драйверов. Это проектирование архитектуры: GPU с нужной памятью, NVDEC для декодирования, TensorRT для инференса, DeepStream для стриминга, Triton для API, Prometheus для мониторинга. Каждый компонент влияет на итоговую производительность.
Мы проектируем, собираем и разворачиваем серверы под конкретную задачу: считаем камеры, модели, определяем задержку и throughput. Результат - сервер, который работает 24/7, обрабатывает все потоки без потерь и готов к масштабированию.
