Files
ForgeLM/scripts/build-prod.sh
T

34 lines
943 B
Bash

#!/usr/bin/env bash
# scripts/build-prod.sh
# Production build of llama.cpp (Release + LTO, RTX 3070 target).
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT="$SCRIPT_DIR/.."
VENDOR="$ROOT/vendor/llama.cpp"
BUILD_DIR="$VENDOR/build-prod"
if [ ! -f "$VENDOR/CMakeLists.txt" ]; then
echo "[ERROR] vendor/llama.cpp not initialised."
echo " Run: git submodule update --init --recursive"
exit 1
fi
echo "[INFO] Configuring llama.cpp (prod, CUDA cc86)..."
cmake -S "$VENDOR" -B "$BUILD_DIR" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_SHARED_LIBS=ON \
-DGGML_CUDA=ON \
-DCMAKE_CUDA_ARCHITECTURES=86 \
-DLLAMA_BUILD_TESTS=OFF \
-DLLAMA_BUILD_EXAMPLES=OFF \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
echo "[INFO] Building (prod)..."
cmake --build "$BUILD_DIR" \
--parallel "$(nproc 2>/dev/null || echo 4)" \
--config Release
echo "[OK] Prod build complete: $BUILD_DIR"