#!/usr/bin/env bash # NVIDIA GPU + CUDA 환경 점검 set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT" echo "=== TTS 환경 점검 ===" echo "프로젝트: $ROOT" echo echo "--- OS / CPU ---" uname -a echo echo "--- Python ---" if command -v python3 &>/dev/null; then python3 --version which python3 else echo "python3: 없음" fi echo echo "--- NVIDIA GPU ---" if command -v nvidia-smi &>/dev/null; then nvidia-smi echo nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv else echo "nvidia-smi: 사용 불가 (NVIDIA GPU 서버에서 실행하세요)" fi echo echo "--- CUDA (nvcc) ---" if command -v nvcc &>/dev/null; then nvcc --version | head -4 else echo "nvcc: 없음 (PyTorch CUDA 빌드로도 동작 가능)" fi echo echo "--- PyTorch (API venv) ---" API_VENV="$ROOT/.venvs/api" if [[ -x "$API_VENV/bin/python" ]]; then "$API_VENV/bin/python" -c " import sys try: import torch print('torch:', torch.__version__) print('cuda available:', torch.cuda.is_available()) if torch.cuda.is_available(): print('device:', torch.cuda.get_device_name(0)) except ImportError: print('torch: 미설치 (API만 사용 시 정상)') " 2>/dev/null || true else echo "API venv 없음 → ./scripts/setup_api.sh 실행" fi echo echo "--- 모델 venv ---" for name in f5tts cosyvoice; do V="$ROOT/.venvs/$name" if [[ -x "$V/bin/python" ]]; then echo "[$name] OK: $V" else echo "[$name] 없음 → setup_${name}.sh (f5tts는 setup_f5tts.sh)" fi done echo echo "--- 디렉터리 ---" for d in samples outputs models config backend web; do [[ -d "$ROOT/$d" ]] && echo " $d: OK" || echo " $d: MISSING" done echo "점검 완료."