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.
Rebuild the Core ML fp16 build with compute_unit=CPU_AND_GPU
This architecture is pathologically slow on the ANE. Measured on an iPhone 16
(ExecuTorch 1.4.1, 3 warmup + 15 timed runs, median, mean over the four styles):
fp16 ALL (previous) 209.4 ms ANE-eligible, and the slowest
fp16 CPU_ONLY 109.7 ms
fp16 CPU_AND_GPU 114.2 ms <- this build
fp32 ALL 152.8 ms dropped at v0.10.0
ExecuTorch defaults to ComputeUnit.ALL, under which fp16 is ANE-eligible and
fp32 is not (the ANE is fp16-only). That made fp32 look faster than fp16 and
briefly cast doubt on its removal; the comparison was measuring placement, not
precision. Excluding the ANE makes fp16 the fastest build at half of fp32's size.
CPU_AND_GPU rather than CPU_ONLY despite CPU_ONLY's slightly better mean:
CPU_ONLY ranges 99.6-119.9 ms across the four styles while CPU_AND_GPU holds
~114 ms on all four, so it should degrade less under CPU contention.
Weights, contract and precision are unchanged; only the compile specs differ.
fp32 was marked default, so callers got the slower, larger variant unless they opted out. It is also structurally unable to run on the ANE and measured slower than fp16 on every model tested.
The output of a style transfer model is an image, so it was gated perceptually rather than by tensor distance: minimum PSNR 61.68 dB between fp16 and fp32 across 6 images (above roughly 40 dB the difference is not visible), relative L2 under 0.002.
v0.9.0 and below are untouched.