Files
ik_llama.cpp/scripts/build-zen.sh
Andrew Moryakov a67287124d scripts : add build-zen.{sh,bat} helpers for AVX-512-capable CPUs (#1734)
Adds two thin one-liner-ish helpers that invoke `cmake` with the flag
set documented in docs/build.md "CPU build flags for AVX-512", so that
users on AMD Zen4 / Intel Sapphire Rapids+ hardware get the IQK
HAVE_FANCY_SIMD path activated without having to remember the five
relevant `GGML_AVX512_*=ON` options.

  scripts/build-zen.sh   - Linux / macOS bash wrapper
  scripts/build-zen.bat  - Windows MSVC wrapper (run from a
                           "x64 Native Tools Command Prompt")

Both default to a "build" output directory, both pass through to the
same cmake invocation, and both work alongside the existing build
options (no behavioural change to vanilla CMake builds).

.gitignore: added `!scripts/build-*.sh` / `!scripts/build-*.bat`
exceptions, in line with the existing `!build-info.sh` / `!build.zig`
exceptions, so the scripts directory build helpers don't get caught
by the broad `build*` artifact pattern.

This is a follow-up to #1729 — the docs section explains why these
flags matter, this PR makes them one command away.
2026-05-04 15:34:28 +03:00

30 lines
831 B
Bash

#!/bin/sh
# CPU-only build helper for AVX-512-capable CPUs (AMD Zen4 / Intel
# Sapphire Rapids+). Enables the IQK GEMM kernels gated by HAVE_FANCY_SIMD
# (see docs/build.md "CPU build flags for AVX-512").
#
# Usage:
# ./scripts/build-zen.sh [build-dir]
#
# Default build directory is "build". A subsequent
#
# objdump -d <build-dir>/bin/llama-cli | grep -c vpdpbusd
#
# should report a non-trivial count if VNNI was compiled in. The runtime
# banner of any built binary will print "HAVE_FANCY_SIMD is defined" when
# the AVX-512 quantized matmul path is active.
set -e
BUILD_DIR=${1:-build}
cmake -B "$BUILD_DIR" \
-DCMAKE_BUILD_TYPE=Release \
-DGGML_NATIVE=ON \
-DGGML_AVX512=ON \
-DGGML_AVX512_VBMI=ON \
-DGGML_AVX512_VNNI=ON \
-DGGML_AVX512_BF16=ON
cmake --build "$BUILD_DIR" --config Release -j