Gemma 4 VL (Vulkan, v0.11.0 export) is killed by lmkd during load on an 8 GB phone; the v0.9.0 export loads there through the legacy runner
Los mantenedores suelen responder en 1 día
@barhanc ya está trabajando en esto.
Desde el 5/11/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Description
On a Samsung Galaxy S24 (8 GB), loading Gemma 4 VL E2B through the new multimodal LLM API gets the app killed by the Android low-memory killer before generation starts. The app is in the foreground (oom_score_adj 0). On the same phone, our previous release loads the v0.9.0 Vulkan export of the same model through react-native-executorch/legacy and answers normally.
The XNNPACK v0.11.0 export of the same model loads fine on the new API on this phone, using about 2.7 GB PSS with a 7.8 s load. The problem looks specific to the Vulkan path.
Environment
- react-native-executorch 0.11.0 in both builds.
- Device: Samsung Galaxy S24, SM-S921B (Exynos 2400, Xclipse 940 GPU), 8 GB RAM (
MemTotal7.05 GiB), Android API 37. - Context window: 2048 in both builds. That is the export's
max_context_len; the app does not raise it.
| Works | Killed | |
|---|---|---|
| API | react-native-executorch/legacy LLM |
new multimodal LLM API |
| Model file | [email protected]/e2b/vulkan/gemma_4_e2b_vulkan_8da4w.pte (4.37 GB) |
[email protected]/e2b/vulkan/gemma_4_e2b_vulkan_8da4w.pte (3.81 GB) |
| Result | Loads and answers. Memory after load: GL mtrack 3.07 GiB, TOTAL PSS 4.8 GiB (of which 1.7 GiB swapped), MemAvailable 0.65 GiB |
lmkd reclaims the app about 15 s after the first message, during load |
Steps to reproduce
- On an 8 GB Android phone (we used the S24 above), download
gemma-4-E2B-it-ExecuTorchv0.11.0e2b/vulkan/gemma_4_e2b_vulkan_8da4w.ptewith its tokenizer. - Load it with the multimodal LLM API from 0.11.0 and send a short text prompt (we sent "And of Germany?" in an existing chat).
- The process is killed during load. No JS or native error is logged before the kill.
Log
13:01:46.126 I/PMTEST: gemma-vl-new-build-start
13:01:57.149 I/GSC (23633): SID[119] ... <- Vulkan shader compilation in the app process
13:02:01.396 D/io_stats: Read_top(KB): privatemind.ver(23633) 1217384
13:02:01.472 I/lmkd (602): Reclaim 'com.swmansion.privatemind.ver' (23633), uid 10481, oom_score_adj 0, state 2(8)
to free 308kB rss, 0kB anon rss, 248220kB swap, 13525kB dmabuf_pss, 40576kB dmabuf_rss;
reason: min2x watermark is breached even after kill; level: 3
Before reclaiming the app, lmkd killed dozens of background processes in the preceding seconds, so memory runs out during load, not during generation.
What we did not isolate
Two things changed between the working and the failing run: the runner (legacy vs. new multimodal API) and the export (v0.9.0 vs. v0.11.0). We have not yet run the v0.9.0 file through the new API, or the v0.11.0 file through the legacy runner, in a clean app. Two questions:
- Does the Vulkan path in the new runner hold more at load, for example keeping the mmapped weights and a GPU copy at the same time?
- Is there a load option that lowers the peak?
The XNNPACK export works as a workaround, running on the CPU instead of the GPU.
- Lenguaje dominante
- TypeScript
- Estrellas
- 1.8k
- Forks
- 101
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 58
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
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 software-mansion/react-native-executorch
-
dependencies platform: ios
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
software-mansion/react-native-executorch#1617 ·
Los mantenedores suelen responder en 1 día
-
Peer react-native >=0.83Posiblemente ocupada @msluszniak la tomó hoy. Abiertodependencies dev exp
Dificultad 1/5 Menos de una hora Aptitud para principiantes 25/100
software-mansion/react-native-executorch#1623 ·
Los mantenedores suelen responder en 1 día
-
Docs: iOS < 17 fails pod install on the bare templatePosiblemente ocupada @msluszniak la tomó hoy. Abiertodocumentation platform: ios
Dificultad 1/5 Menos de una hora Aptitud para principiantes 20/100
software-mansion/react-native-executorch#1622 ·
Los mantenedores suelen responder en 1 día
-
Docs: dynamic frameworks are supportedPosiblemente ocupada @msluszniak la tomó hoy. Abiertodocumentation platform: ios
Dificultad 1/5 1-3 horas Aptitud para principiantes 35/100
software-mansion/react-native-executorch#1621 ·
Los mantenedores suelen responder en 1 día
-
Docs: drop the Expo babel.config.js stepPosiblemente ocupada @msluszniak la tomó hoy. Abiertodocumentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 25/100
software-mansion/react-native-executorch#1620 ·
Los mantenedores suelen responder en 1 día
Todos los issues de software-mansion/react-native-executorch
Issues similares
-
test-reliability
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Azure/azure-sdk-for-js#40672 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
HarperFast/studio#2067 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
liberation-data/drivine#639 · 2 comentarios ·
Los mantenedores suelen responder en 1 día