34 lines
943 B
Bash
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"
|