[Engine] strata-sycl.sh drops every STRATA_* variable whose value is 0, so the documented STRATA_PREFILL_MMQ=0 (FP16 prompt path) never reaches the engine; "off" works by accident
I maintainer di solito rispondono entro 3 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 74/100
Direzione di ricerca
Inizia dal ciclo di inoltro dell’ambiente in sycl/serve/strata-sycl.sh e segui come viene creato l’array setting a partire dall’ambiente di configurazione. Riproduci il caso con STRATA_PREFILL_MMQ=0 bash -x sycl/serve/strata-sycl.sh --version e controlla gli argomenti di docker run; confronta con =off. Il lavoro è concluso quando il valore documentato 0 raggiunge il motore come STRATA_PREFILL_MMQ=0 e il comportamento degli altri switch del launcher è chiaro.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Area
[Engine] (the SYCL serve path: sycl/serve/strata-sycl.sh, the config's exe on Intel)
Desktop app, Terminal or source?
Source
What happened
The launcher forwards STRATA_* (and ONEAPI_/UR_/IGC_/SYCL_/ZES_) variables into the container, but skips every one whose value is 0 or empty:
for k in "${!setting[@]}"; do
# the engine tests the switches by presence: a value of 0 (or empty) means "not set", so it is not passed on
case "${setting[$k]}" in 0|"") ;; *) envs+=(-e "$k=${setting[$k]}") ;; esac
done
That is right for a switch whose unset default is off, and wrong for a three-state switch where unset means "auto". STRATA_PREFILL_MMQ is one: unset = auto on Battlemage, 0 = the FP16 path. 0 is the documented value (docs/INTEL_INT8_EXPERTS.md: "STRATA_PREFILL_MMQ=0: the FP16 path everywhere"; the 0.2.0 release notes), and it is what the engine itself prints at start: int8 prompt experts are on (Battlemage default, auto); STRATA_PREFILL_MMQ=0 turns them off. A config with "env": {"STRATA_PREFILL_MMQ": "0"} (the documented way to give the engine a setting: the server puts the env block into the launcher's environment) starts the auto path anyway, and the log advises the value that was just dropped.
Trace, bash -x sycl/serve/strata-sycl.sh --version:
- with
STRATA_PREFILL_MMQ=0theexec docker runline carries only the launcher's three defaults:-e STRATA_VERIFY_NO_HOST=1 -e STRATA_VERIFY_DEVICE_PLAN=1 -e STRATA_STAGER_THREADS=12; - with
STRATA_PREFILL_MMQ=offit also carries-e STRATA_PREFILL_MMQ=off. "off" works only becausechoose_mode()insycl/include/strata/prefill/esimd_moe.hppparses a non-digit string as 0, which no document says.
Seen with the real engine (2026-10-26, v0.2.6 build): an A/B arm whose config env had STRATA_PREFILL_MMQ=0 logged int8 prompt experts are on (Battlemage default, auto) and ran at the auto path's speed (1115 tok/s on a 6,345-token prompt, against 1316 with "off"; the numbers are in the int8 issue I am filing next).
The launcher's own header example, "env": {"STRATA_VERIFY_NO_HOST": "0"}, works by accident: the 0 replaces the launcher's default 1 in the setting array and is then dropped, and the engine's unset default happens to be the same as 0. Other =0 forms the Intel docs give and the launcher cannot deliver: STRATA_I8_FORCE=0, STRATA_I8_WG=0, STRATA_MMVQ_A2=0, STRATA_MMVQ_WIDE_32=0, STRATA_LEND_MIRROR=0, STRATA_ARENA_ALIAS_CHECK=0, STRATA_SPLIT_HEADROOM=0, STRATA_MIRROR_MIB=0 (docs/INTEL.md, INTEL_ARC.md, INTEL_INT8_EXPERTS.md). I did not check which of those have an unset default equal to 0 and which do not.
Expected: a value the config's env block names reaches the engine as written. If some engine switches really are presence-tested (so that K=0 would turn them on), a short list of those names to keep dropping, or a list of the three-state names to pass through, would avoid this; dropping every 0 silently is what bites.
Smallest steps or command that reproduce it
- Intel install per docs/INTEL_ARC.md.
- In the run config:
"env": {"STRATA_PREFILL_MMQ": "0"}; start the server; the engine log saysint8 prompt experts are on (Battlemage default, auto). - Change the value to
"off": no int8 lines, FP16 timings. - Without a GPU:
STRATA_PREFILL_MMQ=0 bash -x sycl/serve/strata-sycl.sh --version 2>&1 | grep 'exec docker run'has no-e STRATA_PREFILL_MMQ; with=offit has.
Reproduction status
Reproduced locally
Strata version
Source v0.2.7.1 (46c152a1), engine 0.1.53 built from it; strata-sycl.sh is identical on main today and was the same on v0.2.6.
Graphics card, memory and system
Intel Arc Pro B70 32 GB · 62 GB RAM · Debian 13 (kernel 7.2.6, xe driver); engine in the strata-sycl-dev container
Model, size and settings
Qwen3.8-Flash-Next IQ3_S (native pack, --stream-experts, --prefill 4096), 256K context, pictures off
Logs
The trace lines above, and the engine's int8 prompt experts are on (Battlemage default, auto); STRATA_PREFILL_MMQ=0 turns them off under a config env of 0.
- Lingua principale
- C++
- Stelle
- 11.6k
- Fork
- 1k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Niko1221/Strata
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Niko1221/Strata#4528 · 2 commenti ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di Niko1221/Strata
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 3 giorni
-
status:needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
PX4/PX4-Autopilot#29496 ·
I maintainer di solito rispondono entro 1 giorno
-
Missing icon for .cpp2 filesAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 66/100
madskristensen/FileIcons#385 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
microsoft/SysmonCommon#26 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
espressif/esp-matter#1913 ·