Add GPU Lab configs, docs, and runbooks for VM303.
Mirror gpu-lab compose files and model-manager catalog from GPU-Dev; document Dockhand mapping and SGLang cutover target.
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# GPU Lab Runbook — VM303 (atc-gpu-dev)
|
||||
|
||||
## Runtimes (Docker)
|
||||
|
||||
| Runtime ID | Compose | Image |
|
||||
|---|---|---|
|
||||
| `vllm-legacy-040` | `compose.vllm-legacy.yml` | `vllm/vllm-openai:v0.4.0.post1` |
|
||||
| `vllm-modern-080` | `compose.vllm-modern.yml` | `vllm/vllm-openai:v0.8.5.post1` |
|
||||
| `sglang-modern` | `compose.sglang.yml` | `lmsysorg/sglang:v0.5.12-cu129-runtime` |
|
||||
|
||||
Only **one** inference container runs at a time (port **8010**).
|
||||
|
||||
## Activate (UI)
|
||||
|
||||
GPU Lab → pick model → **Activate**. Writes `/root/gpu-lab/active/current.env`, stops all gpu-lab containers, starts the matching compose stack.
|
||||
|
||||
## Manual activate
|
||||
|
||||
```bash
|
||||
cd /root/gpu-lab
|
||||
# edit active/current.env (MODEL_PATH, TP_SIZE, VLLM_EXTRA_ARGS, …)
|
||||
docker compose -f compose.vllm-legacy.yml down
|
||||
docker compose -f compose.vllm-legacy.yml up -d
|
||||
curl -s http://127.0.0.1:8010/v1/models
|
||||
```
|
||||
|
||||
## Rollback to systemd vLLM
|
||||
|
||||
```bash
|
||||
cd /root/gpu-lab
|
||||
docker compose -f compose.vllm-legacy.yml down
|
||||
docker compose -f compose.vllm-modern.yml down
|
||||
docker compose -f compose.sglang.yml down
|
||||
systemctl start vllm.service
|
||||
systemctl restart vllm-gateway.service litellm-proxy.service
|
||||
```
|
||||
|
||||
## Logs
|
||||
|
||||
```bash
|
||||
docker logs -f gpu-lab-vllm-legacy
|
||||
docker logs -f gpu-lab-vllm-modern
|
||||
docker logs -f gpu-lab-sglang
|
||||
journalctl -u model-manager -f
|
||||
```
|
||||
|
||||
## SGLang on V100
|
||||
|
||||
Always use `--disable-flashinfer` and `--disable-flashinfer-sampling` (already in compose.sglang.yml).
|
||||
|
||||
## Dockhand
|
||||
|
||||
- Environment **GPU-Dev** → `10.0.20.106:2375`
|
||||
- Stacks: `gpu-lab-vllm-legacy`, `gpu-lab-vllm-modern`, `gpu-lab-sglang` (compose in Dockhand data volume)
|
||||
- Running workload appears as stack **`gpu-lab`** (compose project on VM303)
|
||||
- API: `GET /api/stacks?env=8` (not `environmentId`)
|
||||
- UI: http://atc-docker01.dell-atc.lan:8082/
|
||||
|
||||
## Docker data
|
||||
|
||||
Images stored under `/root/docker-data` (not `/var` — small partition).
|
||||
@@ -0,0 +1,38 @@
|
||||
name: gpu-lab-sglang
|
||||
services:
|
||||
sglang:
|
||||
image: lmsysorg/sglang:v0.5.12-cu129-runtime
|
||||
container_name: gpu-lab-sglang
|
||||
network_mode: host
|
||||
ipc: host
|
||||
shm_size: "32gb"
|
||||
env_file:
|
||||
- active/current.env
|
||||
volumes:
|
||||
- /root/models:/models:ro
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
entrypoint: ["python3", "-m", "sglang.launch_server"]
|
||||
command:
|
||||
- --model-path
|
||||
- ${MODEL_PATH}
|
||||
- --served-model-name
|
||||
- ${SERVED_NAME}
|
||||
- --host
|
||||
- "0.0.0.0"
|
||||
- --port
|
||||
- "8010"
|
||||
- --tp-size
|
||||
- ${TP_SIZE}
|
||||
- --mem-fraction-static
|
||||
- ${GPU_MEM_UTIL}
|
||||
- --context-length
|
||||
- ${MAX_MODEL_LEN}
|
||||
- --disable-flashinfer
|
||||
- --disable-flashinfer-sampling
|
||||
restart: "no"
|
||||
@@ -0,0 +1,33 @@
|
||||
name: gpu-lab-vllm-legacy
|
||||
services:
|
||||
vllm-legacy:
|
||||
image: vllm/vllm-openai:v0.4.0.post1
|
||||
container_name: gpu-lab-vllm-legacy
|
||||
network_mode: host
|
||||
ipc: host
|
||||
shm_size: "32gb"
|
||||
env_file:
|
||||
- active/current.env
|
||||
volumes:
|
||||
- /root/models:/models:ro
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
command:
|
||||
- >
|
||||
exec python3 -m vllm.entrypoints.openai.api_server
|
||||
--model "$$MODEL_PATH"
|
||||
--served-model-name "$$SERVED_NAME"
|
||||
--host 0.0.0.0 --port 8010
|
||||
--tensor-parallel-size "$$TP_SIZE"
|
||||
--dtype "$$DTYPE"
|
||||
--max-model-len "$$MAX_MODEL_LEN"
|
||||
--gpu-memory-utilization "$$GPU_MEM_UTIL"
|
||||
--max-num-seqs "$$MAX_NUM_SEQS"
|
||||
$$VLLM_EXTRA_ARGS
|
||||
restart: "no"
|
||||
@@ -0,0 +1,34 @@
|
||||
name: gpu-lab-vllm-modern
|
||||
services:
|
||||
vllm-modern:
|
||||
image: vllm/vllm-openai:v0.8.5.post1
|
||||
container_name: gpu-lab-vllm-modern
|
||||
network_mode: host
|
||||
ipc: host
|
||||
shm_size: "32gb"
|
||||
env_file:
|
||||
- active/current.env
|
||||
volumes:
|
||||
- /root/models:/models:ro
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: all
|
||||
capabilities: [gpu]
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
command:
|
||||
- >
|
||||
exec python3 -m vllm.entrypoints.openai.api_server
|
||||
--model "$$MODEL_PATH"
|
||||
--served-model-name "$$SERVED_NAME"
|
||||
--host 0.0.0.0 --port 8010
|
||||
--tensor-parallel-size "$$TP_SIZE"
|
||||
--dtype "$$DTYPE"
|
||||
--max-model-len "$$MAX_MODEL_LEN"
|
||||
--gpu-memory-utilization "$$GPU_MEM_UTIL"
|
||||
--max-num-seqs "$$MAX_NUM_SEQS"
|
||||
--trust-remote-code --enforce-eager
|
||||
$$VLLM_EXTRA_ARGS
|
||||
restart: "no"
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"vllm-legacy-040": {
|
||||
"engine": "vllm",
|
||||
"compose_file": "compose.vllm-legacy.yml",
|
||||
"image": "vllm/vllm-openai:v0.4.0.post1",
|
||||
"v100_ok": true,
|
||||
"label": "vLLM 0.4"
|
||||
},
|
||||
"vllm-modern-080": {
|
||||
"engine": "vllm",
|
||||
"compose_file": "compose.vllm-modern.yml",
|
||||
"image": "vllm/vllm-openai:v0.8.5.post1",
|
||||
"v100_ok": true,
|
||||
"label": "vLLM 0.8"
|
||||
},
|
||||
"sglang-modern": {
|
||||
"engine": "sglang",
|
||||
"compose_file": "compose.sglang.yml",
|
||||
"image": "lmsysorg/sglang:v0.5.12-cu129-runtime",
|
||||
"v100_ok": true,
|
||||
"label": "SGLang",
|
||||
"extra_args": ["--disable-flashinfer", "--disable-flashinfer-sampling"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user