EdgeFit Atlas

Measured on-device inference. Every number reproducible; every failure recorded.

clip-vit-base-patch32

hf:openai/clip-vit-base-patch32 · unknown

Graph fingerprint

87.5M graph parameters (as exported) · 492 graph nodes · attention: mha · norm: layernorm

Add×97, MatMul×96, Constant×92, Mul×49, Reshape×49, Transpose×49, LayerNormalization×25, Sigmoid×12

Graph size by weight dtype: fp32 492 nodes, int8 761 nodes, fp32 849 nodes. Quantization inserts quantize/dequantize pairs, so the node count grows even as the artifact shrinks.

Latency by recipe

CPUaccelerator
0100200p50 latency, msunknown · sm87502.42unknown · sm8750: 2.42 — cv 4.7%ALL · sm87502.43ALL · sm8750: 2.43 — cv 4.3%ALL · sm86502.79ALL · sm8650: 2.79 — cv 1.9%unknown · sm86502.79unknown · sm8650: 2.79 — cv 2.7%unknown · sm86502.80unknown · sm8650: 2.80 — cv 1.9%unknown · sm85503.63unknown · sm8550: 3.63 — cv 1.3%ALL · sm85503.64ALL · sm8550: 3.64 — cv 1.3%ort-cpu-int8-dyn · Apple M212.02ort-cpu-int8-dyn · Apple M2: 12.02 — cv 0.3%, 84 MiBort-cpu-int8-perchan · Apple M212.09ort-cpu-int8-perchan · Apple M2: 12.09 — cv 0.2%, 84 MiBort-coreml-fp32 · Apple M218.40ort-coreml-fp32 · Apple M2: 18.40 — cv 3.4%, 334 MiBort-coreml-ane · Apple M220.07ort-coreml-ane · Apple M2: 20.07 — cv 5.8%, 334 MiBunknown · Apple M223.36unknown · Apple M2: 23.36 — cv 0.1%, 84 MiB, 8 repeats spanning 12.02–46.24 msort-cpu-4thread · Apple M228.29ort-cpu-4thread · Apple M2: 28.29 — cv 0.3%, 334 MiBort-cpu-fp32 · Apple M228.32ort-cpu-fp32 · Apple M2: 28.32 — cv 0.2%, 334 MiBort-cpu-dynamic · Apple M228.52ort-cpu-dynamic · Apple M2: 28.52 — cv 0.6%, 334 MiBort-coreml-dynamic · Apple M245.84ort-coreml-dynamic · Apple M2: 45.84 — cv 8.6%, 334 MiBunknown · google-tensor-g264.59unknown · google-tensor-g2: 64.59 — cv 2.2%ALL · google-tensor-g476.50ALL · google-tensor-g4: 76.50 — cv 4.7%unknown · google-tensor-g484.76unknown · google-tensor-g4: 84.76 — cv 6.1%unknown · samsung-exynos-99093.95unknown · samsung-exynos-990: 93.95 — cv 10.5%unknown · google-tensor-g396.61unknown · google-tensor-g3: 96.61 — cv 5.2%unknown · sm835096.83unknown · sm8350: 96.83 — cv 14.1%unknown · samsung-exynos-1280178.66unknown · samsung-exynos-1280: 178.66 — cv 7.2%unknown · sm7250188.76unknown · sm7250: 188.76 — cv 1.3%unknown · sdm845204.64unknown · sdm845: 204.64 — cv 4.3%
Median of 10–97 timed runs after 3 discarded warmups. Hover a bar for variance and artifact size.

Speed against numerics

CPUaccelerator
0.990.99512040p50 latency, ms · lower is bettercosine vs fp32 referenceort-cpu-int8-dyn · Apple M2 — cv 0.3%, 84 MiBort-cpu-int8-perchan · Apple M2 — cv 0.2%, 84 MiBort-coreml-fp32 · Apple M2 — cv 3.4%, 334 MiBort-coreml-ane · Apple M2 — cv 5.8%, 334 MiBunknown · Apple M2 — cv 0.1%, 84 MiB, 8 repeats spanning 12.02–46.24 msort-cpu-4thread · Apple M2 — cv 0.3%, 334 MiBort-cpu-fp32 · Apple M2 — cv 0.2%, 334 MiBort-cpu-dynamic · Apple M2 — cv 0.6%, 334 MiBort-coreml-dynamic · Apple M2 — cv 8.6%, 334 MiB
Marker area scales with artifact size. Cosine is a numerics check against the fp32 PyTorch reference, not task accuracy — a model can hold cosine 0.999 and still fail on the slice that matters.

Repeatability

Recipes measured more than once on this unit, in separate sessions. This is the weakest useful form of the check — the real one runs the same recipe on two physical units of the same SKU, and we have one machine. Agreement here cannot catch a defect in the methodology that both runs share; it can only catch drift.

Recipesessionsfastest msslowest msspread
unknown · Apple M2812.0246.24284.63%

Every recipe measured

RecipeTargetOutcomep50 mscvsize MiBcosineFLOP fb (auth)time fb (run)partitions
unknownunknownsuccess2.424.7%0.0%
ALLALLsuccess2.434.3%0.0%
ALLALLsuccess2.791.9%0.0%
unknownunknownsuccess2.792.7%0.0%
unknownunknownsuccess2.801.9%0.0%
unknownunknownsuccess3.631.3%0.0%
ALLALLsuccess3.641.3%0.0%
ort-cpu-int8-dynCPUsuccess12.020.3%840.99230.0%0.0%
unknownunknownsuccess12.020.1%840.99230.0%0.0%
ort-cpu-int8-perchanCPUsuccess12.090.2%840.99100.0%0.0%
unknownunknownsuccess12.120.3%840.99100.0%0.0%
unknownunknownsuccess18.033.5%3340.999997.2%8.2%50
unknownunknownsuccess18.372.2%3340.999997.2%9.6%50
ort-coreml-fp32CoreMLsuccess18.403.4%3340.999997.2%8.4%50
ort-coreml-aneCoreMLsuccess20.075.8%3340.999997.2%8.3%50
ort-cpu-4threadCPUsuccess28.290.3%3341.00000.0%0.0%
ort-cpu-fp32CPUsuccess28.320.2%3341.00000.0%0.0%
unknownunknownsuccess28.350.1%3341.00000.0%0.0%
unknownunknownsuccess28.350.1%3341.00000.0%0.0%
ort-cpu-dynamicCPUsuccess28.520.6%3341.00000.0%
unknownunknownsuccess28.600.1%3341.00000.0%
ort-coreml-dynamicCoreMLsuccess45.848.6%3340.999936.0%74
unknownunknownsuccess46.245.7%3340.999931.7%74
unknownunknownsuccess64.592.2%100.0%
ALLALLsuccess76.504.7%100.0%
unknownunknownsuccess84.766.1%100.0%
unknownunknownsuccess93.9510.5%100.0%
unknownunknownsuccess96.615.2%100.0%
unknownunknownsuccess96.8314.1%100.0%
unknownunknownsuccess178.667.2%100.0%
unknownunknownsuccess188.761.3%100.0%
unknownunknownsuccess204.644.3%100.0%
ort-coreml-mlprogramCoreMLlowering failure334
ort-coreml-fp16CoreMLlowering failure167
ort-cpu-fp16CPUlowering failure167
unknownunknownlowering failure167
unknownunknownlowering failure167
unknownunknownlowering failure334

Recorded failures

Kept rather than hidden. A recipe that cannot lower is a fact about the toolchain, and it is what teaches the static filter not to propose it again.

ort-coreml-mlprogram lowering failure
session creation failed: [ONNXRuntimeError] : 1 : FAIL : Failed to create MLModel, error: Failed to build the model execution plan using a model architecture file '/private/var/folders/g4/qr8j7fw12hv68l1g1pyv13t40000gn/T/onnxruntime-9289B602-133C-4DF5-92DB-C4547528A562-73890-000001EDD296898A.mlmodelc/model.mil' with error code: -7.
ort-coreml-fp16 lowering failure
session creation failed: [ONNXRuntimeError] : 1 : FAIL : Load model from artifacts/onnx/openai__clip-vit-base-patch32__qafc11b29b9f78569/model.onnx failed:Type Error: Type parameter (T) of Optype (Conv) bound to different types (tensor(float) and tensor(float16) in node (/inner/embeddings/patch_embedding/Conv).
ort-cpu-fp16 lowering failure
session creation failed: [ONNXRuntimeError] : 1 : FAIL : Load model from artifacts/onnx/openai__clip-vit-base-patch32__qafc11b29b9f78569/model.onnx failed:Type Error: Type parameter (T) of Optype (Conv) bound to different types (tensor(float) and tensor(float16) in node (/inner/embeddings/patch_embedding/Conv).
unknown lowering failure
session creation failed: [ONNXRuntimeError] : 1 : FAIL : Load model from artifacts/onnx/openai__clip-vit-base-patch32__q4f7d1d421fd6a513/model.onnx failed:Type Error: Type parameter (T) of Optype (Conv) bound to different types (tensor(float) and tensor(float16) in node (/inner/embeddings/patch_embedding/Conv).
unknown lowering failure
session creation failed: [ONNXRuntimeError] : 1 : FAIL : Load model from artifacts/onnx/openai__clip-vit-base-patch32__q4f7d1d421fd6a513/model.onnx failed:Type Error: Type parameter (T) of Optype (Conv) bound to different types (tensor(float) and tensor(float16) in node (/inner/embeddings/patch_embedding/Conv).
unknown lowering failure
session creation failed: [ONNXRuntimeError] : 1 : FAIL : Failed to create MLModel, error: Failed to build the model execution plan using a model architecture file '/private/var/folders/g4/qr8j7fw12hv68l1g1pyv13t40000gn/T/onnxruntime-41CDF095-750A-4437-BF3A-2521DC7A9F09-27929-0000004B63A77DE3.mlmodelc/model.mil' with error code: -7.

Reproduce

Commands for every row on this page
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Snapdragon 8 Elite QRD" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Snapdragon 8 Elite QRD" --compute-unit all
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy S24" --compute-unit all
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy S24 (Family)" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy S24" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy S23" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy S23" --compute-unit all
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_cpu_int8_dynamic.yaml
# recipe 262518b15326a782 is no longer in the library
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_cpu_int8_perchannel.yaml
# recipe 39d4e2d5adb239ed is no longer in the library
# recipe ff93b0b77e1c882c is no longer in the library
# recipe 69dbfe3c1e583a11 is no longer in the library
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_coreml_fp32.yaml
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_coreml_ane.yaml
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_cpu_4thread.yaml
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_cpu_fp32.yaml
# recipe e4751d8b439c23d0 is no longer in the library
# recipe a7ac8137ba65e418 is no longer in the library
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_cpu_dynamic.yaml
# recipe 1c3716f621a93db0 is no longer in the library
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_coreml_dynamic.yaml
# recipe 689da7ab969575cf is no longer in the library
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Google Pixel 7" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Google Pixel 9" --compute-unit all
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Google Pixel 9" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy Note 20 (Intl)" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Google Pixel 8" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy S21" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Samsung Galaxy A53 5G" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Google Pixel 5" --compute-unit unknown
uv run edgefit measure-remote --model hf:openai/clip-vit-base-patch32 --device "Google Pixel 3" --compute-unit unknown
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_coreml_mlprogram.yaml
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_coreml_fp16.yaml
uv run edgefit measure --model hf:openai/clip-vit-base-patch32 --recipe recipes/ort_cpu_fp16.yaml
# recipe f759313b601eda24 is no longer in the library
# recipe 6374eea64433157f is no longer in the library
# recipe eaa4f9e4bb7705dd is no longer in the library