GPU host
An NVIDIA GPU with the driver and CUDA, Docker, and the NVIDIA Container Toolkit so containers can reach it. Local captioning, curator's GPU image, ComfyUI renders and forge training all run here. Several services can share one GPU through cortex's lease.
Used by
Official guides
- NVIDIA CUDA installation guide for Linux (opens in new tab)
- Install Docker Engine (opens in new tab)
- NVIDIA Container Toolkit install guide (opens in new tab)
- GPU support in Docker Compose (opens in new tab)
Minimal setup
-
Install the NVIDIA driver. Curator's GPU image ships CUDA 13 wheels, so the driver must support CUDA 13.
nvidia-smishows the highest CUDA version the driver supports. -
Install Docker Engine and the NVIDIA Container Toolkit, then check that a container can see the GPU:
docker run --rm --gpus all ubuntu nvidia-smi -
In Studio, layer the GPU override on top of the stack:
docker compose -f compose.yaml -f compose.gpu.yaml --profile full up
Sharing one GPU
Lens, curator and Ollama can all load models onto the same card. With
ARGUS_GPU_COORDINATOR=lease (set by compose.gpu.yaml), cortex's
argus_cortex.gpu makes them take turns through a lock file. Every
container must mount the same lock directory (ARGUS_GPU_LOCK_DIR, mounted
at /run/argus-gpu), or each one gets its own lock and they no longer wait for
each other. Lens unloads idle models after ARGUS_MODEL_IDLE_SECONDS (300 by
default) to give VRAM back.
ComfyUI usually runs outside the stack on the same host, and the stack reaches it at
http://host.docker.internal:8188. It doesn't take part in the lease, so a big
render can still collide with a caption run.