GPUWorks 0.1 릴리스 – vLLM 및 SGLang용 초경량 GPU 클러스터 관리자

TL;DR

GPUWorks는 퍼블릭 클라우드, 프라이빗 클라우드 및 Mac에서 단일 GPU 클러스터를 생성하는 40MB 바이너리를 제공하며, NVIDIA, AMD, Huawei Ascend, T‑Head PPU, Hygon 및 Apple Silicon을 지원하고, vLLM, SGLang 및 기타 엔진으로 LLM을 서빙하기 위한 OpenAI 호환 API를 노출합니다.


검증된 모델-가속기 조합의 원클릭 배포

GPUWorks는 392개 모델(예: Qwen, DeepSeek, Llama, Gemma, Whisper)에 대한 1,235개 실행 사양 카탈로그를 제공합니다. 각 사양은 구체적인 Hugging Face 또는 ModelScope 리비전을 고정하고 특정 가속기에 필요한 정확한 플래그를 포함합니다. UI에서 모델을 선택하면 메모리 추정치, 선택된 GPU, 다른 노드가 거부된 이유가 자동으로 표시된 후 원클릭으로 모델을 배포합니다.

"내장 카탈로그는 392개 모델에 대한 1,235개 실행 사양을 제공합니다... 플래그를 찾는 대신 모델을 선택하고 배포를 누르면 됩니다." – GPUWorks README

단일 스케줄러의 이기종 하드웨어

스케줄러는 NVIDIA, AMD Instinct, Huawei Ascend, T‑Head PPU, Hygon DCU 및 Apple Silicon을 일급 시민으로 취급합니다. 노드는 벤더 CLI(nvidia-smi, npu-smi 등)를 통해 기능을 보고하고, 스케줄러는 각 배포를 실행 사양을 충족하는 노드에 매칭합니다. 이로써 벤더별 별도 클러스터가 필요 없어집니다.

퍼블릭 및 프라이빗 리소스의 통합 풀

GPUWorks는 RunPod, CompShare, AutoDL, Vast.ai, Alibaba Cloud의 인스턴스와 ZStack Cloud의 VM을 수집할 수 있습니다. 경량 에이전트(curl … | sh)를 설치한 후 노드는 WebSocket을 통해 서버로 아웃바운드 연결을 하므로 인바운드 방화벽 규칙이 필요 없습니다. 따라서 단일 서버가 임대 클라우드 GPU와 온프레미스 서버에서 동시에 워크로드를 스케줄링할 수 있습니다.

초경량 아키텍처

  • 서버와 에이전트는 정적 Go 바이너리(CGO 없음, 총 < 40MB)입니다. 서버는 웹 UI를 내장하고 모든 상태를 단일 SQLite 파일에 저장합니다.
  • 에이전트의 아웃바운드 WebSocket 연결로 포트 포워딩이나 VPN이 필요 없습니다.
  • Alibaba Cloud 벤치마크에서 단일 서버가 7개 리전에 걸쳐 1,003대의 GPU 머신을 관리하고, 4분 안에 500개 이상의 레플리카를 배치했으며, 9 CPU 코어와 1.6GB RAM만 사용하면서 2,000개의 동시 요청을 처리했습니다.

메모리 인지 배치 및 GPU 공유

GPUWorks는 시작 전에 모델 가중치, KV 캐시 및 엔진 오버헤드에 필요한 메모리를 추정합니다. 그런 다음 하드 메모리 할당량(MiB 단위)을 적용하여 여러 모델이 단일 GPU를 공유할 수 있게 합니다(예: NVIDIA는 HAMi‑core, Ascend는 vCANN). 슬립/웨이크 기능을 통해 모델이 동일한 카드에서 번갈아 실행될 수 있으며, NVIDIA, Ascend, PPU 및 Hygon에서 검증되었습니다.

스케일링 및 고급 추론 기능

  • 레플리카 스케일링은 노드 간, 멀티노드 텐서/파이프라인 병렬 처리, 프리필/디코드 분리(예: NVIDIA의 vLLM + NIXL, Ascend의 vLLM‑Ascend + Mooncake)를 지원합니다.
  • OpenAI 호환 게이트웨이는 /v1/chat/completions, /v1/embeddings 등을 노출하며, 라우팅 전략(최소 요청, 접두사 선호, 장애 조치), API 키 할당량 및 키별 토큰 계정을 제공합니다.
  • 관찰 가능성: 실시간 GPU/엔진 메트릭, 검색 가능한 로그, 요청별 OTLP 트레이스, 웹 터미널 액세스, 동시성을 스윕하는 내장 벤치마크를 제공합니다.
  • AI 어시스턴트 및 MCP: UI에 클러스터에 대해 질문하거나 Claude Code(또는 모든 MCP 클라이언트)를 읽기 전용 MCP 엔드포인트에 연결하여 프로그래매틱 인트로스펙션을 수행할 수 있습니다.

에어갭 및 오프라인 준비

GPUWorks는 로컬 아카이브 또는 HTTP 파일 서버에서 컨테이너 이미지와 모델 파일을 가져오고, 인터넷 없이 노드 간 모델 동기화를 지원합니다. 사용량 보고는 설정 또는 server.yaml에서 usage_report: false로 비활성화할 수 있습니다.

빠른 시작 가이드 (Linux/macOS)

  1. 서버 설치
    bash <(curl -fsSL https://dl.gpuworks.ai/get.sh)
    
    스크립트는 체크섬을 검증하고, 포트 8800에서 systemd 서비스를 설치하며, 관리자 비밀번호를 출력합니다.
  2. GPU 노드 추가 대상 호스트에서 생성된 명령을 실행합니다. 예:
    curl -fsSL http://<server>:8800/install.sh | sh -s -- --server http://<server>:8800 --token <node-token>
    
  3. 모델 배포 UI에서 Qwen/Qwen3-1.7B를 선택하고 메모리 추정치를 검토한 후 배포를 클릭합니다. API 토큰을 생성하고 모델을 호출합니다:
    curl http://<server>:8800/v1/chat/completions \
         -H "Authorization: Bearer gw-…" -H "Content-Type: application/json" \
         -d '{"model": "qwen3-1.7b", "messages": [{"role": "user", "content": "Hello!"}]}'
    

지원되는 가속기 및 기능

가속기 전체 GPU 배포 dGPU(공유) 슬립/웨이크 멀티노드 PD 분리
NVIDIA (CUDA) ✅ Docker, containerd, runveil ✅ MiB 단위 할당량 ✅ vLLM ✅ ✅ vLLM + NIXL
AMD (ROCm) ✅ Docker, containerd, runveil ✅ 사용자 공간 할당량 ✅ vLLM ✅ vLLM ✅ vLLM + NIXL
Huawei Ascend (CANN) ✅ Docker, containerd, runveil ✅ MiB 단위 할당량 ✅ vLLM‑Ascend ✅ ✅ vLLM‑Ascend + Mooncake
T‑Head PPU (HGGC) ✅ Docker, containerd, runveil ✅ MiB 단위 할당량 ✅ vLLM ✅ ✅ SGLang + Mooncake
Hygon DCU (DTK) ✅ Docker, containerd, runveil ✅ MiB 단위 할당량 ✅ vLLM ✅ 🧪 vLLM + Mooncake
Apple Silicon (M1‑M5) ✅ vllm‑metal, MLX, llama.cpp — — — —

✅ = 실제 하드웨어에서 검증됨, 🧪 = 실험적.

Hacker News 커뮤니티 반응

  • 긍정적 의견 – 한 댓글 작성자는 Mac 사용자에게 매력적임을 강조했습니다: "이 도구는 Kubernetes 오버헤드 없이 Mac에서 로컬 LLM을 실행하는 데 훌륭해 보입니다. 40MB 경량 바이너리로 클러스터를 관리할 수 있다는 것이 인상적입니다."
  • 질문 명확화 – 사용자들은 퍼블릭 및 프라이빗 클라우드가 어떻게 통합되는지, 플랫폼이 가져오는 사회적 이점이 무엇인지 물었으며, 관심을 보이면서도 더 많은 설명 자료가 필요함을 시사했습니다.

GPUWorks를 고려해야 할 때

  • 다양한 하드웨어에서 실행되는 모델을 위한 단일 OpenAI 호환 엔드포인트가 필요한 경우.
  • Kubernetes 없이 바이너리 전용 컨트롤 플레인을 선호하는 경우.
  • 워크로드가 동일한 GPU에서 추론과 가끔의 파인튜닝/트레이닝을 모두 포함하는 경우.
  • 에어갭 환경에서 운영하거나 프라이빗 아카이브에서 모델을 가져오려는 경우.

제한 사항 및 공개 질문

  • 플랫폼은 현재 베타 수준이며 일부 기능(예: Hygon Mooncake 통합)은 실험적으로 표시됩니다.
  • 고급 멀티노드 오케스트레이션은 Docker/nerdctl 또는 내장 루트리스 런타임에 의존합니다. 컨테이너 런타임이 없는 사용자는 호스트 프로세스(macOS)를 사용해야 합니다.
  • 커뮤니티 문서는 방대하지만, 신규 사용자는 혼합 벤더 클러스터에 대한 단계별 튜토리얼이 필요할 수 있습니다.

GPUWorks는 단일 40MB 바이너리로 완전한 기능을 갖춘 GPU MaaS 플랫폼을 제공할 수 있음을 보여주며, Kubernetes의 운영 오버헤드를 제거하면서 다양한 가속기와 클라우드 제공업체를 지원합니다. OpenAI 호환 게이트웨이와 풍부한 관찰 가능성은 이기종 하드웨어에서 LLM을 대규모로 서빙하려는 팀에게 매력적인 옵션입니다.

Sources