Skip to content

embeddinggemma.c v0.2.1

Choose a tag to compare

@ehartford ehartford released this 20 Jul 03:48

Superseded by v0.2.2, which replaces the SM86-only CUDA asset with a portable CUDA fat binary.

This patch release corrects binary packaging and makes the Metal server a
single self-contained executable. Release assets are raw executables, not
tarballs. GitHub provides the source .tar.gz and .zip archives separately.

Binaries

  • embeddinggemma-darwin-arm64-cpu: Apple Silicon CPU server.
  • embeddinggemma-darwin-arm64-metal: Apple Silicon Metal server with all
    Metal kernels embedded in the executable.
  • embeddinggemma-linux-x86_64-cpu: Linux x86-64 CPU server.
  • embeddinggemma-linux-x86_64-cuda-sm86: Linux x86-64 CUDA server compiled
    for NVIDIA SM86 GPUs.
  • SHA256SUMS: SHA-256 checksums for the four executables.

Downloaded executables may need chmod +x <filename> before use. Model weights
are not included.

The Darwin binaries target macOS 14.0 or newer and are ad-hoc signed. The Linux
binaries were built on Ubuntu 24.04 and dynamically use system libcurl. The
CUDA binary additionally requires CUDA 12 libraries and an NVIDIA driver; it
was built with CUDA 12.9 and validated on an RTX 3090.

Metal Build

make metal now compiles all .metal translation units into one metallib and
automatically embeds it in the final Mach-O executable. No colocated
embeddinggemma.metallib file is needed at runtime. EI_METALLIB_PATH remains
available as a diagnostic override.

Validation

  • CPU, Metal, and CUDA pass all 10 llama.cpp golden embeddings.
  • CPU, Metal, and CUDA pass packed-batch parity.
  • HTTP Matryoshka dimensions 768, 512, 256, and 128 pass using every stripped
    release executable.
  • Metal passes the full backend parity suite without a metallib sidecar.
  • CUDA attention, QKV epilogue, Q4 MMA, and Q8 latency route parity pass.