Files
light-heart-labs--dreamserver/ods/docker-compose.multigpu-amd.yml
T
wehub-resource-sync 9e8f1bbeed
Dashboard / frontend (push) Failing after 0s
Dashboard / api (push) Failing after 0s
Lint PowerShell / powershell-lint (ubuntu-latest) (push) Failing after 1s
Python Lint / Lint Python with Ruff (push) Failing after 1s
ShellCheck / Lint shell scripts (push) Failing after 1s
Matrix Smoke / linux-smoke (push) Failing after 1s
Matrix Smoke / distro: cachyos (push) Failing after 15s
Matrix Smoke / distro: linux-mint-21.3 (push) Failing after 15s
Matrix Smoke / distro: debian-12 (push) Failing after 5m21s
Matrix Smoke / distro: fedora-41 (push) Failing after 4m56s
Matrix Smoke / distro: ubuntu-24.04 (push) Failing after 2m13s
Matrix Smoke / distro: rocky-9 (push) Failing after 10m39s
Matrix Smoke / distro: manjaro (push) Failing after 12m11s
Matrix Smoke / distro: opensuse-tw (push) Failing after 11m53s
Matrix Smoke / distro: archlinux (push) Failing after 20m3s
Matrix Smoke / distro: ubuntu-22.04 (push) Failing after 13m49s
Validate .env Schema / tier-1-env-validation (push) Successful in 52s
Validate .env Schema / tier-2-env-validation (push) Successful in 44s
Validate .env Schema / tier-3-env-validation (push) Successful in 52s
Validate .env Schema / tier-4-env-validation (push) Successful in 51s
Validate Extensions Catalog / Check catalog is up-to-date (push) Failing after 9m47s
Secret Scan / Scan for secrets (push) Failing after 21m4s
Validate Docker Compose / Validate Docker Compose files (push) Has been cancelled
Python Type Check / Type check with mypy (push) Has been cancelled
Validate .env Schema / tier-0-env-validation (push) Has been cancelled
Test Linux / integration-smoke (push) Has been cancelled
Lint PowerShell / powershell-lint (windows-latest) (push) Has been cancelled
Matrix Smoke / macos-smoke (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:31:33 +08:00

52 lines
2.2 KiB
YAML

# ODS — AMD Multi-GPU Overlay
# Applied when GPU_COUNT > 1 and GPU_BACKEND = amd.
# llama-server gets all of /dev/dri + ROCR_VISIBLE_DEVICES for multi-GPU inference.
# Single-GPU services use ROCR_VISIBLE_DEVICES for GPU isolation.
# Dashboard-api gets all GPUs for monitoring.
#
# Lemonade passthrough: Lemonade launches its inner llama-server via fork()+execv()
# and constructs the CLI explicitly — LLAMA_ARG_* env vars are NOT guaranteed to be
# read by the inner process. We pass --split-mode explicitly via --llamacpp-args
# (Lemonade's official mechanism). --split-mode and --tensor-split are NOT in
# Lemonade's blocked flag list (-m, --port, --ctx-size, -ngl, --jinja, --mmproj,
# --embeddings, --reranking), so they pass through safely.
#
# Backend selection: Lemonade's llamacpp.backend field accepts only auto|vulkan|cpu
# (the "rocm" literal was tightened out of the schema upstream). We set "auto" and
# rely on LEMONADE_LLAMACPP_ROCM_BIN (inherited from docker-compose.amd.yml) to
# point Lemonade at the custom ROCm llama-server binary.
# Note: command fully replaces the base docker-compose.amd.yml command.
services:
llama-server:
# devices and group_add inherited from docker-compose.amd.yml
command:
- serve
- --port
- "8080"
- --host
- "0.0.0.0"
- --no-tray
- --llamacpp
- "${LEMONADE_LLAMACPP:-auto}"
- --llamacpp-args
- "--metrics --host 0.0.0.0 --split-mode ${LLAMA_ARG_SPLIT_MODE:-layer}"
- --extra-models-dir
- /models
environment:
LEMONADE_LLAMACPP: "${LEMONADE_LLAMACPP:-auto}"
ROCR_VISIBLE_DEVICES: "${LLAMA_SERVER_GPU_INDICES:-}"
# Tensor split ratio (e.g. "0.5,0.5") — passed via env var because it may
# be empty (auto-split). Inherited by inner llama-server via fork()+execv().
LLAMA_ARG_TENSOR_SPLIT: "${LLAMA_ARG_TENSOR_SPLIT:-}"
HSA_OVERRIDE_GFX_VERSION: "${HSA_OVERRIDE_GFX_VERSION:-}"
dashboard-api:
devices:
- /dev/kfd:/dev/kfd
- /dev/dri:/dev/dri
environment:
GPU_COUNT: "${GPU_COUNT:-1}"
GPU_ASSIGNMENT_JSON_B64: "${GPU_ASSIGNMENT_JSON_B64:-}"
# volumes (sysfs mounts) inherited from docker-compose.amd.yml