File size: 5,321 Bytes
2072243 | 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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | # setup_rocm.ps1 β FusionNet AMD ROCm setup for Windows
# ROCm on Windows is supported via HIP SDK (ROCm 5.7+ / HIP SDK 5.7+).
# Requires: AMD Radeon RX 6000 / RX 7000 series or newer, HIP SDK installed.
#
# HIP SDK for Windows: https://www.amd.com/en/developer/resources/rocm-hub/hip-sdk.html
#
# Usage (run from repo root in PowerShell):
# .\scripts\setup_rocm.ps1
#
# If you get an execution policy error, run first:
# Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
$ErrorActionPreference = "Stop"
Write-Host "==================================================" -ForegroundColor Magenta
Write-Host " FusionNet β AMD ROCm / HIP SDK Setup (Windows) " -ForegroundColor Magenta
Write-Host "==================================================" -ForegroundColor Magenta
Write-Host @"
NOTE: ROCm on Windows uses AMD's HIP SDK.
Ensure you have installed:
1. AMD Radeon Software (latest)
2. AMD HIP SDK from:
https://www.amd.com/en/developer/resources/rocm-hub/hip-sdk.html
PyTorch ROCm wheels are Linux-only from pytorch.org.
On Windows, we install the CUDA-compatible wheel and rely on
the HIP SDK's CUDA compatibility layer (hipcc / HIPRT).
For full ROCm support on Windows, WSL2 (Ubuntu 22.04) is recommended:
wsl --install -d Ubuntu-22.04
Then run scripts/setup_rocm.sh inside WSL2.
"@ -ForegroundColor Yellow
# ββ 1. Check Python βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
if (-not (Get-Command python -ErrorAction SilentlyContinue)) {
Write-Error "Python not found. Install Python 3.10+ from https://python.org and add it to PATH."
exit 1
}
$pyVersion = python --version
Write-Host "Python : $pyVersion" -ForegroundColor Green
# ββ 2. Upgrade pip ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Write-Host "`nUpgrading pip..." -ForegroundColor Yellow
python -m pip install --upgrade pip
# ββ 3. Check for HIP SDK ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
$hipPath = "C:\Program Files\AMD\ROCm"
$hipFound = Test-Path $hipPath
if ($hipFound) {
Write-Host "HIP SDK detected at: $hipPath" -ForegroundColor Green
} else {
Write-Host "HIP SDK not found at default path ($hipPath)." -ForegroundColor Yellow
Write-Host "Proceeding with CPU-compatible install. GPU acceleration may not work." -ForegroundColor Yellow
}
# ββ 4. Install PyTorch (CPU / CUDA fallback for Windows ROCm) βββββββββββββββββ
# PyTorch ROCm wheels are not published for Windows.
# We install the standard CPU wheel so all Python code runs.
# GPU training on Windows/AMD requires WSL2 + ROCm Linux install.
Write-Host "`nInstalling PyTorch (CPU build β ROCm wheels are Linux-only)..." -ForegroundColor Yellow
pip install torch torchvision torchaudio
# ββ 5. Install remaining project dependencies βββββββββββββββββββββββββββββββββ
Write-Host "`nInstalling project dependencies..." -ForegroundColor Yellow
pip install -r "$PSScriptRoot\..\requirements.txt"
# ββ 6. Install fusionnet-client dependencies ββββββββββββββββββββββββββββββββββ
Write-Host "`nInstalling fusionnet-client dependencies..." -ForegroundColor Yellow
pip install -r "$PSScriptRoot\..\fusionnet-client\requirements.txt"
# ββ 7. Verify βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Write-Host "`n--------------------------------------------------" -ForegroundColor Magenta
Write-Host " Environment Verification" -ForegroundColor Magenta
Write-Host "--------------------------------------------------" -ForegroundColor Magenta
python -c @"
import torch
is_rocm = getattr(torch.version, 'hip', None) is not None
print(f'PyTorch : {torch.__version__}')
print(f'ROCm/HIP : {is_rocm}')
print(f'CUDA API : {torch.cuda.is_available()}')
if torch.cuda.is_available():
p = torch.cuda.get_device_properties(0)
print(f'GPU : {p.name} ({p.total_memory / 1024**3:.1f} GB)')
else:
print('INFO : Running on CPU. For AMD GPU on Windows use WSL2 + setup_rocm.sh')
"@
Write-Host "`n[OK] Setup complete." -ForegroundColor Green
Write-Host ""
Write-Host " For AMD GPU acceleration on Windows, use WSL2:" -ForegroundColor Cyan
Write-Host " wsl --install -d Ubuntu-22.04" -ForegroundColor White
Write-Host " # Then inside WSL2:" -ForegroundColor White
Write-Host " bash scripts/setup_rocm.sh" -ForegroundColor White
Write-Host ""
Write-Host " To run on CPU (works now):" -ForegroundColor Cyan
Write-Host " cd fusionnet-client" -ForegroundColor White
Write-Host " python main.py --client-id 0 --num-clients 4" -ForegroundColor White
|