| 12345678910111213141516171819202122232425262728 |
- #!/usr/bin/env bash
- # start-tp4.sh — DeepSeek-V4.1-Flash on 4× DGX Spark (TP4/EP4).
- #
- # Same engine, image and commands as start.sh, with a profile of its own:
- # .env.tp4 settings for this profile (copied from .env.tp4.example on first run)
- # state-tp4/ launch record, smoke result, api key, DSpark tables
- # logs-tp4/ engine log
- # The 3-Spark profile (.env, state/, logs/) is untouched, so one checkout can drive
- # either fleet. Every TP4-specific runtime choice (context, KV pool, concurrency,
- # prefill chunk, memory fraction, no head padding) lives in .env.tp4.example.
- # Serving knobs shared with TP3 (DSpark k, max_tokens cap, loop abort, thinking
- # alias) are in start.sh + the overlay image; .env.tp4.example defaults match.
- #
- # Usage: ./start-tp4.sh doctor | build | share | pack | serve | stop | status | logs | smoke
- #
- # DSV41_LAUNCHER=tp4 is the only switch that arms TP4 behavior inside start.sh
- # and the adapter: the named Dockerfile, EXTRA_CONTAINER_ENV, the shared-pad
- # defaults, the anchored worker rsync, EP 1/2 on the ring, and the production
- # hooks. ./start.sh leaves it unset, and that path stays as it was.
- set -euo pipefail
- ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- export ENV_FILE="$ROOT/.env.tp4"
- export ENV_EXAMPLE="$ROOT/.env.tp4.example"
- export STATE_DIR="${STATE_DIR:-$ROOT/state-tp4}"
- export LOG_DIR="${LOG_DIR:-$ROOT/logs-tp4}"
- export SERVE_LOG="${SERVE_LOG:-$LOG_DIR/dsv41.log}"
- export DSV41_LAUNCHER=tp4
- exec "$ROOT/start.sh" "$@"
|