# The decodes on the build host's platforms. Integer: CPU (all threads, one thread), GPU (Metal), # wasm32-wasip2. Float: CPU (one thread, the library's default), GPU (Metal), each in a fresh process. set -euo pipefail W=$RB_ROOT/det1/work; B=$RB_ROOT/det1/bin; PY=$RB_ROOT/venvs/sota-int/bin/python; X=$W/xplat; mkdir -p $X $PY -I wai/tools/wai_determinism_cost.py jobs $W - > $W/jobs.dash.tsv OS="macOS $(sw_vers -productVersion)"; HW="arm64 desktop SoC, 24 performance and 8 efficiency cores" meta() { printf '{"system": "%s", "hardware": "%s", "target": "%s", "fabric": "%s", "kernels": "%s", "threads": "%s", "rustc": "%s", "runtime": "%s"}\n' "$OS" "$HW" "$1" "$2" "$3" "$4" "$(rustc --version | cut -d" " -f2)" "$5"; } case "${1:-all}" in cpu) $B/wai_det_cost.native decode $W/jobs.dash.tsv > $X/macos-arm64-cpu.tsv meta aarch64-apple-darwin CPU fast "all (32)" native > $X/macos-arm64-cpu.json WAI_INT_THREADS=1 $B/wai_det_cost.native decode $W/jobs.dash.tsv > $X/macos-arm64-cpu-1t.tsv meta aarch64-apple-darwin CPU fast 1 native > $X/macos-arm64-cpu-1t.json ;; gpu) $B/wai_det_cost.gpu --gpu decode $W/jobs.dash.tsv > $X/macos-arm64-gpu-metal.raw 2> $X/macos-arm64-gpu-metal.err cut -f1-4 $X/macos-arm64-gpu-metal.raw > $X/macos-arm64-gpu-metal.tsv meta aarch64-apple-darwin "GPU, Metal, integrated (80 cores)" fast "all (32) for graphs off the device" "wgpu 30.0.1, $(grep -o 'key=[^ ]*' $X/macos-arm64-gpu-metal.err | head -1)" > $X/macos-arm64-gpu-metal.json ;; wasm) # Eight decoder processes side by side, each over every eighth job, each single-threaded. S=$RB_ROOT/det1/wasm-shards; rm -rf $S; mkdir -p $S awk "{print > (\"$S/jobs.\" (NR-1)%8)}" $W/jobs.dash.tsv for f in $S/jobs.?; do wasmtime run --dir $W::$W --dir $S::$S $B/wai_det_cost.wasm decode $f > $f.out & done; wait cat $S/jobs.?.out > $X/wasm32-wasip2.tsv meta wasm32-wasip2 "CPU, WebAssembly" fast "1 (eight decoder processes side by side)" "$(wasmtime --version | cut -d' ' -f1-2)" > $X/wasm32-wasip2.json ;; float) mkdir -p $W/fdecode $PY -I wai/tools/wai_determinism_cost.py fdecode $W macos-arm64-cpu-1t --device cpu --threads 1 $PY -I wai/tools/wai_determinism_cost.py fdecode $W macos-arm64-cpu --device cpu $PY -I wai/tools/wai_determinism_cost.py fdecode $W macos-arm64-gpu-mps --device mps for t in macos-arm64-cpu-1t macos-arm64-cpu macos-arm64-gpu-mps; do printf '{"system": "%s", "hardware": "%s"}\n' "$OS" "$HW" > $W/fdecode/$t.meta; done ;; esac ls $X $W/fdecode 2>/dev/null