quantized duplicated precisions.json, which is authoritative for the
quantized/non-quantized partition. default expressed a per-repository
recommendation nothing consumed: the library resolves its own per-platform
default. Both are gone from the schema.
Pin Core ML fp16 to CPU_AND_NE (6.0x on s, 2.8x on x)
Pin compute_unit=CPU_AND_NE for the Core ML fp16 builds.
ExecuTorch defaults to ComputeUnit.ALL, which here splits the graph across GPU
and ANE and pays the transition cost. Pinning the ANE removes the GPU from
consideration. Measured on an iPhone 16 (ET 1.4.1, 10 warmup + 100 timed runs,
median of two interleaved repetitions, published build vs this one):
fast_sam s 52.45 ms -> 8.70 ms 6.0x
fast_sam x 108.85 ms -> 38.90 ms 2.8x
This is NOT a general rule and was not applied elsewhere. The same panel found
ALL already optimal for efficientnet, ssdlite, fcn, selfie and yolo26; CPU_AND_GPU
worse than ALL almost everywhere; lraspp identical at 5.90 vs 5.90 ms once
measured properly; and deeplab unchanged (0.98-1.06x).
Weights, contract and precision are unchanged; only the compile specs differ.
fp16 and fp32 were kept side by side pending review; they are indistinguishable in use (93.4% (s) and 93.9% (x) by a segmentation-shaped metric; confirmed visually identical on device), and fp32 is both slower and twice the size while being structurally unable to run on the ANE.
The config is republished alongside. For ssdlite320 this also corrects the declared input shape: the published config said [1,3,320,320] while the model accepts [3,320,320], so set_inputs failed against its own contract.
v0.9.0 and below are untouched.