open-standards/wai/research/determinism-cost/runs/linux-b-narrow-energy.sh
Transaction Science 61759c51b5 wai: the int_hyper decode on the narrow kernel sets, measured; determinism-tiers §7 quotes it
research/determinism-cost.md §4.6, in the same record and by the same
procedure: the 192 payloads decoded again on every platform with every
kernel set it runs (15 new runs, 0 decodes differing from the record's),
and the record's time and energy runs repeated in one session per host
beside the record's own build and the float decoder. On x86_64 host A the
integer decode on the narrow kernels took 144.8 ms and 12.43 J of marginal
package energy at quality 6 against 210.7 ms and 14.03 J for the float
decode beside it (the record's build: 728.0 ms, 92.14 J). On the build
host its own CPU energy fell from 11.01 J to 6.43 J at quality 6 and is
still above the float decode's 1.28 J by that count. Host B's integer
decode was measured before and after, without a float decode beside it.
The scripts that took the readings are in runs/; decode-throughput.md
notes the new sets; the changelog records the change.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 04:06:15 -04:00

23 lines
1.7 KiB
Shell

# Time and energy on x86_64 host B, DET1's procedure: package energy (powercap package-0) around
# each of 7 rounds of the 8 pictures, 5 s idle brackets, at q2 and q6; the integer decode only.
set -euo pipefail
R=$HOME/idf; W=$R/work; O=$R/energy; mkdir -p $O
export PATH=$HOME/.cargo/bin:$PATH CARGO_PROFILE_DEV_DEBUG=0
TAG=${TAG:?tag}
[ -x $R/bin/base ] || { cd $R/src-base/wai/wai-rs && CARGO_TARGET_DIR=$R/target-base nice -n 19 cargo build --locked --release --no-default-features --features neural_int --bin wai_det_cost -j 8 2>&1 | tail -1; cp $R/target-base/release/wai_det_cost $R/bin/base; }
cd $R/src/wai
IDS=$(python3 -c "import json;print(' '.join(p['id'] for p in json.load(open('$W/pictures.json'))['pictures'][:8]))")
E="python3 -I tools/wai_det_energy.py --rounds ${ROUNDS:-7} --k 1 --idle-s 5 --counter rapl"
HW='"system": "Linux '"$(uname -r)"'", "hardware": "x86_64 laptop CPU, 14 cores, 20 threads, AVX2", "pictures": 8'
D=${MEASURED:-$(date +%F)}
for q in ${QS:-2 6}; do
: > $W/jobs.energy.q$q.tsv; for i in $IDS; do printf '%s\t%s\t-\n' $W/sets/q$q $W/int/q$q/$i.wih1 >> $W/jobs.energy.q$q.tsv; done
for v in ${VARIANTS:-int-before int-after}; do
case $v in
int-before) L=linux-b-int-cpu-q$q-before; CH="$R/bin/base serve $W/jobs.energy.q$q.tsv"; M='"path": "integer", "fabric": "CPU", "threads": "all (20)", "kernels": "the record'"'"'s (DET1 build, kernel set wide)"' ;;
int-after) L=linux-b-int-cpu-q$q-after; CH="$R/bin/native.$TAG serve $W/jobs.energy.q$q.tsv"; M='"path": "integer", "fabric": "CPU", "threads": "all (20)", "kernels": "narrow, kernel set auto"' ;;
esac
$E --label $L --meta "{$HW, $M, \"quality\": $q, \"nice\": 19, \"measured\": \"$D\"}" -- nice -n 19 $CH > $O/$L.json
done
done
ls -la $O