Skip to content

Latest commit

 

History

History
155 lines (118 loc) · 4.97 KB

File metadata and controls

155 lines (118 loc) · 4.97 KB

llama.cpp-m 0.1.0 Validation

This record separates completed local evidence from GitHub Actions evidence that requires an authorized push. Version 0.1.0 is not published by this branch.

Release Identity

Field Value
Wrapper llama.cpp-m 0.1.0
Package mcpplibs:llamacpp@0.1.0
Module import llamacpp;
Upstream tag b10069
Upstream commit 178a6c44937154dc4c4eff0d166f4a044c4fceba
Official archive SHA-256 293a7c65a11e2203c5468a06d0d0e8d21dfff16ad08712b16c61efbe0d93e097
mcpp 2026.7.28.2

The final local release contract printed:

Snapshot matches.
All exports match.
Snapshot matches.
llama.cpp-m 0.1.0 -> llama.cpp b10069 (178a6c44937154dc4c4eff0d166f4a044c4fceba)

GitHub Actions Status

The required workflow jobs are:

Job Required behavior Run URL
unit-and-import Unit/import/export/snapshot and cold CPU build Not available before authorized push
cpu (ubuntu-24.04) Linux x86_64 CPU inference Not available before authorized push
cpu (windows-latest) Windows x86_64 CPU inference Not available before authorized push
cpu (macos-15) macOS ARM64 CPU inference Not available before authorized push
linux-arm64 Native ARM64 Docker inference and ELF/source audit Not available before authorized push
metal Real macOS ARM64 Metal inference Not available before authorized push
release-contract Immutable version/upstream/reproducibility mapping Not available before authorized push

These missing URLs are a release blocker, not a skipped or passing result.

Small Regression Model

Field Value
URL https://huggingface.co/ggml-org/models-moved/resolve/499bc8821c6b12b4e53c5bffcb21ec206f212d81/tinyllamas/stories15M-q4_0.gguf
Size 19077344 bytes
SHA-256 66967fbece6dbe97886593fdbb73589584927e29119ec31f08090732d1861739

Local macOS ARM64 runtime results:

LLAMACPP_CPU_TEST=PASS
LLAMACPP_METAL_TEST=PASS
using embedded metal library
offloaded 1/7 layers to GPU
MTL0_Mapped model buffer size = 9.34 MiB
MTL0 compute buffer size = 7.88 MiB

Both paths loaded the GGUF, decoded, sampled a valid token, and returned success.

Qwen3.5-4B Q4_K_M

Field Value
Size 2707514144 bytes
SHA-256 de8e96cd0d0c358487091aaaed1346bc02e61da3d4b412c833662702e233e78c
Architecture qwen35
Parameters reported 4205751296
Host Apple M4, macOS ARM64

Commands:

cd examples/chat-cpu
/usr/bin/time -p mcpp run -- <Qwen3.5-4B-Q4_K_M.gguf> \
  'User: Introduce yourself in one sentence.\nAssistant:'

cd ../chat-metal
/usr/bin/time -p mcpp run -- <Qwen3.5-4B-Q4_K_M.gguf> metal \
  'User: Introduce yourself in one sentence.\nAssistant:'

Observed results from 2026-07-29:

Backend Generated Offload Wall time
CPU 32 tokens 0/33 layers 56.75s
Metal 32 tokens 33/33 layers 2.92s

Metal also reported:

using embedded metal library
GPU name: MTL0 (Apple M4)
offloaded 33/33 layers to GPU
backend=metal params=4205751296 generated_tokens=32

The CPU output began I am a helpful assistant.. The Metal output began I am a large language model .... These are generation proofs, not answer quality assertions.

The wall-clock ratio was about 19.4x in favor of Metal. It includes model loading, prompt processing, generation, and first-use Metal pipeline work, so it must not be presented as a steady-state tokens-per-second benchmark.

Linux ARM64 Docker

A native Ubuntu 24.04 ARM64 Docker run using mcpp 2026.7.28.2 completed CPU inference and printed LLAMACPP_CPU_TEST=PASS.

The run verified:

target/.build-mcpp/build.mcpp.bin: ARM aarch64, statically linked, PT_INTERP absent
.../bin/cpu_decode: ARM aarch64, statically linked, PT_INTERP absent
arch/arm/quants.c present
arch/arm/repack.cpp present
arch/x86 absent

The container used the USTC Ubuntu ports mirror and an isolated MCPP_HOME, with MCPP_VENDORED_XLINGS explicitly routed to the released mcpp bundle.

Local Automated Checks

The final local verification completed:

  • 112 Python unit tests;
  • official tag and archive check mode;
  • generated export and API snapshot checks;
  • release mapping validation;
  • small-model CPU and Metal inference;
  • CPU and Metal Qwen generation;
  • YAML parsing and actionlint for all three workflow files.

The actionlint image was pulled as rhysd/actionlint@sha256:b1934ee5f1c509618f2508e6eb47ee0d3520686341fec936f3b79331f9315667. GitHub Actions remains authoritative for actual workflow execution and the required platform matrix.

Unsupported In 0.1.0

  • mtmd multimodal API;
  • CUDA, Vulkan, RPC, and other upstream backends;
  • C++17 consumer compatibility;
  • a claim that every upstream model architecture works.

Deprecated upstream C APIs are exported and can produce upstream deprecation warnings when called. A new model or backend support claim requires its own targeted runtime evidence.