Skip to content

Integrate DiffusionGemma via llama.cpp when block-diffusion PRs land #1451

Closed as not planned

Description

@malibio

Overview

DiffusionGemma (released June 10, 2026) is Google DeepMind's first open-weight discrete diffusion language model — a 26B MoE (~3.8B active params/step) that denoises 256-token blocks in parallel rather than generating tokens autoregressively. Google claims >1,000 tok/s on H100. Quality is currently below standard Gemma 4 but the architecture is fundamentally different and worth tracking.

llama.cpp support is not yet in mainline. Two open PRs add block-diffusion inference:

Neither Ollama nor LM Studio can load DiffusionGemma GGUF today as both build on mainline. The community workaround is building from the PR branch directly.

Why It Requires Tracking

Diffusion inference uses a fundamentally different sampling loop (mask → denoise, not autoregressive). The PRs introduce a separate binary because the inference path doesn't fit the existing `llama-cli` machinery. For our Rust path via `llama-cpp-2`, this is 3 steps away:

  1. PRs merge into llama.cpp mainline
  2. `llama-cpp-2` crate ships a release bundling the new llama.cpp version
  3. We add Rust bindings and bump the crate in `packages/nlp-engine`

No code changes are needed on our side until step 1 completes.

Acceptance Criteria

  • llama.cpp PRs #24423 and #24427 (or successors) merged into mainline
  • `llama-cpp-2` releases a version bundling block-diffusion support
  • Bump `llama-cpp-2` version constraint in `packages/nlp-engine/Cargo.toml`
  • Add any required Rust bindings for `llama_diffusion_*` C API calls
  • Evaluate DiffusionGemma GGUF against NodeSpace use cases (tool calls, summarization) — quality vs speed tradeoff
  • Document findings and decide whether to enable as an optional model target

Technical Specifications

Reference Files

Watch For

  • New `llama-cpp-2` release on crates.io that bundles post-PR-merge llama.cpp
  • PRs may be superseded or rebased — search for "diffusion" in llama.cpp PRs if links go stale
  • Model quality is currently below Gemma 4 autoregressive — re-evaluate at time of integration

Related Issues

Activity

  1. mstomar125 commented on Sep 12, 2026

    @mstomar125
    Contributor

    Status-confirmation (2026-09-12): the gating condition is still unmet — correctly deferred, not stale.

    • DiffusionGemma ggml-org/llama.cpp#24423 ("DiffusionGemma") — still OPEN, actively discussed (85 comments, last updated 2026-09-10, two days ago).
    • Add diffusion-gemma block-diffusion support ggml-org/llama.cpp#24427 ("Add diffusion-gemma block-diffusion support") — still OPEN (17 comments, last updated 2026-08-24).
    • Neither has merged into mainline. Searched for a successor PR ("diffusion" across open llama.cpp PRs) — these two remain the only relevant results, no rebase/replacement found.
    • packages/nlp-engine/Cargo.toml still pins llama-cpp-2 = { version = ">=0.1.146", ... }, unchanged — no diffusion-capable crate release exists to pull in yet.
    • No diffusion-related code exists anywhere in packages/ — step 1 (upstream merge) genuinely hasn't happened, so nothing on our side is actionable yet.

    Setting status to Blocked to reflect the external gate accurately (was Backlog). Leaving open, no action needed until llama.cpp merges.

  2. malibio commented on Oct 11, 2026

    @malibio
    CollaboratorAuthor

    Closing as not planned in a backlog triage. It waits on two upstream llama.cpp pull requests that are still open, and the native model is locked to one model by ADR-056. Refile if both change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions