34 lines
744 B
Bash
Executable File
34 lines
744 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
PYTHON_BIN="${PYTHON_BIN:-$ROOT_DIR/.venv/bin/python3}"
|
|
|
|
if ! command -v nvidia-smi >/dev/null 2>&1; then
|
|
echo "preflight_fail: nvidia-smi not found"
|
|
exit 1
|
|
fi
|
|
|
|
if ! nvidia-smi -L >/dev/null 2>&1; then
|
|
echo "preflight_fail: nvidia-smi cannot enumerate GPUs"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -x "$PYTHON_BIN" ]]; then
|
|
echo "preflight_fail: python not executable at $PYTHON_BIN"
|
|
exit 1
|
|
fi
|
|
|
|
if ! "$PYTHON_BIN" - <<'PY'
|
|
import torch
|
|
ok = bool(torch.cuda.is_available() and torch.cuda.device_count() > 0)
|
|
raise SystemExit(0 if ok else 1)
|
|
PY
|
|
then
|
|
echo "preflight_fail: torch cuda unavailable"
|
|
exit 1
|
|
fi
|
|
|
|
echo "preflight_ok: gpu+torch available"
|
|
|