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 &"
|