mudler / mudler/vllm.cpp

defer(ENG-MM-INPUT-PIPELINE): the mm hasher algorithm knob is inert until a second hash algorithm exists

Open
#2,665 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
423
Forks
53
Avg merge
20h 26m
Merged PRs (30d)
310

Description

Row: ENG-MM-INPUT-PIPELINE

Found by wave PORTQ-2 re-deriving PORT-NOW entry 41 of 5559679229..e126687a9a
(#2646). Upstream:
1180b604f8 vllm#49686, "Expose mm hash algorithm selection to cli args".

This is DEFERRED work with a named gate, not a gap that can be ported today.
It is filed so the note is met by whoever owns the surface, rather than living
only in a sync report.

The gate

There is no second hash algorithm in this tree. MultiModalHasher
(include/vllm/multimodal/hasher.h:20) hard-codes BLAKE3 in both entry points,
and its header line 8 names it "BLAKE3, vLLM's default
VLLM_MM_HASHER_ALGORITHM" — so this tree never ported even the PRE-commit env
selection. third_party carries blake3 and no SHA-2 source. sha256 and
sha512 have zero hits inside src/vllm/multimodal and
include/vllm/multimodal (the tree-wide hits are checkpoint manifests).

The commit's own delta is env-knob to config-knob on a selector this tree does
not carry, over algorithms it does not implement. A selector with one choice is
dead code under AGENTS.md §"Nothing lands dead", so the entry becomes portable
the day a second algorithm exists and not before.

What is here, and what is not

Here: MultiModalConfig (include/vllm/config/multimodal.h:50) and the three
production call sites (src/vllm/multimodal/audio_processor.cpp:203,
dots3_note_processor.cpp:205, qwen3vl_processor.cpp:95).

Not here: mm_hasher_algorithm (zero hits), any algorithm parameter on
hash_kwargs, and any CLI or C-ABI flag. include/vllm/config/multimodal.h:22-27
is a documented deferred-field list that predates this upstream field.

Corroborating and independent: .agents/specs/prefix-prompt-caching-parity.md:100
records the mm hasher as MISSING (latent).

If it is ever taken

Roughly 150-250 lines over 5-6 files, dominated by vendoring SHA-2 — work the
upstream commit does not itself contain. Worth stating plainly: the motivation
upstream gives for the knob is FIPS, which is a product decision for this project
rather than a mirroring obligation.

Nothing was executed for this finding: no build, no test, no GPU.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with include/vllm/multimodal/hasher.h:20 and verify that both entry points still hard-code BLAKE3. Read include/vllm/config/multimodal.h:50 and the call sites in src/vllm/multimodal/audio_processor.cpp, dots3_note_processor.cpp, and qwen3vl_processor.cpp. This is actionable only after a second hash algorithm exists; done means a real selector is wired through the relevant configuration surface and validated by tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
cryptography
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.