ML Application · Android

OA Mobile Lab

A physical-device reference application that trains, evaluates, generates, saves, and reloads OA neural networks through Vulkan on Android.

Five architecture gateAdreno 610 verifiedFP32 · Turnip 26.1.4
OA Mobile Lab launch screen preparing the Vulkan runtime
Runtime preparation
OA Mobile Lab model, tokenizer, and Vulkan driver controls
Driver and recipe selection
OA Mobile Lab training a sparse MoE model on Android
Live native training
OA Mobile Lab end-to-end training and generation report
Complete diagnostic report

Why it exists

Mobile Lab proves that OA's execution model is portable beyond desktop drivers. The app uses the same model recipes, kernels, autograd, AdamW optimizer, metrics, generation contract, and.oam checkpoints as the desktop suite—without a Java model or CPU substitute.

Real device training

Forward, loss, backward, optimizer updates, evaluation, and generation execute on a physical Qualcomm Adreno 610.

Driver-aware runtime

The app can validate the system driver or load app-local Mesa Turnip while preserving one OA capability contract.

End-to-end acceptance

A result passes only after deterministic generation and an exact fresh-model checkpoint reload—not merely because loss decreased.

Same public architecture

RNN, GRU, Transformer, sparse MoE, and Mamba-3 use the canonical desktop dimensions and seeded corpus workload.

Reference systems

Desktop referenceMobile reference
GPUIntel Iris Xe TGL GT2Qualcomm Adreno 610
OSArch Linux x86-64Android 16 / arm64-v8a
DriverMesa ANV 26.1.4Mesa Turnip 26.1.4, app-local
PrecisionFP32FP32

Desktop versus mobile

The controlled Byte workload runs 300 AdamW updates with batch 64 and sequence 16. Each row uses the fixed prompt to be, generates 80 bytes, and verifies an exact checkpoint reload. The timing gap describes very different GPUs; matching quality and behavior is the portability result.

ArchitectureDesktop ms/stepMobile ms/stepMobile/desktopAccuracy D/MReload + generation
RNN6.30604.3195.92×92.3% / 92.3%Pass
GRU13.13954.8172.72×92.3% / 92.3%Pass
Transformer9.42360.8338.30×92.5% / 92.5%Pass
MoE Transformer15.02397.6326.47×92.2% / 93.2%Pass
Mamba-336.291,234.1934.01×93.0% / 92.7%Pass

Sparse MoE is notable at this tutorial shape: mobile wall time is only 1.10× dense Transformer, while its measured GPU mean is slightly lower. This establishes a viable sparse-execution path; it is not presented as a model-quality advantage.

The fourth screenshot is an exploratory BPE/MoE report and visibly preserves a failed strict generation gate. The published table above uses the uninterrupted canonical Byte sweep in which all five architectures passed. Mobile Lab exposes failed gates rather than hiding them.

View the application source