Repolode
lupinemachines

lupinemachines/lupine

Uma ponte de GPU por IP que permite que máquinas sem GPU usem GPUs CUDA instaladas em servidores remotos pela rede.

Alternativa open source a:Juice LabsThunder Compute

Estrelas
2,451
Forks
140
Issues abertas
39
Último commit
há 5 dias

O que é?

O LUPINE encaminha chamadas ao driver CUDA e ao NVML de uma máquina cliente para um servidor que tem as GPUs físicas. Os programas no cliente executam seu próprio runtime e suas próprias bibliotecas CUDA sem alterações; apenas as chamadas ao driver atravessam a rede. O servidor roda em Docker na máquina com GPU, e o contêiner cliente disponibiliza shims de libcuda e NVML para que comandos como nvidia-smi mostrem os dispositivos remotos.

É possível listar vários servidores em um único valor de LUPINE_SERVER, e as GPUs deles aparecem como uma única lista de ordinais no cliente. Cópias entre dispositivos em servidores diferentes passam pelo cliente. O servidor também expõe métricas do Prometheus na porta RPC e aceita endpoints HTTPS atrás de um proxy que encerra TLS. As conexões usam TCP keepalive e compressão Zstd, e o servidor aguarda a conclusão das chamadas CUDA em andamento ao receber SIGTERM.

O projeto é escrito em C++ e compilado com CMake. Os objetos cliente para Linux, macOS e Windows são incorporados ao executável do servidor. O autor observa que as transferências entre dispositivos são mais lentas porque passam pela rede, enquanto o treinamento e a inferência de modelos geralmente transferem poucos dados para o host.

Recursos principais

  • 01Encaminha chamadas ao driver CUDA e ao NVML para que GPUs remotas apareçam localmente, inclusive no nvidia-smi.
  • 02Aceita vários servidores em uma única lista de endpoints e reúne suas GPUs em uma só lista de dispositivos.
  • 03Expõe métricas do Prometheus sobre memória e utilização das GPUs, além dos processos de cada cliente.
  • 04Aceita endpoints HTTPS atrás de um proxy que encerra TLS.
  • 05Disponibiliza imagens Docker para combinações de versões do CUDA e do Ubuntu, com suporte a HIP no servidor.

Casos de uso

  • Executar treinamento ou inferência com GPU a partir de uma máquina de desenvolvimento ou CI sem GPU, usando um servidor remoto com GPU.
  • Compartilhar GPUs em um rack de servidores com várias máquinas cliente pela rede.
  • Monitorar a memória e a utilização de GPUs remotas pelo Prometheus.

Início rápido

  1. 1

    Execute o servidor na máquina com GPU

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

    Execute o cliente apontando para esse servidor

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

Antes de usar

  • É necessário ter Docker e uma máquina com GPU compatível com CUDA executando o servidor.
  • As imagens do cliente são baseadas no Ubuntu, e a imagem do servidor é direcionada a versões específicas do CUDA.

Tópicos

Perguntas frequentes

O que é lupine?
Uma ponte de GPU por IP que permite que máquinas sem GPU usem GPUs CUDA instaladas em servidores remotos pela rede. O LUPINE encaminha chamadas ao driver CUDA e ao NVML de uma máquina cliente para um servidor que tem as GPUs físicas. Os programas no cliente executam seu próprio runtime e suas próprias bibliotecas CUDA sem alterações; apenas as chamadas ao driver atravessam a rede. O servidor roda em Docker na máquina com GPU, e o contêiner cliente disponibiliza shims de libcuda e NVML para que comandos como nvidia-smi mostrem os dispositivos remotos.
lupine é gratuito? Qual é a licença?
lupine é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
lupine ainda é mantido?
Manutenção ativa. O último commit de lupine foi em 15 de out. de 2026.
Para que posso usar lupine?
Executar treinamento ou inferência com GPU a partir de uma máquina de desenvolvimento ou CI sem GPU, usando um servidor remoto com GPU. Compartilhar GPUs em um rack de servidores com várias máquinas cliente pela rede. Monitorar a memória e a utilização de GPUs remotas pelo Prometheus.
Como instalar lupine?
Execute o servidor na máquina com GPU: docker run --rm --gpus all -p 14833:14833 ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04 Execute o cliente apontando para esse servidor: docker run --rm -it -e LUPINE_SERVER=<server>:14833 ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
Onde consigo lupine?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lupinemachines/lupine

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados