85 lines
2.4 KiB
Bash
85 lines
2.4 KiB
Bash
#!/bin/bash
|
|
# =============================================================
|
|
# PyTorch 2.5.1 Build for AMD BC-250 — native gfx1010 target
|
|
# ROCm 7.2 on CachyOS
|
|
# =============================================================
|
|
set -euo pipefail
|
|
|
|
echo "=========================================="
|
|
echo " PyTorch Build — gfx1010 for BC-250"
|
|
echo "=========================================="
|
|
|
|
# ========== PHASE 1: Clone ==========
|
|
if [ ! -d ~/pytorch-build ]; then
|
|
echo "[1/5] Cloning PyTorch v2.5.1 (full recursive)..."
|
|
cd ~
|
|
git clone --recursive --branch v2.5.1 https://github.com/pytorch/pytorch.git pytorch-build
|
|
else
|
|
echo "[1/5] Source already exists, skipping clone"
|
|
fi
|
|
|
|
cd ~/pytorch-build
|
|
|
|
# ========== PHASE 2: Venv + deps ==========
|
|
echo "[2/5] Installing build dependencies..."
|
|
source ~/ComfyUI/venv/bin/activate
|
|
pip install -q cmake ninja pyyaml typing-extensions numpy setuptools wheel cffi
|
|
|
|
# ========== PHASE 3: Hipify ==========
|
|
echo "[3/5] Running hipify (CUDA → HIP conversion)..."
|
|
python tools/amd_build/build_amd.py
|
|
|
|
# ========== PHASE 4: Environment ==========
|
|
echo "[4/5] Configuring build environment..."
|
|
|
|
# ROCm paths
|
|
export ROCM_PATH=/opt/rocm
|
|
export HIP_PATH=/opt/rocm
|
|
export ROCM_HOME=/opt/rocm
|
|
export PATH="/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH"
|
|
export LD_LIBRARY_PATH="/opt/rocm/lib:${LD_LIBRARY_PATH:-}"
|
|
|
|
# Target gfx1010 (RDNA1 — closest supported arch for BC-250 gfx1013)
|
|
export PYTORCH_ROCM_ARCH="gfx1010"
|
|
export AMDGPU_TARGETS="gfx1010"
|
|
|
|
# Build config
|
|
export USE_ROCM=1
|
|
export USE_CUDA=0
|
|
export USE_CUDNN=0
|
|
export USE_NCCL=0
|
|
export USE_DISTRIBUTED=0
|
|
export USE_MKLDNN=1
|
|
export USE_OPENMP=1
|
|
export BUILD_TEST=0
|
|
export USE_FLASH_ATTENTION=0
|
|
export USE_MEM_EFF_ATTENTION=0
|
|
export REL_WITH_DEB_INFO=0
|
|
export CMAKE_BUILD_TYPE=Release
|
|
export CMAKE_POLICY_VERSION_MINIMUM=3.5
|
|
|
|
# Parallelism — 12 cores, 14GB RAM, be conservative
|
|
export MAX_JOBS=4
|
|
export NINJA_STATUS="[%f/%t %e] "
|
|
|
|
# Compiler
|
|
export CC=gcc
|
|
export CXX=g++
|
|
|
|
echo " PYTORCH_ROCM_ARCH=$PYTORCH_ROCM_ARCH"
|
|
echo " MAX_JOBS=$MAX_JOBS"
|
|
echo " ROCM_PATH=$ROCM_PATH"
|
|
echo " Python: $(python --version)"
|
|
|
|
# ========== PHASE 5: Build ==========
|
|
echo "[5/5] Building PyTorch wheel..."
|
|
echo " Start: $(date)"
|
|
|
|
python setup.py bdist_wheel
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " Build complete: $(date)"
|
|
echo "=========================================="
|
|
ls -lh dist/*.whl 2>/dev/null || echo "ERROR: No wheel found!"
|