fp16 measures 2.05x XNNPACK on an Adreno 840 against 1.30x for fp32, and 2.85x
on a Mali-G76 against 3.20x. fp32 is the faster arm on Mali, but fp16 wins on
both parts and halves the download, so it is the better single default.
fp16 requires the 30522-row token embedding to stay off texture storage; the
memory planner otherwise moves it onto a kernel that returns silently wrong
values above a 16384-row vocabulary, cosine 0.67 against the CPU reference.
With the embedding exempted it is 0.99996 on Adreno and 0.99999 on Mali.
See pytorch/executorch#22333.
Requires the ExecuTorch 1.4.1 Vulkan runtime from the v0.10.0-libs-1.4.1
artifacts.
Android GPU build of all-MiniLM-L6-v2. 2.4x faster than the XNNPACK build on a Mali-G76 at the published 254 token shape (169.8 ms against 408.4 ms median), bit-identical across 10 executions, cosine 0.9999924 against the CPU reference.