File size: 2,205 Bytes
4c4517f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env bash
# Setup Lc0 data generation on a GPU pod.
# Run from inside the pod SSH session:
#   bash <(curl -sL https://raw.githubusercontent.com/thomas-schweich/PAWN/main/scripts/setup_lc0_pod.sh)
set -euo pipefail

echo "=== Installing deps ==="
apt-get update -qq && apt-get install -y -qq zstd git > /dev/null 2>&1
pip install --break-system-packages -q pyarrow huggingface-hub 2>&1 | tail -1

echo "=== Installing Lc0 ==="
# Lc0 release binary (CUDA backend)
cd /tmp
curl -sL https://github.com/LeelaChessZero/lc0/releases/download/v0.31.2/lc0-v0.31.2-linux-gpu-nvidia-cuda12-2.tar.gz -o lc0.tar.gz
tar xzf lc0.tar.gz
cp lc0-v0.31.2-linux-gpu-nvidia-cuda12-2/lc0 /usr/local/bin/lc0
chmod +x /usr/local/bin/lc0
rm -rf lc0.tar.gz lc0-v0.31.2-linux-gpu-nvidia-cuda12-2/

echo "=== Downloading Lc0 weights ==="
# Large T2 network (best policy quality)
mkdir -p /usr/local/share/lc0
cd /usr/local/share/lc0
curl -sL https://storage.lczero.org/files/networks-contrib/t2-768x15x24h-swa-7464000.pb.gz -o weights.pb.gz
gunzip weights.pb.gz
echo "Weights: $(ls -lh weights.pb)"

echo "=== Cloning repo ==="
cd /dev/shm
git clone --depth 1 https://github.com/thomas-schweich/PAWN.git pawn

echo "=== Persisting HF token ==="
if [ -n "${HF_TOKEN:-}" ]; then
    mkdir -p /root/.cache/huggingface
    echo -n "$HF_TOKEN" > /root/.cache/huggingface/token
    echo "HF token saved"
else
    echo "WARNING: HF_TOKEN not set — upload will fail"
fi

echo "=== Creating Lc0 wrapper ==="
# Wrapper that passes weights arg — our generate script expects a plain binary path
cat > /usr/local/bin/lc0-wrap << 'WRAPPER'
#!/bin/bash
exec /usr/local/bin/lc0 --weights=/usr/local/share/lc0/weights.pb "$@"
WRAPPER
chmod +x /usr/local/bin/lc0-wrap

echo "=== Verifying Lc0 ==="
echo -e "uci\nquit" | lc0-wrap 2>/dev/null | head -2

echo ""
echo "=== Ready ==="
echo "Generate with:"
echo "  cd /dev/shm/pawn"
echo "  mkdir -p /dev/shm/lc0"
echo "  nohup python3 scripts/generate_stockfish_data.py \\"
echo "    --stockfish /usr/local/bin/lc0-wrap \\"
echo "    --output /dev/shm/lc0 \\"
echo "    --tier nodes_0001 \\"
echo "    --workers 1 \\"
echo "    --games 1000000 \\"
echo "    > /dev/shm/lc0_gen.log 2>&1 &"