Перейти к содержанию

# Общие требования

LUNA PLATFORM поставляется в Docker-контейнерах. Для установки необходимы образы Docker-контейнеров LP. Для загрузки образов Docker на сервере требуется подключение к сети Интернет, либо образы следует загрузить на любое другое устройство и перенести на сервер. Требуется выполнить авторизацию к Docker-реестру VisionLabs для загрузки Docker-образов.

LUNA PLATFORM можно развернуть:

- с помощью ручного запуска контейнеров, используя Docker
- с помощью скрипта Docker Compose
- в кластере Kubernetes

В комплекте поставки расположены примеры скрипта Docker Compose и Helm чарты для каждого сервиса.

Запуск LUNA PLATFORM был протестирован на следующих версиях вышеописанного ПО:

- Docker: 25.0.3
- Docker Compose: 2.24.6
- Kubernetes: 1.27

> Тестирование в кластере Kubernetes выполнялось с использованием `ingress-nginx-controller:v1.10.0`.

> Также тестирование выполнялось в Minikube версии 1.32. Minikube предназначен только для локального тестирования и разработки. В продуктивном контуре нужно использовать кластер Kubernetes.

Не гарантируется работа с другими версиями вышеописанного ПО.

Для использования механизма плагинов требуется разрабатывать скрипты с учетом синтаксиса и функциональности, предоставляемых Python 3.11 и выше.

Сервисы LUNA PLATFORM могут быть запущены на всех ОС, где возможно использовать Docker. Запуск Docker-контейнеров LUNA PLATFORM официально протестирован на AlmaLinux 9.5. Все процедуры в руководстве по установке описаны для AlmaLinux 9.5. Работа на других ОС может иметь некоторые особенности, не описанные в данной документации.

В Docker-контейнерах сервисов LUNA PLATFORM используется Almalinux 9.5, за исключением контейнеров Remote SDK и Video Agent - в них Almalinux 8.

Сервисы LUNA PLATFORM могут использовать как CPU, так и GPU процессоры. При разворачивании в кластере Kubernetes, настройки ресурсов можно задать в Helm чартах из комплекта поставки.

> См. раздел "Потребление ресурсов сервисами" в руководстве администратора для получения дополнительной информации о потреблении ресурсов.

# Требования к процессорам

Приведенная ниже конфигурация обеспечит минимальную мощность для работы ПО, но для использования системы в продуктивном контуре этого недостаточно. Требования для использования системы в продуктивном контуре рассчитываются в зависимости от предполагаемой нагрузки.

## CPU

Следующие минимальные системные требования необходимы для установки программного пакета LUNA PLATFORM:

- CPU Intel, минимум 8 физических ядер с тактовой частотой 2.0 GHz или выше. Требуется поддержка набора инструкций AVX2 для CPU;

- RAM DDR3 (рекомендуется DDR4), 8 Гб или выше;

- Свободное место на диске — минимум 80 Гб.

> Необходимое количество свободного места на диске или S3-подобном хранилище напрямую зависит от размера БД и бакетов Image Store. Если база данных очень велика, то может потребоваться более 80 Гб.

> Рекомендуется использование SSD для баз данных и хранилища Image Store.

## GPU

Для ускорения GPU необходим NVIDIA GPU. Поддерживаются архитектуры Turing, Ampere, Ada Lovelace.

Требуется Compute Capability 6.1 или выше.

Требуется минимум 6Гб оперативной или выделенной видеопамяти. Рекомендуется 8 Гб VRAM или более.

CUDA версии 12.4 должна быть установлена на там, где развернуты сервисы Remote SDK, Video Agent (опционально) и Lambda (опционально). Рекомендуемый драйвер NVIDIA — r550.

Важно! Для Minikube есть некоторые особенности при работе на GPU (см. раздел "Использование GPU в Minikube" в руководстве по разворачиванию в кластере Kubernetes).

# Требования к процессорам при работе с нейронными сетями

В данном разделе приведены рекомендации по выбору CPU и GPU для работы с нейронными сетями в LUNA PLATFORM. Следование этим рекомендациям обеспечит максимальную производительность и точность вычислений.

## Рекомендации по CPU

Рекомендуется использовать процессоры серии Intel Pentium Gold или выше. Эти процессоры поддерживают расширенные наборы инструкций, такие как AVX512 FMA, которые значительно повышают производительность при вычислениях с использованием нейронных сетей. При выборе процессора отдавайте предпочтение моделям с большим количеством вычислительных ядер, так как они напрямую влияют на эффективность вычислений.

## Рекомендации по GPU

Для вычислений на GPU поддерживаются только серверные видеокарты.

Игровые GPU не рекомендуются для работы с нейронными сетями в LUNA PLATFORM из-за ограничений совместимости и производительности.

Ниже приведён список рекомендуемых GPU, обеспечивающих стабильную работу с LUNA PLATFORM:

Микроархитектура | Вычислительная способность (Compute Capability) | Модель GPU
--- | --- | ---
Turing | 7.5 | NVIDIA Tesla T4
Ampere | 8.0 | NVIDIA A30
Ampere | 8.0 | NVIDIA A100
Ampere | 8.6 | NVIDIA A40
Ampere | 8.6 | NVIDIA A10
Ampere | 8.6 | NVIDIA A16
Ampere | 8.6 | NVIDIA A2
Ada Lovelace | 8.9 | NVIDIA L4
Ada Lovelace | 8.9 | NVIDIA L40

# Требования к сторонним приложениям

Следующие сторонние приложения используются по умолчанию с LUNA PLATFORM 5.

- PostgreSQL используется в качестве базы данных по умолчанию для сервисов Faces, Configurator, Events, Handlers, Lambda, Tasks и Admin.

> Также возможно использование базы данных Oracle вместо PostgreSQL для всех сервисов кроме сервиса Events. Установка и конфигурация Oracle не описывается в данном руководстве.

- Для сервисов Faces и Sender используется БД Redis.

- Для мониторинга используется БД Influx.

Балансировщики и другие программы могут использоваться при масштабировании системы для обеспечения отказоустойчивости. В руководстве по установке приводятся рекомендации по запуску контейнера Nginx с конфигурационным файлом для балансировки запросов к сервисам API, Faces, Image Store и Events.

Для использования LP рекомендуются следующие версии сторонних приложений:

- PostgreSQL: 16.1
- Oracle: 21c (если используется вместо PostgreSQL)
- Redis: 7.2
- InfluxDB: 2.0.8-alpine
- Grafana: 8.5.20 (опционально)
- Grafana Loki: 2.7.1 (опционально)
- Nginx: 1.17.4-alpine (опционально)

> Эти версии протестированы специалистами VisionLabs. При необходимости можно использовать более новые версии, но их работоспособность не гарантируется.

Для распаковки дистрибутива рекомендуется использовать пакет `unzip`. Команда для скачивания пакета дана в инструкции по установке.

Если необходимо использовать внешнюю базу данных и функцию VLMatch, требуется загрузить дополнительные зависимости, описанные в руководстве по установке (см. раздел "Внешняя база данных").

Docker-контейнеры PostgreSQL, Redis, InfluxDB, Grafana и Nginx можно загрузить из реестра VisionLabs.