Repository navigation
Expand file tree
/
Copy pathsweep.sh
More file actions
52 lines (46 loc) · 2.08 KB
/
Copy pathsweep.sh
File metadata and controls
52 lines (46 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
# mk3 auto-sweep: retail-first-boot profile, A=2 fixed, B values in ascending
# likelihood order. Phase A covers the 72x72 UID square; phase B covers the
# L-shaped complement up to the 255x255 square (no rescan of 72x72).
# Logs: this directory's sweep.log (everything) + poc_hits.txt (hits only)
# Status: this directory's sweep_status.txt (one line, current state)
set -u
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR" || exit 1
BIN=./mk3_cuda_search
SRC=./mk3_cuda_search.cu
COMMON="--block 128 --chunk-log2 24"
LOG=./sweep.log
STATUS=./sweep_status.txt
if [ ! -x "$BIN" ]; then
[ -f "$SRC" ] || { echo "missing CUDA source: $SRC" >&2; exit 1; }
command -v nvcc >/dev/null 2>&1 || { echo "nvcc not found; install the CUDA Toolkit first" >&2; exit 1; }
echo "CUDA binary not found; compiling $SRC ..."
nvcc -O3 -o "$BIN" "$SRC" || exit 1
fi
# slow key-separated model first (even B), then the continuous merge-model set
BS_SLOW="20 22 24 26 28 30 32 34"
BS_FAST="4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 21 23 25 27 29 31 33"
sweep() { # $1=x-min $2=x-max $3=y-min $4=y-max $5=B
local tag="B=$5 x[$1..$2] y[$3..$4]"
echo "[$(date '+%F %T')] START $tag" >> $LOG
echo "running: $tag (since $(date '+%F %T'))" > $STATUS
$BIN $COMMON --x-min $1 --x-max $2 --y-min $3 --y-max $4 \
--kpad-b-start $5 --kpad-b-end $5 >> $LOG 2>&1
echo "[$(date '+%F %T')] END $tag confirmed_total=$(grep -c CONFIRMED $LOG 2>/dev/null || echo 0)" >> $LOG
}
{
echo "=== sweep started $(date '+%F %T') ==="
echo "phase A: 72x72 UIDs, B ascending (B=18 already swept: 0 hits)"
} >> $LOG
for b in $BS_SLOW $BS_FAST; do sweep 0 72 0 72 $b; done
echo "=== phase A done $(date '+%F %T') ===" >> $LOG
echo "phase B: L-complement to 255x255 (x 73..255 x all y; x 0..72 x y 73..255)" >> $LOG
for b in $BS_SLOW $BS_FAST; do
sweep 73 255 0 255 $b
sweep 0 72 73 255 $b
done
{
echo "=== ALL DONE $(date '+%F %T') confirmed_total=$(grep -c CONFIRMED $LOG 2>/dev/null || echo 0) ==="
} >> $LOG
echo "ALL DONE $(date '+%F %T') confirmed_total=$(grep -c CONFIRMED $LOG 2>/dev/null || echo 0)" > $STATUS