navidhus
Initial commit - local working state (GPU): OMR compare + CREPE audio + preprocessing
d5f3793
Raw
History Blame Contribute Delete
2.22 kB
#!/usr/bin/env bash
# One-shot setup: build all Docker images and verify GPU access.
set -euo pipefail
cd "$(dirname "$0")/.."
echo "=== OMR Demo Setup ==="
# 1. Prerequisites
command -v docker >/dev/null 2>&1 || { echo "ERROR: docker not found"; exit 1; }
command -v nvidia-smi >/dev/null 2>&1 || echo "WARNING: nvidia-smi not found — GPU features may not work"
# 2. Create data directories
mkdir -p data/uploads data/results data/logs data/samples
# 3. Build Audiveris image (downloads from GitHub inside Docker)
echo ""
echo "--- Building Audiveris image (may take a few minutes to download) ---"
docker compose --profile build-only build audiveris
# 4. Build backend image (downloads oemer + onnxruntime-gpu inside Docker)
echo ""
echo "--- Building backend image (downloads oemer + onnxruntime-gpu) ---"
docker compose build backend
# 5. Build frontend image (downloads npm packages inside Docker)
echo ""
echo "--- Building frontend image ---"
docker compose build frontend
# 6. Smoke-test: GPU visible inside backend container
echo ""
echo "--- GPU check inside backend container ---"
docker compose run --rm backend python -c "
import pynvml
try:
pynvml.nvmlInit()
count = pynvml.nvmlDeviceGetCount()
print(f'Detected {count} GPU(s)')
for i in range(count):
h = pynvml.nvmlDeviceGetHandleByIndex(i)
name = pynvml.nvmlDeviceGetName(h)
print(f' GPU {i}: {name if isinstance(name, str) else name.decode()}')
except Exception as e:
print(f'GPU not available: {e} (CPU fallback will be used)')
"
# 7. Smoke-test: oemer CLI available
echo ""
echo "--- oemer availability check ---"
docker compose run --rm backend sh -c "
oemer --help > /dev/null 2>&1 && echo 'oemer: OK' || echo 'oemer: NOT FOUND'
"
# 8. Smoke-test: onnxruntime CUDAExecutionProvider
echo ""
echo "--- onnxruntime CUDA check ---"
docker compose run --rm backend python -c "
import onnxruntime as ort
providers = ort.get_available_providers()
if 'CUDAExecutionProvider' in providers:
print('onnxruntime CUDAExecutionProvider: OK')
else:
print(f'WARNING: CUDAExecutionProvider missing. Available: {providers}')
"
echo ""
echo "=== Setup complete. Run: ./scripts/start_dev.sh ==="