Biblioteca e servidor rápidos e eficientes em memória para executar e servir modelos de linguagem grandes com uma API compatível com a OpenAI.
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 Labs
Thunder 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
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
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
Implementação oficial do FlashAttention, um kernel de atenção exata e eficiente em memória para treinar e executar inferência de modelos Transformer em GPUs.
Sistema de código aberto para executar, gerenciar e escalar workloads de IA em Kubernetes, Slurm e mais de 20 provedores de nuvem ou GPU com uma única interface.
Biblioteca de otimização de deep learning que facilita e torna mais eficiente o treinamento distribuído e a inferência de modelos grandes.
Biblioteca Python que executa LLMs grandes camada por camada, permitindo inferência com modelos da classe 70B em uma única GPU de 4 GB, sem quantização.
SGLang é um framework open source de inferência para servir modelos de linguagem, visão-linguagem e difusão em diversas plataformas com GPU, TPU e CPU.