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.
Adds library_name to the model card, and pipeline_tag where it was missing.
Brings the config and card licenses into agreement, and repairs the variant
declarations that did not match the files actually published here.
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.
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.
Remove MLX artifacts: slower than Core ML on device
MLX measured slower than Core ML on an iPhone 16 for this model, at matched fp32 precision and against the shipped Core ML fp16 build. These exporters only ever declared an MLX fp32 variant, so fp32-vs-fp32 is the fair and conservative comparison, and MLX still loses it.
The .pte and config.json are removed; each mlx/ dir keeps a NOTES.md with this model's own measurements. The exporter is retained in export-scripts so this can be re-tested against a future ExecuTorch/MLX release.
MLX for these models was only ever published on main / v0.10.0; no tag at v0.9.0 or below carried it. v0.9.0 and below are untouched.
Rebuild mlx export with fork toolchain (ExecuTorch 1.4.1)