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

Aperta
#1,613 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@barhanc ci sta già lavorando.

Dal 5/11/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

model

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 (MemTotal 7.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

  1. On an 8 GB Android phone (we used the S24 above), download gemma-4-E2B-it-ExecuTorch v0.11.0 e2b/vulkan/gemma_4_e2b_vulkan_8da4w.pte with its tokenizer.
  2. 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).
  3. 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.

Lingua principale
TypeScript
Stelle
1.8k
Fork
101
Merge medio
2g 4h
PR unite (30g)
58

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di software-mansion/react-native-executorch

Tutte le issue di software-mansion/react-native-executorch

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.