#!/usr/bin/env bash # 2 checkpoints x 4 lengths = 8 jobs, one per GPU, all 8 cards busy. # Same wall time as 4 jobs (each length still runs its ckpts in parallel) but # yields a 300-vs-500 trajectory instead of a single point. set -uo pipefail; cd "$(dirname "$0")" export PATH=/root/Adhi/BluTrain/envv/bin:$PATH source /root/Adhi/BluTrain/envv/bin/activate 2>/dev/null L=t128b_logs; M="$L/eval8.log" say(){ echo "[$(date -u +%H:%M:%S)] $*" | tee -a "$M" >&2; } A680="CP_N_EMBD=1536 CP_N_LAYER=24 CP_N_HEAD=12 CP_N_KVHEAD=4 CP_FFN=4096 CP_WEIGHT_TYING=1" HAY=Data_Loader/Data/b2_8192_16384/val_shard_00000.bin blk(){ local PL=$1 T=$2 G=$3 O="e8_$1" rm -rf "$O" A1B="$A680" HAY="$HAY" GEN_DATA_ROOT="Data_Loader/Data/evalsrc" \ CKPT_EXTRA="s300=t128b_s300.ckpt s500=t128b_s500.ckpt" CKPTS="s300 s500" \ TASKS="niah_single" N=100 T=$T YARN=32 YARN_ORIG=4096 PROMPT_LEN=$PL \ GPUS="$G" NP=1 OUT="$O" ./run_longeval.sh > "$L/e8_${PL}.log" 2>&1 say " len $PL $(head -1 $O/summary.csv 2>/dev/null) | $(grep -h '^niah_single,' $O/summary.csv 2>/dev/null)"; } say "=== eval: s300 + s500, 4 lengths, 8 GPUs ===" blk 65512 65536 "0,1" & blk 32744 32768 "2,3" & blk 16360 16384 "4,5" & blk 4096 8192 "6,7" & wait say "=== RESULTS (cols per file: see header) vs t64@x32 and old-t128@x32 ===" for c in 4096:100:98 16360:99:98 32744:93:69 65512:63:31; do PL=${c%%:*}; r=${c#*:}; t64=${r%%:*}; old=${r##*:} say " $PL: $(head -1 e8_${PL}/summary.csv 2>/dev/null) -> $(grep -h '^niah_single,' e8_${PL}/summary.csv 2>/dev/null) [t64=$t64 old128=$old]" done say "EVAL8 DONE"