setup.sh VRAM 기반 판단 로직 추가 및 완전 자동화
- NVIDIA GPU VRAM 20GB 미만이면 vLLM 대신 Ollama 선택 - 사용자 확인 단계 제거, 감지 후 바로 실행 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f1890713a7
commit
1597a9140f
54
setup.sh
54
setup.sh
@ -41,27 +41,41 @@ if [ "$OS" = "Linux" ]; then
|
|||||||
RAM_GB=$(free -g | awk '/^Mem:/{print $2}')
|
RAM_GB=$(free -g | awk '/^Mem:/{print $2}')
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# NVIDIA GPU 감지
|
# NVIDIA GPU 감지 + VRAM 확인
|
||||||
|
VRAM_GB=0
|
||||||
if command -v nvidia-smi &>/dev/null; then
|
if command -v nvidia-smi &>/dev/null; then
|
||||||
if nvidia-smi &>/dev/null; then
|
if nvidia-smi &>/dev/null; then
|
||||||
HAS_NVIDIA_GPU=true
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo " OS: $OS ($ARCH)"
|
echo " OS: $OS ($ARCH)"
|
||||||
echo " Apple Silicon: $HAS_APPLE_SILICON"
|
echo " Apple Silicon: $HAS_APPLE_SILICON"
|
||||||
echo " NVIDIA GPU: $HAS_NVIDIA_GPU"
|
echo " NVIDIA GPU: $HAS_NVIDIA_GPU"
|
||||||
|
if [ "$HAS_NVIDIA_GPU" = true ]; then
|
||||||
|
echo " VRAM: ${VRAM_GB}GB"
|
||||||
|
fi
|
||||||
echo " RAM: ${RAM_GB}GB"
|
echo " RAM: ${RAM_GB}GB"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# 방식 결정
|
# 방식 결정
|
||||||
|
# - NVIDIA GPU + VRAM 20GB 이상 → vLLM
|
||||||
|
# - NVIDIA GPU + VRAM 부족 → Ollama (GPU로는 모델 못 올림)
|
||||||
|
# - Apple Silicon + RAM 32GB↑ → MLX
|
||||||
|
# - Apple Silicon + RAM 부족 → Ollama
|
||||||
|
# - 그 외 → Ollama
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
SELECTED=""
|
SELECTED=""
|
||||||
|
|
||||||
if [ "$HAS_NVIDIA_GPU" = true ]; then
|
if [ "$HAS_NVIDIA_GPU" = true ] && [ "$VRAM_GB" -ge 20 ]; then
|
||||||
SELECTED="vllm"
|
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
|
elif [ "$HAS_APPLE_SILICON" = true ] && [ "$RAM_GB" -ge 32 ]; then
|
||||||
SELECTED="mlx"
|
SELECTED="mlx"
|
||||||
echo " → Apple Silicon + RAM ${RAM_GB}GB → MLX (vllm-mlx) 선택"
|
echo " → Apple Silicon + RAM ${RAM_GB}GB → MLX (vllm-mlx) 선택"
|
||||||
@ -73,40 +87,6 @@ else
|
|||||||
echo " → 범용 환경 → Ollama 선택"
|
echo " → 범용 환경 → Ollama 선택"
|
||||||
fi
|
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 "============================================"
|
echo "============================================"
|
||||||
echo " $SELECTED 방식으로 셋업을 시작합니다"
|
echo " $SELECTED 방식으로 셋업을 시작합니다"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user