Something went wrong. Try again.
strata but optimized for m5 (and maybe more later)
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#!/usr/bin/env bashset -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"STRATA_COMMIT="296b59d2f73c8f04a805df29c2fa97655adace78"LLAMA_COMMIT="a0e6dc7384edb8f5d927155e1d26c10b4a310e6d"METAL_CPP_URL="https://developer.apple.com/metal/cpp/files/metal-cpp_26.zip"METAL_CPP_SHA256="4df3c078b9aadcb516212e9cb03004cbc5ce9a3e9c068fa3144d021db585a3a4"
mkdir -p "$ROOT/vendor"
if [ ! -d "$ROOT/vendor/llama.cpp/.git" ]; then git clone https://github.com/ggml-org/llama.cpp.git "$ROOT/vendor/llama.cpp"figit -C "$ROOT/vendor/llama.cpp" fetch --all --tagsgit -C "$ROOT/vendor/llama.cpp" checkout "$LLAMA_COMMIT"
if [ ! -d "$ROOT/vendor/strata/.git" ]; then git clone https://github.com/Niko1221/Strata.git "$ROOT/vendor/strata"figit -C "$ROOT/vendor/strata" fetch --all --tagsgit -C "$ROOT/vendor/strata" checkout -f "$STRATA_COMMIT"git -C "$ROOT/vendor/strata" clean -fdgit -C "$ROOT/vendor/strata" apply "$ROOT/scripts/strata_metal_complete.diff"
if [ ! -f "$ROOT/vendor/strata/third_party/metal-cpp/Metal/Metal.hpp" ]; then TMP_ZIP="$(mktemp -t metal-cpp.XXXXXX.zip)" TMP_DIR="$(mktemp -d -t metal-cpp.XXXXXX)" curl -fL "$METAL_CPP_URL" -o "$TMP_ZIP" echo "$METAL_CPP_SHA256 $TMP_ZIP" | shasum -a 256 -c - unzip -q "$TMP_ZIP" -d "$TMP_DIR" mkdir -p "$ROOT/vendor/strata/third_party" rm -rf "$ROOT/vendor/strata/third_party/metal-cpp" mv "$TMP_DIR/metal-cpp" "$ROOT/vendor/strata/third_party/metal-cpp" rm -rf "$TMP_ZIP" "$TMP_DIR"fi
cmake -S "$ROOT/vendor/strata/metal" -B "$ROOT/vendor/strata/build-metal" -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DMETAL_CPP_DIR="$ROOT/vendor/strata/third_party/metal-cpp" \ -DSTRATA_GGML_DIR="$ROOT/vendor/llama.cpp"
ninja -C "$ROOT/vendor/strata/build-metal" strata_window_cli convert_k256_q2_0 heal_k256_q2_0
cmake -S "$ROOT/vendor/strata/tools/vision" -B "$ROOT/vendor/strata/build-vision" -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DLLAMA_DIR="$ROOT/vendor/llama.cpp" \ -DSTRATA_VISION_CUDA=OFF \ -DSTRATA_PORTABLE=OFF \ -DGGML_METAL=ON
ninja -C "$ROOT/vendor/strata/build-vision" strata-vision
UV_BIN="${UV:-$(command -v uv || echo "$HOME/.local/bin/uv")}"if [ "${SKIP_MODEL_DOWNLOAD:-0}" != "1" ]; then "$UV_BIN" run --with regex python3 "$ROOT/scripts/build_k512_iq2_xs_metal.py" "$UV_BIN" run --with numpy python3 "$ROOT/scripts/build_mtp_q2_0.py"fi