run.sh
1.23 KB
#!/usr/bin/env bash
# MiniMax-H3 FL2VA NF4 launcher. usage: ./run.sh <GPU_ID> [args for t2va.py ...]
# ./run.sh 1 # turbo 4-step, 480x832x124f
# ./run.sh 1 --no-turbo --steps 50 # full quality
# ./run.sh 2 --prompt "..." --seed 7
set -euo pipefail
B=/data/models/minimax-h3
GPU="${1:-1}"; shift || true
export CUDA_VISIBLE_DEVICES="$GPU"
export DIFFSYNTH_ATTENTION_IMPLEMENTATION=torch # sm_75: no flash/sage; pin instead of auto-picking xformers
export DIFFSYNTH_MODEL_BASE_PATH="$B/models"
export MODELSCOPE_CACHE="$B/.mscache"
export PYTHONUNBUFFERED=1
# NOTE: deliberately NOT setting PYTHONNOUSERSITE -- the venv's site-packages already
# precedes ~/.local in sys.path, so our bitsandbytes 0.50.1 shadows the broken 0.45.1 there.
# GPU0/1 sit on NUMA0, GPU2/3 on NUMA1 -- keep the CPU-offloaded weights on the near node.
case "$GPU" in 0|1) NODE=0 ;; 2|3) NODE=1 ;; *) NODE="" ;; esac
BIND=(); if [ -n "$NODE" ] && command -v numactl >/dev/null 2>&1; then BIND=(numactl --cpunodebind="$NODE" --membind="$NODE"); fi
LOG="$B/logs/gpu${GPU}_$(date +%Y%m%d-%H%M%S).log"
echo "[run] GPU=$GPU numa=${NODE:-none} log=$LOG"
"${BIND[@]}" "$B/venv/bin/python" "$B/scripts/t2va.py" "$@" 2>&1 | tee "$LOG"