85 lines
2.2 KiB
Bash
85 lines
2.2 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "========================================"
|
|
echo " RFCP GPU Build — ONEDIR mode"
|
|
echo " CuPy-cuda13x + CUDA Toolkit 13.x"
|
|
echo "========================================"
|
|
echo ""
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
BACKEND_DIR="$SCRIPT_DIR/../backend"
|
|
|
|
# Check backend exists
|
|
if [ ! -f "$BACKEND_DIR/run_server.py" ]; then
|
|
echo "ERROR: Backend not found at $BACKEND_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
# Check Python
|
|
echo "[1/5] Checking Python..."
|
|
python3 --version || { echo "ERROR: Python3 not found"; exit 1; }
|
|
|
|
# Check CuPy
|
|
echo ""
|
|
echo "[2/5] Checking CuPy installation..."
|
|
if ! python3 -c "import cupy; print(f' CuPy {cupy.__version__}')" 2>/dev/null; then
|
|
echo "ERROR: CuPy not installed"
|
|
echo ""
|
|
echo "Install CuPy:"
|
|
echo " pip3 install cupy-cuda13x"
|
|
echo " # or for WSL2:"
|
|
echo " pip3 install cupy-cuda13x --break-system-packages"
|
|
exit 1
|
|
fi
|
|
|
|
# Check GPU compute
|
|
echo ""
|
|
echo "[3/5] Testing GPU compute..."
|
|
if python3 -c "import cupy; a = cupy.array([1,2,3]); assert a.sum() == 6; print(' GPU compute: OK')" 2>/dev/null; then
|
|
:
|
|
else
|
|
echo "WARNING: GPU compute test failed (may still work)"
|
|
fi
|
|
|
|
# Check CUDA
|
|
echo ""
|
|
echo "[4/5] Checking CUDA..."
|
|
if [ -n "$CUDA_PATH" ]; then
|
|
echo " CUDA_PATH: $CUDA_PATH"
|
|
else
|
|
echo " CUDA_PATH not set (relying on nvidia pip packages)"
|
|
fi
|
|
|
|
# Check nvidia pip packages
|
|
echo ""
|
|
echo "[5/5] Checking nvidia pip packages..."
|
|
python3 -c "import nvidia; print(' nvidia packages found')" 2>/dev/null || echo " No nvidia pip packages"
|
|
|
|
# Build
|
|
echo ""
|
|
echo "Building rfcp-server (ONEDIR mode)..."
|
|
echo ""
|
|
|
|
cd "$BACKEND_DIR"
|
|
pyinstaller "$SCRIPT_DIR/rfcp-server-gpu.spec" --clean --noconfirm
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
if [ -f "dist/rfcp-server/rfcp-server" ] || [ -f "dist/rfcp-server/rfcp-server.exe" ]; then
|
|
echo " BUILD COMPLETE! (ONEDIR mode)"
|
|
echo ""
|
|
echo " Output: backend/dist/rfcp-server/"
|
|
ls -lh dist/rfcp-server/ | head -20
|
|
echo ""
|
|
echo " Test:"
|
|
echo " cd dist/rfcp-server"
|
|
echo " ./rfcp-server"
|
|
echo " curl http://localhost:8090/api/health"
|
|
echo "========================================"
|
|
else
|
|
echo " BUILD FAILED — check errors above"
|
|
echo "========================================"
|
|
exit 1
|
|
fi
|