Repolode
lupinemachines

lupinemachines/lupine

Мост GPU-over-IP позволяет машинам без GPU использовать CUDA GPU, установленные на удалённых серверах, через сеть.

Open source альтернатива:Juice LabsThunder Compute

Звёзды
2,451
Форки
140
Открытые issues
39
Последний коммит
5 дней назад

Что это?

LUPINE перенаправляет вызовы CUDA driver и NVML с клиентской машины на сервер с физическими GPU. Программы на клиенте используют собственные CUDA runtime и библиотеки без изменений — по сети передаются только вызовы драйвера. Сервер запускается в Docker на машине с GPU, а контейнер клиента предоставляет shim-библиотеки libcuda и NVML, благодаря чему команды вроде nvidia-smi показывают удалённые устройства.

В переменной LUPINE_SERVER можно указать несколько серверов, и на клиенте их GPU будут отображаться единым списком устройств. Копирование данных между устройствами на разных серверах проходит через клиент. Сервер также предоставляет метрики Prometheus на своём RPC-порту и поддерживает HTTPS-адреса за прокси, завершающим TLS. Для подключений используются TCP keepalive и сжатие Zstd, а при получении SIGTERM сервер завершает уже выполняющиеся вызовы CUDA.

Проект написан на C++ и собирается с помощью CMake. Объекты клиента для Linux, macOS и Windows встроены в исполняемый файл сервера. Автор отмечает, что передача данных между устройствами работает медленнее, поскольку проходит по сети, тогда как при обучении моделей и инференсе данные на хост обычно передаются в небольшом объёме.

Ключевые возможности

  • 01Перенаправляет вызовы CUDA driver и NVML, чтобы удалённые GPU отображались локально, в том числе в nvidia-smi.
  • 02Принимает список из нескольких серверов и объединяет их GPU в единый список устройств.
  • 03Предоставляет метрики Prometheus по памяти GPU, загрузке и процессам отдельных клиентов.
  • 04Поддерживает HTTPS-адреса за прокси, завершающим TLS.
  • 05Предоставляет Docker-образы для сочетаний версий CUDA и Ubuntu, а на сервере поддерживает HIP.

Сценарии использования

  • Запуск обучения моделей или инференса с машины для разработки или CI без GPU, используя удалённый GPU-сервер.
  • Совместное использование GPU в серверной стойке несколькими клиентскими машинами по сети.
  • Мониторинг памяти и загрузки удалённых GPU через Prometheus.

Быстрый старт

  1. 1

    Запустите сервер на машине с GPU

    docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04
  2. 2

    Запустите клиент, указав адрес этого сервера

    docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi

Что важно знать

  • Для запуска сервера требуется Docker и машина с GPU, поддерживающим CUDA.
  • Образы клиента основаны на Ubuntu, а образ сервера рассчитан на определённые версии CUDA.

Темы

Частые вопросы

Что такое lupine?
Мост GPU-over-IP позволяет машинам без GPU использовать CUDA GPU, установленные на удалённых серверах, через сеть. LUPINE перенаправляет вызовы CUDA driver и NVML с клиентской машины на сервер с физическими GPU. Программы на клиенте используют собственные CUDA runtime и библиотеки без изменений — по сети передаются только вызовы драйвера. Сервер запускается в Docker на машине с GPU, а контейнер клиента предоставляет shim-библиотеки libcuda и NVML, благодаря чему команды вроде nvidia-smi показывают удалённые устройства.
lupine можно использовать бесплатно? Какая у него лицензия?
lupine распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
lupine всё ещё поддерживается?
Активно поддерживается. Последний коммит в lupine — 15 окт. 2026 г..
Для чего можно использовать lupine?
Запуск обучения моделей или инференса с машины для разработки или CI без GPU, используя удалённый GPU-сервер. Совместное использование GPU в серверной стойке несколькими клиентскими машинами по сети. Мониторинг памяти и загрузки удалённых GPU через Prometheus.
Как установить lupine?
Запустите сервер на машине с GPU: docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04 Запустите клиент, указав адрес этого сервера: docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
Где скачать lupine?
Исходный код и инструкции по установке — на GitHub: https://github.com/lupinemachines/lupine

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты