Стартовые цены: все тарифы на 30% дешевле самого дешёвого конкурента. Сравнение ценКаждый тариф на 30% дешевле самого дешёвого офшорного хостера

База знаний · GPU-серверы

Образы для GPU-серверов: CUDA, PyTorch, Ollama, vLLM и ComfyUI

Что входит в образ OffshoreServ для GPU-серверов и как запустить PyTorch, Ollama, vLLM, ComfyUI и Docker на Ubuntu 24.04, закрыть эндпоинты от внешнего доступа и следить за GPU.

Обновлено 8 мин чтения

В этом руководстве

  • Образ Linux — это Ubuntu 24.04 LTS с предустановленными драйвером NVIDIA и CUDA; проверить их можно командами nvidia-smi и nvcc.
  • Устанавливайте инструменты Python в виртуальные окружения, поскольку Ubuntu 24.04 блокирует установку пакетов через pip на уровне всей системы.
  • Ollama, vLLM и ComfyUI настраиваются за считаные минуты. Привязывайте их к 127.0.0.1 и подключайтесь к ним через SSH-туннель.
  • Для Docker нужен NVIDIA Container Toolkit, а опубликованные порты обходят ufw, если не привязать их к 127.0.0.1.
GPU-серверы11 разделов
Все руководства
На этой странице
  1. Что входит в образ
  2. Проверка GPU
  3. Подготовка Python
  4. Установка PyTorch
  5. Запуск моделей в Ollama
  6. OpenAI-совместимый эндпоинт на vLLM
  7. Генерация изображений в ComfyUI
  8. Docker и NVIDIA Container Toolkit
  9. Закрытие эндпоинтов от внешнего доступа
  10. Мониторинг GPU
  11. Устранение неполадок

Наши GPU-серверы поставляются с выделенными GPU NVIDIA и образом Linux, готовым к работе с CUDA. В этом руководстве мы сначала проверим образ, а затем установим на него популярные инструменты для ИИ. Команды рассчитаны на Ubuntu 24.04 и пользователя с правами sudo; если вы работаете под root, опускайте sudo. Замените SERVER_IP на адрес своего сервера.

Что входит в образ

  • Ubuntu 24.04 LTS со стандартной поддержкой до мая 2029 г.
  • Драйвер NVIDIA, включая утилиту nvidia-smi.
  • CUDA, включая компилятор nvcc.

Версии меняются по мере обновления образа, поэтому проверьте свои:

nvidia-smi
nvcc --version

В верхней части вывода nvidia-smi указаны версия драйвера и значение CUDA Version. Это самый новый выпуск CUDA, который поддерживает драйвер; это значение понадобится ниже при выборе сборки PyTorch. Если nvcc не найден, набор инструментов CUDA обычно установлен в /usr/local/cuda, но не добавлен в PATH:

echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Проверка GPU

nvidia-smi -L
nvidia-smi topo -m

Первая команда выводит список всех GPU с указанием модели: убедитесь, что количество и модель соответствуют вашему тарифу, а объём памяти, который показывает nvidia-smi, соответствует карте, например 24 ГБ у RTX 4090. На серверах с несколькими GPU вторая команда показывает, как GPU соединены между собой (NVLink или PCIe), а от этого зависит, насколько быстро они распределяют работу. Чтобы запустить задачу на одном конкретном GPU, задайте CUDA_VISIBLE_DEVICES; тогда процесс видит только эту карту, а нумерация начинается с 0:

CUDA_VISIBLE_DEVICES=1 python train.py

Подготовка Python

Ubuntu 24.04 помечает системный Python как внешне управляемый, поэтому pip install вне виртуального окружения завершается ошибкой externally-managed-environment. Создавайте отдельное окружение для каждого инструмента: vLLM, например, фиксирует собственную версию PyTorch. Сначала установите базовые пакеты; компилятор и заголовочные файлы нужны инструментам, которые компилируют ядра для GPU во время выполнения:

sudo apt update
sudo apt install -y python3-venv python3-dev build-essential git

Установка PyTorch

PyTorch публикует сборки под конкретные версии CUDA. Актуальные выпуски предлагают сборки для CUDA 12.6 и CUDA 13.0, а также экспериментальную сборку для CUDA 13.2. Выберите сборку не новее версии CUDA, которую сообщает nvidia-smi:

python3 -m venv ~/venvs/torch
source ~/venvs/torch/bin/activate
pip install --upgrade pip
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))"

Последняя строка должна вывести True и название вашего GPU. Сборке cu130 нужен драйвер, который сообщает CUDA 13.0 или новее. Если ваш драйвер сообщает 12.x, используйте в URL индекса cu126. Эта сборка подходит для всех GPU в нашей линейке, кроме RTX 5090, которой нужна CUDA 12.8 или новее.

Запуск моделей в Ollama

Зачем нужен собственный сервер моделей и как обеспечить его безопасность, читайте в статье о том, как развернуть LLM на собственном GPU-сервере. Ollama — самый быстрый способ запустить языковые модели с открытыми весами. Скрипт установки Ollama создаёт системную службу и определяет GPU NVIDIA. Скрипт можно скачать и прочитать перед запуском или сразу передать по конвейеру в оболочку:

curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b
ollama run llama3.1:8b
ollama ps

ollama run открывает интерактивный чат; чтобы выйти из него, введите /bye. В выводе ollama ps в столбце Processor должно быть указано 100% GPU. Если указана доля CPU, модель не помещается в видеопамять: выберите модель поменьше или более сильное квантование. Подобрать размер поможет статья о том, сколько видеопамяти нужно для LLM.

По умолчанию Ollama принимает подключения на 127.0.0.1:11434. Оставьте так и подключайтесь через SSH-туннель, описанный ниже. Ollama также принимает запросы в формате OpenAI по пути /v1, поэтому один и тот же клиентский код работает и с Ollama, и с vLLM. Модели хранятся в /usr/share/ollama/.ollama/models. Чтобы изменить настройки, например адрес прослушивания, добавьте в службу строки Environment= командой:

sudo systemctl edit ollama.service

OpenAI-совместимый эндпоинт на vLLM

vLLM — сервер инференса, созданный для высокой пропускной способности: он обрабатывает множество запросов одновременно, объединяя их в батчи, и работает по тому же HTTP-протоколу, что и OpenAI, поэтому с ним совместимы существующие клиентские библиотеки. Его сборки компилируются под конкретные версии PyTorch и CUDA, поэтому устанавливайте его в отдельное окружение с URL индекса из документации vLLM:

python3 -m venv ~/venvs/vllm
source ~/venvs/vllm/bin/activate
pip install --upgrade pip
pip install vllm --extra-index-url https://download.pytorch.org/whl/cu129

Если ваш драйвер сообщает более старую версию CUDA, в документации vLLM описана и установка через uv с параметром --torch-backend=auto, при которой выбирается сборка PyTorch, подходящая к драйверу.

Создайте токен, чтобы пользоваться сервером могли только вы, запишите его и запустите сервер на localhost:

export VLLM_API_KEY=$(openssl rand -hex 32)
echo "$VLLM_API_KEY"
vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192

При первом запуске модель загружается с Hugging Face в ~/.cache/huggingface; одним только весам этой модели нужно около 15 ГБ видеопамяти, поэтому используйте GPU с 24 ГБ или больше. На RTX A4000 с 16 ГБ выберите модель поменьше, например Qwen/Qwen2.5-3B-Instruct. На серверах с несколькими GPU добавьте --tensor-parallel-size 2 (или 4), чтобы распределить модель между ними. Если не передать --host, vLLM принимает подключения на всех интерфейсах, поэтому всегда задавайте этот параметр. Моделям с ограниченным доступом (gated), например семейству Llama от Meta, нужен ещё и токен доступа Hugging Face: примите лицензию модели на её странице на Hugging Face, затем экспортируйте HF_TOKEN перед запуском сервера.

Проверьте работу сервера из второго SSH-сеанса, предварительно экспортировав в нём тот же токен:

curl http://127.0.0.1:8000/v1/models -H "Authorization: Bearer $VLLM_API_KEY"
curl http://127.0.0.1:8000/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer $VLLM_API_KEY" -d '{"model": "Qwen/Qwen2.5-7B-Instruct", "messages": [{"role": "user", "content": "Say hello in five words."}]}'

Запуск vLLM как службы

Сервер, запущенный из оболочки, останавливается, когда вы выходите из системы. Чтобы он продолжал работать и снова запускался после перезагрузки, сохраните токен в файле, доступном для чтения только root, затем создайте юнит systemd:

sudo install -m 600 /dev/null /etc/vllm.env
echo "VLLM_API_KEY=$(openssl rand -hex 32)" | sudo tee /etc/vllm.env > /dev/null
sudo cat /etc/vllm.env
sudo systemctl edit --force --full vllm.service

Вставьте этот юнит в редактор, заменив YOUR_USER на своё имя пользователя:

[Unit]
Description=vLLM server
After=network-online.target
Wants=network-online.target

[Service]
User=YOUR_USER
EnvironmentFile=/etc/vllm.env
ExecStart=/home/YOUR_USER/venvs/vllm/bin/vllm serve Qwen/Qwen2.5-7B-Instruct --host 127.0.0.1 --port 8000 --max-model-len 8192
Restart=on-failure

[Install]
WantedBy=multi-user.target

Затем запустите службу, включите её автозапуск при загрузке и следите за её журналом:

sudo systemctl enable --now vllm.service
sudo journalctl -u vllm.service -f

Генерация изображений в ComfyUI

git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI
python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
pip install -r requirements.txt
python main.py --listen 127.0.0.1 --port 8188

Контрольные точки моделей поместите в ComfyUI/models/checkpoints, а другие файлы, например VAE и LoRA, — в соответствующие папки внутри models. С параметром --listen без адреса ComfyUI принимает подключения на всех интерфейсах IPv4 и IPv6 без какого-либо пароля; так можно делать только за правилом брандмауэра, которое разрешает доступ исключительно с вашего IP-адреса. Пользовательские узлы выполняют произвольный код на Python с правами вашего пользователя, поэтому устанавливайте узлы только из источников, которым доверяете.

Docker и NVIDIA Container Toolkit

Чтобы контейнеры получили доступ к GPU, нужен NVIDIA Container Toolkit. Установите Docker из репозиториев Ubuntu, добавьте репозиторий NVIDIA и настройте Docker на использование среды выполнения NVIDIA:

sudo apt install -y docker.io
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.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
sudo docker run --rm --gpus all ubuntu nvidia-smi

Последняя команда должна вывести ту же таблицу, что и на хосте. Если вы предпочитаете Docker CE из собственного репозитория Docker, он работает точно так же. Например, эта команда запускает vLLM в контейнере и публикует его только на localhost:

sudo docker run --rm --gpus all --ipc=host -p 127.0.0.1:8000:8000 -v ~/.cache/huggingface:/root/.cache/huggingface vllm/vllm-openai:latest --model Qwen/Qwen2.5-7B-Instruct

Закрытие эндпоинтов от внешнего доступа

Открывать любой из этих инструментов наружу в исходном виде небезопасно: у Ollama и ComfyUI вообще нет аутентификации, а токен vLLM необязателен. Держите их привязанными к 127.0.0.1 и подключайтесь к ним через SSH-туннель со своего компьютера (в Windows та же команда работает в PowerShell):

ssh -N -L 8188:127.0.0.1:8188 -L 8000:127.0.0.1:8000 -L 11434:127.0.0.1:11434 YOUR_USER@SERVER_IP

Пока туннель работает, откройте в браузере http://127.0.0.1:8188, чтобы попасть в ComfyUI, а OpenAI-совместимые клиенты направьте на http://127.0.0.1:8000/v1. Всё остальное на сервере закройте брандмауэром, который разрешает только SSH, как описано в руководстве по усилению защиты. Если сервис должен быть публичным, поставьте перед ним обратный прокси с TLS, аутентификацией и ограничением частоты запросов и не забывайте о правилах допустимого использования.

Мониторинг GPU

nvidia-smi dmon -s pucm
watch -n 1 nvidia-smi
nvidia-smi --query-gpu=index,temperature.gpu,utilization.gpu,memory.used,memory.total,power.draw --format=csv -l 5
sudo apt install -y nvtop
nvtop

nvidia-smi dmon каждую секунду выводит по строке на каждый GPU: энергопотребление и температура (p), загрузка (u), частоты (c) и память (m). Вариант с запросом метрик раз в пять секунд выводит данные в формате CSV — это удобно для журналирования длительных задач. nvtop — интерактивный монитор всех GPU и их процессов, похожий на htop. Если под нагрузкой частоты падают, выясните причину:

nvidia-smi -q -d PERFORMANCE

Устранение неполадок

  • «CUDA out of memory»: модель, её контекст или батч не помещаются в память. Выберите модель поменьше или с более сильным сжатием, уменьшите --max-model-len в vLLM или сократите размер батча. nvidia-smi покажет, не занимает ли память другой процесс.
  • torch.cuda.is_available() возвращает False: виртуальное окружение не активировано или сборка PyTorch рассчитана на более новую версию CUDA, чем поддерживает драйвер. Сравните torch.version.cuda с версией CUDA в выводе nvidia-smi.
  • «Driver/library version mismatch»: пакеты драйвера обновились, но старый модуль ядра всё ещё загружен. Перезагрузите сервер.
  • Контейнер не видит GPU: добавьте --gpus all к команде docker run и проверьте, что команда nvidia-ctk runtime configure была выполнена, а Docker перезапущен.
  • Медленный первый запуск: при первом запуске загружаются модели и компилируются ядра для GPU. Последующие запуски проходят быстрее.

Готовы выбрать оборудование? Сравните серверы с RTX, GPU для дата-центров и серверы с несколькими GPU.

Застряли на каком-то шаге?

Клиенты с выделенными и GPU-серверами могут открыть тикет в личном кабинете, указав IP-адрес сервера и то, что они уже пробовали сделать. Целевой срок первого ответа — менее 12 часов. Для всех остальных серверов используйте действия с сервером на его странице, руководства и страницу статуса сети.

С возвращением

Войдите, чтобы управлять серверами и балансом.

Без KYCПроверка на человека с помощью Cloudflare TurnstileБез отслеживания