Quazim0t0's picture
Old-hardware training through emulated GPU logic
309b968 verified
Raw
History Blame Contribute Delete
2.59 kB
@echo off
REM ============================================================
REM DaisyChain - Old Hardware Training Pipeline : setup helper
REM ============================================================
setlocal enabledelayedexpansion
cd /d "%~dp0\.."
echo.
echo ____ _ ____ _ _
echo ^| _ \ __ _^(_^)___ _ _^/ ___^| ^|__ __ _^(_^)_ __
echo ^| ^| ^| / _` ^| / __^| ^| ^| ^| ^| ^| '_ \ / _` ^| ^| '_ \
echo ^| ^|_^| ^(_^| ^| \__ \ ^|_^| ^| ^|___^| ^| ^| ^| ^(_^| ^| ^| ^| ^| ^|
echo ^|____/ \__,_^|_^|___/\__, ^|\____^|_^| ^|_^|\__,_^|_^|_^| ^|_^|
echo ^|___/ Old Hardware Training Pipeline
echo.
echo Choose how to run DaisyChain on this machine:
echo [1] Docker (recommended on Windows - most reliable)
echo [2] Python (native; multi-node gloo is unstable on Windows - use WSL/Linux)
echo [3] Just install Python deps
echo [Q] Quit
echo.
set /p choice=" Your choice: "
if /i "%choice%"=="1" goto docker
if /i "%choice%"=="2" goto python
if /i "%choice%"=="3" goto deps
goto end
:docker
where docker >nul 2>nul
if errorlevel 1 (
echo [!] Docker not found. Install Docker Desktop from https://docker.com and re-run.
goto end
)
echo Building and starting the demo cluster ^(3 nodes + dashboard^)...
docker compose -f docker/docker-compose.yml up --build -d
echo.
echo [OK] Cluster starting. Opening the dashboard at http://localhost:8080
timeout /t 4 >nul
start "" http://localhost:8080
echo To stop: docker compose -f docker/docker-compose.yml down
goto end
:deps
where python >nul 2>nul
if errorlevel 1 ( echo [!] Python not found. Install Python 3.9+ first. & goto end )
echo Installing dependencies...
python -m pip install --upgrade pip
python -m pip install torch numpy psutil
python -m pip install -e .
echo [OK] Installed. You can now run: daisychain-train
goto end
:python
call :deps
echo.
echo ---- Configure this node ----
set /p master=" Coordinator IP (MASTER_ADDR, e.g. Tailscale 100.x): "
set /p world=" Total number of machines (WORLD_SIZE): "
set /p rank=" This machine's RANK (0 = coordinator): "
set /p iface=" Network interface (GLOO_SOCKET_IFNAME, e.g. tailscale0): "
set MASTER_ADDR=%master%
set MASTER_PORT=29560
set WORLD_SIZE=%world%
set RANK=%rank%
set GLOO_SOCKET_IFNAME=%iface%
set USE_LIBUV=0
echo.
echo [!] Note: native multi-node training over gloo is unstable on Windows.
echo If it hangs, use the Docker option or run the nodes on Linux/WSL.
echo Launching node RANK=%rank% ...
python -m daisychain.train
goto end
:end
echo.
pause
endlocal