File size: 2,386 Bytes
01d5a5d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
# Helper script to check if GPU support is available at runtime

echo "=== GPU Support Check ==="

# Check if llama-server binary exists and is linked to CUDA libraries
if [ -f "/app/llama.cpp/build/bin/llama-server" ]; then
    echo "llama-server binary found, checking for CUDA linkage..."
    CUDA_LIBS=$(ldd /app/llama.cpp/build/bin/llama-server | grep -i "cuda\|nvidia")
    
    if [ -n "$CUDA_LIBS" ]; then
        echo "โœ… llama-server is built with CUDA support:"
        echo "$CUDA_LIBS"
        echo "GPU acceleration is available"
        
        # Check for GPU optimization marker file (optional, not required)
        GPU_MARKER_FILE="/app/data/gpu_optimized.json"
        if [ -f "$GPU_MARKER_FILE" ]; then
            GPU_OPTIMIZED=$(grep -o '"gpu_optimized": *true' "$GPU_MARKER_FILE" || echo "false")
            OPTIMIZED_DATE=$(grep -o '"optimized_on": *"[^"]*"' "$GPU_MARKER_FILE" | cut -d'"' -f4)
            
            if [[ "$GPU_OPTIMIZED" == *"true"* ]]; then
                echo "๐Ÿ“ GPU-optimized build marker found (built on: $OPTIMIZED_DATE)"
            else
                echo "๐Ÿ“ GPU marker file found but not marked as optimized (built on: $OPTIMIZED_DATE)"
            fi
        else
            echo "๐Ÿ“ No GPU optimization marker file found, but CUDA support is detected in binary"
        fi
        
        # Check if NVIDIA GPU is accessible at runtime
        if nvidia-smi &>/dev/null; then
            echo "๐Ÿ” NVIDIA GPU is available at runtime"
            echo "=== GPU ACCELERATION IS READY TO USE ==="
            exit 0
        else
            echo "โš ๏ธ WARNING: llama-server has CUDA support, but NVIDIA GPU is not accessible"
            echo "Check that Docker is running with GPU access (--gpus all)"
            exit 1
        fi
    else
        echo "โŒ llama-server is not linked with CUDA libraries"
        echo "Container was built without CUDA support"
    fi
else
    echo "โŒ llama-server binary not found at /app/llama.cpp/build/bin/llama-server"
fi

# Final check for GPU hardware
if nvidia-smi &>/dev/null; then
    echo "๐Ÿ” NVIDIA GPU is available at runtime, but llama-server doesn't support CUDA"
    echo "To enable GPU support, rebuild using: make docker-up (and select CUDA support when prompted)"
    exit 1
else
    echo "โŒ No NVIDIA GPU detected at runtime"
    exit 1
fi