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

Обзор развертывания TensorFlow на сервере

Предварительные требования и базовые условия

Развертывание предназначено для операционных систем на базе Ubuntu или Debian. Для выполнения задач установки системе требуются права суперпользователя (root) или доступ к sudo. Необходимо выполнить следующие аппаратные и программные требования:

  • Операционная система: Дистрибутивы Ubuntu или Debian.

  • Аппаратное обеспечение: Требуется графический процессор NVIDIA. В частности, скрипт установки обнаруживает графические процессоры NVIDIA H100 (идентификатор устройства 10de:2330) для установки соответствующего пакета ядра Linux (linux-generic-hwe-22.04).

  • Права доступа: Требуется доступ с привилегиями root для установки пакетов во всей системе и создания пользователей.

  • Учетная запись пользователя: Приложение запускается под учетной записью системного пользователя с именем user.

  • Порты: В конфигурационных файлах не определены специфические сетевые порты для внешнего доступа; настройка ориентирована на локальное ускорение через GPU и среду Python.

Структура файлов и каталогов

Процесс установки создает специфические каталоги и файлы для управления средой TensorFlow, драйверами CUDA и учетными данными пользователя.

  • /root/install_script.sh: Основной скрипт установки, сгенерированный в процессе развертывания.

  • /root/user_credentials: Файл, содержащий случайным образом сгенерированный пароль для учетной записи user.

  • /home/user: Домашний каталог пользователя приложения, где создается виртуальная среда Python.

  • /home/user/venv: Каталог виртуальной среды Python.

  • /home/user/TensorRT-8.6.1.6: Распакованный каталог пакета TensorRT.

  • /home/user/tensorflow_install.sh: Скрипт для установки и настройки зависимостей TensorFlow.

  • /home/user/tensorflow.sh: Скрипт активации для загрузки переменных окружения и виртуальной среды.

  • /usr/local/cuda: Каталог установки набора инструментов NVIDIA CUDA Toolkit.

  • /usr/local/cuda-12.2/lib64: Путь к библиотекам для версии CUDA 12.2.

Процесс установки приложения

Развертывание выполняется с помощью скрипта оболочки (install_script.sh), расположенного в корневом каталоге. Этот скрипт выполняет следующие действия:

  1. Обновление системы: Обновление всех системных пакетов и удаление неиспользуемых зависимостей.

  2. Установка драйверов:

    • Обнаружение оборудования NVIDIA (специфическая проверка на наличие 10de:2330 для GPU H100).

    • Установка рекомендуемого драйвера NVIDIA с использованием ubuntu-drivers-common.

    • Установка компилятора GCC, необходимого для CUDA.

  3. Настройка набора инструментов CUDA:

    • Скачивание ключа (keyring) CUDA и установка набора инструментов CUDA на основе обнаруженной версии выпуска Ubuntu.
  4. Создание пользователя:

    • Создание системного пользователя с именем user и домашним каталогом в /home/user.

    • Генерация случайного пароля длиной 8 символов, который сохраняется в /root/user_credentials.

    • Добавление пользователя user в группы users и sudo.

  5. Настройка окружения:

    • Установка Python 3.10, pip и venv.

    • Установка libnvinfer5-dev для поддержки TensorRT.

    • Добавление необходимых переменных PATH и LD_LIBRARY_PATH в ~/.bashrc для указания на бинарные файлы и библиотеки CUDA.

  6. Установка TensorFlow и TensorRT:

    • Запуск tensorflow_install.sh от имени пользователя user.

    • Создание виртуальной среды.

    • Установка tensorflow[and-cuda] через pip.

    • Скачивание и распаковка TensorRT 8.6.1.6.

    • Установка предварительной версии колеса tensorrt.

  7. Проверка (Validation):

    • Запуск команды Python для проверки работоспособности TensorFlow и возможности обнаружения физических устройств GPU.

Права доступа и безопасность

Безопасность и управление доступом осуществляются через учетные записи пользователей и права на файлы, установленные в процессе установки:

  • Учетная запись пользователя: Приложение работает под учетной записью user, которая является членом группы sudo, что предоставляет права администратора.

  • Пароли: Уникальный пароль генерируется во время выполнения и сохраняется в /root/user_credentials. Этот файл доступен для чтения пользователем root.

  • Права на файлы:

    • /root/install_script.sh: u=rwx,g=r,o=r (владелец: чтение/запись/выполнение, другие: только чтение).

    • Скрипты в /home/user/: Команда chmod +x применяется к tensorflow_install.sh и tensorflow.sh.

  • Ограничения: В предоставленной конфигурации не определены специфические правила межсетевого экрана (firewall) или ограничения по ключам SSH.

Базы данных

В предоставленных исходных файлах не содержатся установки, настройки или параметры подключения баз данных. Развертывание сосредоточено на фреймворке TensorFlow и драйверах GPU.

Контейнеры Docker и их развертывание

В конфигурации отсутствуют контейнеры Docker, команды docker run или файлы docker-compose. Приложение развертывается непосредственно на операционной системе хоста с использованием нативных менеджеров пакетов и виртуальных сред Python.

Прокси-серверы

Не определены прокси-серверы (Nginx, Traefik), SSL-сертификаты или конфигурации пользовательских доменов. Настройка не включает Certbot или управление обратным прокси.

Настройки разрешений

Скрипт установки применяет следующие настройки разрешений:

  • Системные скрипты: Основной установщик в /root/install_script.sh установлен в режиме 744 (u=rwx,g=r,o=r).

  • Скрипты пользователя: Скрипты, созданные в /home/user/ (tensorflow_install.sh, tensorflow.sh), делаются исполняемыми с помощью chmod +x.

  • Владелец: Файлы и каталоги внутри /home/user/ принадлежат учетной записи пользователя user.

Расположение файлов конфигурации и данных

Файлы конфигурации и данные находятся по следующим путям:

  • Скрипт активации: /home/user/tensorflow.sh (Загружает виртуальную среду и устанавливает CUDNN_PATH и LD_LIBRARY_PATH).

  • Виртуальная среда: /home/user/venv.

  • Данные TensorRT: /home/user/TensorRT-8.6.1.6.

  • Учетные данные пользователя: /root/user_credentials.

  • Переменные окружения: Определены в /home/user/.bashrc и загружаются через tensorflow.sh.

Доступные порты для подключения

В предоставленной конфигурации не определены сетевые порты для удаленного доступа. Установка TensorFlow является локальной для экземпляра сервера.

Запуск, остановка и обновление

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

  • Запуск окружения: Для активации виртуальной среды и установки необходимых путей к библиотекам для CUDA и TensorRT выполните:

    source /home/user/tensorflow.sh
    
    Эта команда активирует venv и экспортирует переменные CUDNN_PATH и LD_LIBRARY_PATH.

  • Тестирование установки: После активации окружения проверьте настройку с помощью:

    python3 -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000]))); print(tf.config.list_physical_devices())"
    

  • Переустановка или обновление: Для переустановки или обновления зависимостей повторно запустите скрипт установки:

    /home/user/tensorflow_install.sh
    
    Обратите внимание, что этот скрипт создает новую виртуальную среду и переустанавливает пакеты, что может привести к перезаписи предыдущего состояния.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×