diff --git a/enable-nvidia.sh b/enable-nvidia.sh new file mode 100755 index 0000000..548196b --- /dev/null +++ b/enable-nvidia.sh @@ -0,0 +1,77 @@ +#!/bin/bash +set -e + +echo "=== NVIDIA GPU Setup for Docker ===" +echo "" + +# Step 1: Detect GPU +echo "=== Step 1: Detecting GPU ===" +GPU_INFO=$(lspci | grep -i nvidia || true) +if [ -z "$GPU_INFO" ]; then + echo "ERROR: No NVIDIA GPU detected" + exit 1 +fi +echo "$GPU_INFO" +echo "" + +# Step 2: Find recommended driver +echo "=== Step 2: Finding recommended driver ===" +RECOMMENDED=$(ubuntu-drivers devices 2>/dev/null | grep "recommended" | awk '{print $3}' || true) +if [ -z "$RECOMMENDED" ]; then + echo "ERROR: Could not determine recommended driver" + echo "Available drivers:" + ubuntu-drivers list + exit 1 +fi +echo "Recommended driver: $RECOMMENDED" +echo "" + +# Step 3: Install NVIDIA driver +echo "=== Step 3: Installing $RECOMMENDED ===" +apt-get update +apt-get install -y "$RECOMMENDED" +echo "" + +# Step 4: Install NVIDIA Container Toolkit +echo "=== Step 4: Installing NVIDIA Container Toolkit ===" + +# Add NVIDIA GPG key +curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \ + gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg --yes + +# Add NVIDIA repo +curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \ + sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ + tee /etc/apt/sources.list.d/nvidia-container-toolkit.list + +# Install toolkit +apt-get update +apt-get install -y nvidia-container-toolkit + +# Configure Docker runtime +nvidia-ctk runtime configure --runtime=docker + +# Restart Docker +systemctl restart docker +echo "" + +# Step 5: Verify installation +echo "=== Step 5: Verifying installation ===" +echo "Installed driver:" +dpkg -l | grep nvidia-driver | head -1 +echo "" + +echo "============================================" +echo "INSTALLATION COMPLETE" +echo "============================================" +echo "" +echo "IMPORTANT: Reboot required!" +echo "" +echo "After reboot, verify with:" +echo " nvidia-smi" +echo " docker run --rm --gpus all ubuntu nvidia-smi" +echo "" +echo "Then run MiniCPM-V 4.5 on GPU:" +echo " docker run -d --gpus all -p 11434:11434 -v ollama-data:/root/.ollama \\" +echo " -e MODEL_NAME=\"openbmb/minicpm-v4.5:q8_0\" ht-docker-ai:minicpm45v" +echo ""