lupinemachines/lupine
LUPINE is a GPU over IP bridge allowing GPUs on remote machines to be attached to CPU-only machines.
LUPINE – GPU-over-IP 브리지
기능 설명 – LUPINE은 GPU가 없는 CPU 전용 머신이 네트워크를 통해 실제 GPU가 있는 다른 머신으로 GPU 드라이버 호출을 전달하여 CUDA 기반 프로그램을 실행할 수 있게 합니다. 원격 GPU는 드라이버 라이브러리(libcuda.so, libnvidia-ml.so 등)가 클라이언트에 설치된 것처럼 로컬에 나타납니다.
사용 방법
- GPU가 장착된 호스트에서 서버 실행 (Docker 이미지
lupine-server). TCP 포트 14833에서 수신 대기하고 HTTP/2 RPC 인터페이스를 통해 GPU를 노출합니다. - CPU 전용 호스트에서 클라이언트 실행 (Docker 이미지
lupine-client). 환경 변수LUPINE_SERVER=<host>:14833을 설정합니다. 클라이언트는 LUPINE 심 라이브러리를 사전 로드하므로 모든 CUDA 프로그램(예:nvidia-smi, PyTorch, 사용자 정의 커널)이 자동으로 원격 GPU와 통신합니다. - 선택적 추가 기능 – 추적(
LUPINE_TRACE), TLS(HTTPS 프록시로 서버 앞단 구성), 또는LUPINE_SERVER엔드포인트의 쉼표로 구분된 목록을 제공하여 여러 서버에 걸친 멀티 GPU를 활성화할 수 있습니다.
주요 기술 포인트
- 드라이버 전용 전달 – 저수준 드라이버 호출만 네트워크를 통해 전송됩니다. 애플리케이션은 자체 CUDA 런타임을 계속 사용합니다.
- 심 – LUPINE은 드라이버 호출을 RPC로 변환하는 경량 "심" 라이브러리(
libcuda.so.1,libnvidia-ml.so.1, NCCL, nvSHMEM)를 제공합니다. - 압축 및 유지 연결 – HTTP/2 본문은 Zstd로 압축됩니다. TCP 유지 연결(유휴 60초, 프로브 15초)은 유휴 흐름 시간 초과를 방지합니다.
- 메트릭 –
/metrics엔드포인트는 추가 모니터링 에이전트 없이 Prometheus 호환 GPU 사용 통계를 노출합니다. - 정상 종료 –
SIGTERM은 진행 중인 CUDA 호출을 드레인하고LUPINE_CHECKPOINT_LIBRARY로 제공된 체크포인트 공급자를 선택적으로 실행합니다. - 멀티 GPU / 멀티 서버 – 여러 서버의 장치는 단일 순서 목록으로 표시됩니다. 서버 간
cuMemcpyPeer는 클라이언트를 통한 스테이징으로 작동합니다. - 플랫폼 지원 – Linux, macOS, Windows(amd64 및 arm64)용 사전 빌드 클라이언트 번들. Linux 클라이언트는 manylinux_2_28 ABI(glibc ≥ 2.28)를 대상으로 합니다.
일반적인 워크플로우
# GPU 호스트
docker run --rm --gpus all -p 14833:14833 \
ghcr.io/lupinemachines/lupine-server:cuda-13.3.1-ubuntu24.04
# CPU 전용 호스트 – 모든 CUDA 프로그램 실행
docker run --rm -it -e LUPINE_SERVER=<gpu-host>:14833 \
ghcr.io/lupinemachines/lupine-client:cuda-13.3.1-ubuntu24.04 nvidia-smi
PyTorch 기반 클라이언트 이미지(Dockerfile은 README에 표시)를 빌드하고 원격 GPU에 대해 작은 훈련 작업(microgpt_train)을 실행할 수도 있습니다.
대상 사용자 – 별도의 데이터 센터나 클라우드 VM에 강력한 GPU에 액세스할 수 있지만 로컬에 전체 CUDA 드라이버 스택을 설치하지 않고 가벼운 CPU 전용 워크스테이션에서 개발하려는 연구자 또는 엔지니어.
제한 사항
- 내장 인증이 없습니다. 보안이 필요한 경우 서버를 TLS 종료 프록시 뒤에 배치해야 합니다.
- 서버 간 피어 투 피어 복사는 클라이언트를 통해 스테이징되므로 추가 호스트 메모리 트래픽이 발생합니다.
- 이전 Linux 배포판(CentOS 7, Ubuntu 18.04)은 더 이상 지원되지 않습니다.
자세한 정보 – 저장소에는 체크포인트 공급자, 추적 및 심을 로컬에서 컴파일하는 방법에 대한 자세한 문서가 포함되어 있습니다. Prometheus 메트릭은 http://<server>:14833/metrics에서 사용할 수 있습니다.
위의 모든 정보는 프로젝트 README에서 직접 가져온 것입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트