gpustack

Local AI RunnersDevOpsPython

★ 5,676주당 +37조회 4

무엇인가

GPUStack은 여러 GPU 클러스터에 추론 엔진을 배치하고 모델을 서빙하는 관리 계층이다. 추론 엔진 자체가 아니라, 엔진을 고르고 GPU를 배분하는 스케줄러와 제어 평면에 해당한다. 온프레미스 서버, Kubernetes 클러스터, 클라우드 제공자에 흩어진 GPU를 하나의 서버에서 다룬다.

어떻게 동작하나

구성은 서버와 워커로 나뉜다. GPUStack 서버는 GPU 없이 CPU 노드에서 돌아가고, 워커는 GPU가 붙은 노드에서 Docker 컨테이너로 실행된다. 서버의 스케줄러가 GPU를 할당하고, 플러그 가능한 엔진 계층이 vLLM·SGLang·TensorRT-LLM 또는 사용자 정의 엔진을 자동 구성한다. 모델 파일은 워커가 내려받아 배포하고, 배포 상태는 UI의 Workers·Catalog 페이지에 나타난다. GPU 사용률과 토큰 사용량은 Prometheus와 Grafana 대시보드로 수집된다.

무엇과 다른가

노드마다 vLLM을 직접 설치해 파라미터를 맞추는 방식과 달리, 엔진 선택과 튜닝을 서버가 대신한다. 저지연·고처리량 프리셋을 고를 수 있고, LMCache·HiCache 같은 확장 KV 캐시로 TTFT를 줄인다. EAGLE3·MTP·N-gram 기반 추측 디코딩도 내장한다. Kubernetes 전용 오케스트레이터와 달리 Kubernetes 밖의 베어메탈·클라우드 노드도 같은 클러스터로 묶는다. 모델 서빙 외에 SSH로 접속하는 GPU 인스턴스를 요청 시 생성한다.

어떻게 쓰나

서버는 Docker로 설치하고 기동 로그에서 초기 admin 비밀번호를 읽는다. 브라우저로 서버 IP에 접속해 admin으로 로그인한 뒤 Clusters 페이지에서 클러스터를 추가한다. 제공자로 Docker를 고르면 UI가 워커 접속용 Docker 명령을 만들어 준다. 그 명령을 GPU 노드에서 실행하면 Workers 페이지에 노드가 나타난다. Catalog에서 모델을 골라 Save를 누르면 배포가 시작되고, Running 상태가 되면 Playground에서 대화하거나 Access Control의 API 키로 호출한다.

전제와 한계

워커 노드는 Linux만 지원한다. Windows는 WSL2를 쓰고 Docker Desktop은 피하며, macOS는 워커로 쓸 수 없다. 워커에는 NVIDIA 드라이버, Docker, NVIDIA Container Toolkit이 미리 설치되어 있어야 한다. NVIDIA 외에 AMD GPU, Ascend NPU, Hygon DCU, MThreads, Iluvatar, MetaX, Cambricon MLU, T-Head PPU를 가속기로 쓴다. 서버는 GPU가 없어도 되고 Docker Desktop에서도 돌아간다.

관련 논문 3

유사 도구