Spaces:
Sleeping
Sleeping
Alessandro Tomassini
deploy(hf): overlay README/Dockerfile da huggingface/, senza docs/binari/model
c42a5a1 | # ============================================================================= | |
| # Compila e installa llama-cpp-python con CUDA per QUESTA macchina (bare-metal). | |
| # | |
| # Il binario di llama.cpp è specifico dell'hardware: va (ri)compilato sul server | |
| # dedicato con l'architettura della SUA GPU. Questo script rileva la compute | |
| # capability via nvidia-smi e la passa a CMAKE_CUDA_ARCHITECTURES. Senza GPU | |
| # installa la build CPU (funziona ovunque, più lenta). | |
| # | |
| # Uso (dentro il venv del progetto): | |
| # ./scripts/setup_llama_cuda.sh # auto-rileva l'arch GPU | |
| # CUDA_ARCH=89 ./scripts/setup_llama_cuda.sh # forza l'arch (L4/RTX40=89, | |
| # # A100=80, RTX30=86, H100=90, | |
| # # RTX50/Blackwell=120) | |
| # CUDA_ARCH="80;86;89;90" ./scripts/setup_llama_cuda.sh # build "fat" multi-GPU | |
| # | |
| # Prerequisiti sul server: NVIDIA driver, CUDA toolkit (nvcc), build-essential, | |
| # cmake. Il modello GGUF è invece portabile: scaricalo con download_models.py. | |
| # ============================================================================= | |
| set -euo pipefail | |
| PIP="${PIP:-pip}" | |
| PKG="llama-cpp-python>=0.3.2" | |
| if ! command -v nvidia-smi >/dev/null 2>&1; then | |
| echo "⚠ nvidia-smi non trovato: nessuna GPU NVIDIA → installo la build CPU." | |
| CMAKE_ARGS="-DGGML_CUDA=off" FORCE_CMAKE=1 \ | |
| "$PIP" install --no-cache-dir --force-reinstall "$PKG" | |
| echo "✓ Build CPU installata. Imposta LLM_N_GPU_LAYERS=0." | |
| exit 0 | |
| fi | |
| if ! command -v nvcc >/dev/null 2>&1; then | |
| echo "✗ GPU presente ma 'nvcc' (CUDA toolkit) non trovato nel PATH." | |
| echo " Installa il CUDA toolkit (es. apt install cuda-toolkit) e riprova." | |
| exit 1 | |
| fi | |
| # compute_cap es. "8.9" → "89". Più GPU: arch uniche unite da ';' (build fat). | |
| DETECTED=$(nvidia-smi --query-gpu=compute_cap --format=csv,noheader \ | |
| | tr -d '. ' | sort -u | paste -sd';' -) | |
| ARCHS="${CUDA_ARCH:-$DETECTED}" | |
| echo "▶ GPU:" | |
| nvidia-smi --query-gpu=name,compute_cap,memory.total --format=csv,noheader | sed 's/^/ /' | |
| echo "▶ Compilo $PKG con CUDA per arch: ${ARCHS}" | |
| CMAKE_ARGS="-DGGML_CUDA=on -DCMAKE_CUDA_ARCHITECTURES=${ARCHS}" \ | |
| FORCE_CMAKE=1 \ | |
| "$PIP" install --no-cache-dir --force-reinstall "$PKG" | |
| python - <<'PY' | |
| import llama_cpp | |
| print("✓ llama-cpp-python installato:", llama_cpp.__version__) | |
| PY | |
| echo "✓ Fatto. Imposta DEVICE=cuda e LLM_N_GPU_LAYERS=-1 nel .env." | |