remat / research /ob1 /run-ob1.sh
i64systems's picture
remat: the evidence repository (mirror of github.com/i64systems/remat @ 8860526)
8604228 verified
Raw
History Blame Contribute Delete
4.17 kB
#!/bin/sh
# OB-1 lease-engine run driver (stage 2).
#
# Same shape as research/ob1/run.sh (stage 1's baseline driver) and the same
# binary lineage (research/rs053's llama.cpp fork, upstream commit ca3d5a3,
# route-log patch applied, plus this leg's lease engine on branch ob1), with
# three differences that are named in RUNLOG-1.txt as deviations:
#
# 1. -ngl 0 + CUDA_VISIBLE_DEVICES="" : the whole model is computed on the
# CPU, in host RAM. The lease engine's cold tier is the GGUF file on NVMe
# and its fast tier is host RAM, so peak process RSS is a direct measure
# of the exposure metric's denominator. Stage 1's committed baseline ran
# -ngl 99 (all weights in VRAM), where the fast tier is a fixed-size VRAM
# allocation that a lease cannot shrink without changing tensor shapes and
# therefore the kernel.
# 2. --no-mmap : the expert tensors must be ordinary anonymous memory that the
# lease engine can fill per expert and drop per expert (madvise). Under
# mmap the tensor data is a private file mapping the loader never writes.
# 3. --no-repack : with weight repacking on, the CPU backend rewrites MXFP4
# expert tensors into an interleaved layout at load time, so a GGUF byte
# range is no longer the tensor's own bytes. Repacking is disabled for the
# leased AND the resident runs alike, so the only difference between the
# two is where the expert bytes came from.
#
# usage: run-ob1.sh RUNNAME CORPUSPATH K FADV
# K=0 fully resident (baseline for this leg)
# K>0 leased with that resident-set size
# FADV=1 posix_fadvise(DONTNEED) each leased range after reading it
RUNNAME=$1
CORPUS=$2
K=$3
FADV=$4
BIN=/root/rs053/llama.cpp/build/bin/llama-perplexity
MODEL=/root/openbob-baselines/models/gpt-oss-20b-MXFP4.gguf
WT=/mnt/f/f32/openbob-wt/research-2/research/ob1
LOCAL=/root/ob1/runs/$RUNNAME
STAGE=/mnt/f/f32/stage/research/ob1/runs/$RUNNAME
mkdir -p "$LOCAL" "$STAGE"
RL=$LOCAL/route.log
rm -f "$RL"
echo "=== OB1 RUN $RUNNAME (K=$K FADV=$FADV) ==="
echo "utc_start $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "guard_pids: $(ps -o pid= -p 654 | wc -l) openbob, $(ps -o pid= -p 489 | wc -l) searxng"
ARGS="-m $MODEL -f $CORPUS --ctx-size 1024 --chunks 32 -b 1024 -ub 1024 --threads 10 --threads-batch 10 --no-warmup --seed 1 -ngl 0 --no-mmap --no-repack"
echo "cmd: $BIN $ARGS"
echo "env: LLAMA_ROUTE_LOG=$RL OB1_STATS=$LOCAL/ob1-stats.txt OB1_K=$K OB1_FADV=$FADV"
T0=$(date +%s.%N)
if [ "$K" = "0" ]; then
CUDA_VISIBLE_DEVICES="" \
LLAMA_ROUTE_LOG="$RL" \
OB1_STATS="$LOCAL/ob1-stats.txt" \
nice -n 10 /usr/bin/time -v $BIN $ARGS > "$LOCAL/stdout.txt" 2> "$LOCAL/stderr.txt"
RC=$?
else
CUDA_VISIBLE_DEVICES="" \
LLAMA_ROUTE_LOG="$RL" \
OB1_STATS="$LOCAL/ob1-stats.txt" \
OB1_LEASE="$WT/RESIDENT-SETS.json" \
OB1_K="$K" \
OB1_MANIFEST="$WT/EXPERT-MANIFEST-20B.sha256" \
OB1_GGUF="$MODEL" \
OB1_FADV="$FADV" \
nice -n 10 /usr/bin/time -v $BIN $ARGS > "$LOCAL/stdout.txt" 2> "$LOCAL/stderr.txt"
RC=$?
fi
T1=$(date +%s.%N)
echo "exit_rc $RC"
echo "wallclock_s $(echo "$T1 - $T0" | bc)"
echo "utc_end $(date -u +%Y-%m-%dT%H:%M:%SZ)"
echo "--- peak rss / elapsed ---"
grep -E 'Maximum resident set size|Elapsed \(wall clock\)' "$LOCAL/stderr.txt"
echo "--- route log ---"
wc -l < "$RL"
sha256sum "$RL"
echo "--- identity artifact (the '[1]' per-chunk PPL line, per prereg section 5) ---"
grep '^\[1\]' "$LOCAL/stdout.txt" > "$LOCAL/identity.txt"
wc -c < "$LOCAL/identity.txt"
sha256sum "$LOCAL/identity.txt"
echo "--- ob1 stats ---"
cat "$LOCAL/ob1-stats.txt"
echo "--- timings ---"
grep -E 'load time|prompt eval time|eval time|total time|seconds per pass' "$LOCAL/stderr.txt"
echo "guard_pids_after: $(ps -o pid= -p 654 | wc -l) openbob, $(ps -o pid= -p 489 | wc -l) searxng"
cp "$RL" "$STAGE/route.log"
cp "$LOCAL/stdout.txt" "$STAGE/stdout.txt"
cp "$LOCAL/stderr.txt" "$STAGE/stderr.txt"
cp "$LOCAL/identity.txt" "$STAGE/identity.txt"
cp "$LOCAL/ob1-stats.txt" "$STAGE/ob1-stats.txt"
echo "--- post-copy digest check ---"
sha256sum "$RL" "$STAGE/route.log"
sha256sum "$LOCAL/identity.txt" "$STAGE/identity.txt"
echo "=== END $RUNNAME rc=$RC ==="