76 lines
2.7 KiB
Bash
76 lines
2.7 KiB
Bash
#!/bin/bash
|
||||
|
|
# SPDX-License-Identifier: Apache-2.0
|
|||
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|||
|
|
#
|
|||
|
|
# LTX-2 online serving startup script with optimization presets.
|
|||
|
|
#
|
|||
|
|
# Usage:
|
|||
|
|
# bash run_server_ltx2.sh # baseline (1 GPU, eager)
|
|||
|
|
# bash run_server_ltx2.sh ulysses4 # 4-GPU Ulysses SP
|
|||
|
|
# bash run_server_ltx2.sh cache-dit # 1 GPU + Cache-DiT
|
|||
|
|
# bash run_server_ltx2.sh best-combo # 4-GPU Ulysses SP + Cache-DiT
|
|||
|
|
#
|
|||
|
|
# Online serving benchmarks on H800 (480×768, 41 frames, 20 steps):
|
|||
|
|
# baseline : 10.3s inference (1.00×)
|
|||
|
|
# compile : ~10.3s warm (~1.00×) first request +6s warmup
|
|||
|
|
# ulysses4 : ~10.3s (~1.00×) no gain at 41 frames
|
|||
|
|
# cache-dit : 7.4s avg (~1.4×) lossy, variable per request
|
|||
|
|
# best-combo : 4.7s avg (~2.2×) 4-GPU ulysses + cache-dit
|
|||
|
|
|
|||
|
|
set -euo pipefail
|
|||
|
|
|
|||
|
|
MODEL="${MODEL:-Lightricks/LTX-2}"
|
|||
|
|
PORT="${PORT:-8098}"
|
|||
|
|
|
|||
|
|
PRESET="${1:-baseline}"
|
|||
|
|
|
|||
|
|
EXTRA_ARGS=()
|
|||
|
|
case "$PRESET" in
|
|||
|
|
baseline)
|
|||
|
|
echo "=== LTX-2 Preset: baseline (1 GPU, enforce-eager) ==="
|
|||
|
|
EXTRA_ARGS+=(--enforce-eager)
|
|||
|
|
;;
|
|||
|
|
ulysses2)
|
|||
|
|
echo "=== LTX-2 Preset: 2-GPU Ulysses SP (lossless) ==="
|
|||
|
|
EXTRA_ARGS+=(--enforce-eager --usp 2)
|
|||
|
|
;;
|
|||
|
|
ulysses4)
|
|||
|
|
echo "=== LTX-2 Preset: 4-GPU Ulysses SP (lossless) ==="
|
|||
|
|
EXTRA_ARGS+=(--enforce-eager --usp 4)
|
|||
|
|
;;
|
|||
|
|
cache-dit)
|
|||
|
|
echo "=== LTX-2 Preset: Cache-DiT (1 GPU, lossy) ==="
|
|||
|
|
EXTRA_ARGS+=(--enforce-eager --cache-backend cache_dit)
|
|||
|
|
;;
|
|||
|
|
best-combo)
|
|||
|
|
echo "=== LTX-2 Preset: 4-GPU Ulysses SP + Cache-DiT (best combo) ==="
|
|||
|
|
EXTRA_ARGS+=(--enforce-eager --usp 4 --cache-backend cache_dit)
|
|||
|
|
;;
|
|||
|
|
compile)
|
|||
|
|
echo "=== LTX-2 Preset: torch.compile (1 GPU, lossless) ==="
|
|||
|
|
# torch.compile is the default (no --enforce-eager)
|
|||
|
|
;;
|
|||
|
|
*)
|
|||
|
|
echo "Usage: $0 {baseline|ulysses2|ulysses4|cache-dit|best-combo|compile}"
|
|||
|
|
echo ""
|
|||
|
|
echo "Presets:"
|
|||
|
|
echo " baseline - 1 GPU, eager execution (reference)"
|
|||
|
|
echo " ulysses2 - 2-GPU Ulysses SP (lossless)"
|
|||
|
|
echo " ulysses4 - 4-GPU Ulysses SP (lossless)"
|
|||
|
|
echo " cache-dit - 1 GPU + Cache-DiT (lossy, ~1.4× speedup)"
|
|||
|
|
echo " best-combo - 4-GPU Ulysses SP + Cache-DiT (~2.2× speedup)"
|
|||
|
|
echo " compile - 1 GPU + torch.compile (slower first request)"
|
|||
|
|
echo ""
|
|||
|
|
echo "Environment variables:"
|
|||
|
|
echo " MODEL - Model path (default: Lightricks/LTX-2)"
|
|||
|
|
echo " PORT - Server port (default: 8098)"
|
|||
|
|
exit 1
|
|||
|
|
;;
|
|||
|
|
esac
|
|||
|
|
|
|||
|
|
echo "Model: $MODEL"
|
|||
|
|
echo "Port: $PORT"
|
|||
|
|
|
|||
|
|
vllm serve "$MODEL" --omni \
|
|||
|
|
--port "$PORT" \
|
|||
|
|
"${EXTRA_ARGS[@]}"
|