#!/usr/bin/env bash
# Benchmark: 1 karta vs 3 karty DDP (asymetryczne accum 10/7/5).
# Użycie: ./bench_ddp.sh [micro]   (micro = szybki test 4-warstwowy)
set -u
DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR"

MODE="${1:-full}"
EXTRA=""
if [ "$MODE" = "micro" ]; then
  EXTRA="--micro"
  echo "=== MIKRO-TEST (4 warstwy) ==="
else
  echo "=== PEŁNY TEST (16 warstw) ==="
fi

echo "--- [1/2] SOLO: 3090 ---"
nix-shell shell.nix --run "python train_ddp_test.py --gpu 0 --steps 30 $EXTRA" 2>&1 | grep -E '===|parametry|światowy|krok|PRZEPŁYWOWOŚĆ|przyśpieszenie|projekcja' | tail -8

echo ""
echo "--- [2/2] DDP: 3 karty (3090+4060Ti+3060, accum 10/7/5) ---"
nix-shell shell.nix --run "torchrun --nproc_per_node=3 train_ddp_test.py --steps 30 $EXTRA" 2>&1 | grep -E '===|parametry|światowy|krok|PRZEPŁYWOWOŚĆ|przyśpieszenie|projekcja|synchronizacja|ROZJAZD' | tail -10

echo ""
echo "=== PORÓWNANIE ==="
echo "Wyniki powyżej: PRZEPŁYWOWOŚĆ solo vs DDP."
