diff --git a/setup.sh b/setup.sh index 957b9d7..b444b90 100755 --- a/setup.sh +++ b/setup.sh @@ -41,27 +41,41 @@ if [ "$OS" = "Linux" ]; then RAM_GB=$(free -g | awk '/^Mem:/{print $2}') fi -# NVIDIA GPU 감지 +# NVIDIA GPU 감지 + VRAM 확인 +VRAM_GB=0 if command -v nvidia-smi &>/dev/null; then if nvidia-smi &>/dev/null; then HAS_NVIDIA_GPU=true + VRAM_MB=$(nvidia-smi --query-gpu=memory.total --format=csv,noheader,nounits 2>/dev/null | head -1) + VRAM_GB=$((VRAM_MB / 1024)) fi fi echo " OS: $OS ($ARCH)" echo " Apple Silicon: $HAS_APPLE_SILICON" echo " NVIDIA GPU: $HAS_NVIDIA_GPU" +if [ "$HAS_NVIDIA_GPU" = true ]; then + echo " VRAM: ${VRAM_GB}GB" +fi echo " RAM: ${RAM_GB}GB" echo "" #-------------------------------------------------------------------- # 방식 결정 +# - NVIDIA GPU + VRAM 20GB 이상 → vLLM +# - NVIDIA GPU + VRAM 부족 → Ollama (GPU로는 모델 못 올림) +# - Apple Silicon + RAM 32GB↑ → MLX +# - Apple Silicon + RAM 부족 → Ollama +# - 그 외 → Ollama #-------------------------------------------------------------------- SELECTED="" -if [ "$HAS_NVIDIA_GPU" = true ]; then +if [ "$HAS_NVIDIA_GPU" = true ] && [ "$VRAM_GB" -ge 20 ]; then SELECTED="vllm" - echo " → NVIDIA GPU 감지 → vLLM 선택" + echo " → NVIDIA GPU (VRAM ${VRAM_GB}GB) → vLLM 선택" +elif [ "$HAS_NVIDIA_GPU" = true ] && [ "$VRAM_GB" -lt 20 ]; then + SELECTED="ollama" + echo " → NVIDIA GPU 감지되었으나 VRAM ${VRAM_GB}GB (20GB 미만) → Ollama 선택" elif [ "$HAS_APPLE_SILICON" = true ] && [ "$RAM_GB" -ge 32 ]; then SELECTED="mlx" echo " → Apple Silicon + RAM ${RAM_GB}GB → MLX (vllm-mlx) 선택" @@ -73,40 +87,6 @@ else echo " → 범용 환경 → Ollama 선택" fi -echo "" - -#-------------------------------------------------------------------- -# 사용자 확인 -#-------------------------------------------------------------------- -read -p " $SELECTED 방식으로 진행할까요? [Y/n] (직접 선택: o=ollama, m=mlx, v=vllm): " CONFIRM -CONFIRM=${CONFIRM:-Y} - -case "$CONFIRM" in - [Yy]|"") - # 자동 선택 유지 - ;; - [Oo]) - SELECTED="ollama" - echo " → Ollama로 변경" - ;; - [Mm]) - SELECTED="mlx" - echo " → MLX로 변경" - ;; - [Vv]) - SELECTED="vllm" - echo " → vLLM으로 변경" - ;; - [Nn]) - echo " 취소됨." - exit 0 - ;; - *) - echo " 알 수 없는 입력. 취소됨." - exit 1 - ;; -esac - echo "" echo "============================================" echo " $SELECTED 방식으로 셋업을 시작합니다"