[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
Los mantenedores suelen responder en 3 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
Línea de trabajo
Empieza por el bucle de propagación del entorno en sycl/serve/strata-sycl.sh y sigue cómo se construye el array setting a partir del entorno de configuración. Reproduce el caso con STRATA_PREFILL_MMQ=0 bash -x sycl/serve/strata-sycl.sh --version e inspecciona los argumentos de docker run; compáralo con =off. Se considera terminado cuando el valor documentado 0 llega al motor como STRATA_PREFILL_MMQ=0 y se entiende el comportamiento de los demás interruptores del lanzador.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- C++
- Estrellas
- 11.6k
- Forks
- 1k
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Niko1221/Strata
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Niko1221/Strata#4630 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Niko1221/Strata#4589 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
[Other] tools/ab_engine.py reuses ab_<arm>_r<n>.log in the temp dir across runs, so a later A/B appends its engine logs to an earlier onePosiblemente ocupada @ctr-137 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 3 días
-
[Other] setup.sh --update on an Intel (SYCL) install always ends with "the engine was NOT: it is still 0.1.12": engine_version() reads the launcher script the config names as exePosiblemente ocupada @ctr-137 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 3 días
Todos los issues de Niko1221/Strata
Issues similares
-
good first issue invalid
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
DanielJerolm/gpcc#74 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
patrick-hudson/put.gd-desktop#808 ·
Los mantenedores suelen responder en 1 día
-
DPI change is not fully handled in the cascading window on WindowsPosiblemente ocupada @yukawa la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 4 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
dasher-project/Dasher-GTK#97 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día