You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
v0.10.0 on SM-S948B (Android 16, SM8850, 8 cores, 11 GB)
The published Android estate: all 124 variants ok. Release build, one repeat, 20 timed iterations after 3 warmups, memory sampled over 5, load time the median of 3 cold loads. Every case enters at or below 37 C with the device not throttling; the host holds the run until dumpsys battery says so.
median and mean are the whole pipeline (pre-processing, execute, post-processing), which is what an app actually waits for. ET is the time ExecuTorch itself spent inside those same iterations, tallied natively per execute call; share is ET / mean. The tally resets after the warmups, so it covers exactly the timed iterations and belongs against mean, not against median. It is below the pipeline mean on all 124 variants, worst case 99.9%.
Recognizer cost scales with the regions the detector finds.
variant
backend
precision
median ms
mean ms
ET ms
share
peak MB
load ms
size MB
paddle-ppocrv6-small-vulkan
vulkan
default
38.78
38.85
34.29
88%
583
45
26
paddle-ppocrv6-small-xnnpack
xnnpack
default
187.74
184.88
179.63
97%
569
74
24
paddle-ppocrv6-small
xnnpack
fp32
239.68
237.42
231.64
98%
690
65
31
voice-activity-detection
variant
backend
precision
median ms
mean ms
ET ms
share
peak MB
load ms
size MB
fsmn-vad
xnnpack
fp32
8.96
8.91
7.70
86%
244
3
2
speech-to-text
Decode length is input-dependent; read Execute %.
variant
backend
precision
median ms
mean ms
ET ms
share
peak MB
load ms
size MB
whisper-en-tiny
vulkan
int8
74.02
74.00
72.61
98%
639
142
134
whisper-tiny
vulkan
int8
79.43
79.93
78.36
98%
621
137
134
whisper-en-tiny
vulkan
fp16
81.07
81.30
80.02
98%
716
146
218
whisper-tiny
vulkan
fp16
91.34
91.35
89.78
98%
698
158
218
whisper-en-tiny
xnnpack
int8
118.51
118.66
117.59
99%
536
159
180
whisper-en-tiny
xnnpack
fp32
143.66
146.23
145.06
99%
700
143
237
whisper-tiny
xnnpack
fp32
170.11
168.75
167.33
99%
659
176
237
whisper-base
vulkan
int8
178.60
177.79
175.19
99%
821
206
210
whisper-en-base
vulkan
fp16
188.89
190.40
188.02
99%
987
204
355
whisper-en-base
vulkan
int8
202.90
202.49
199.25
98%
858
216
210
whisper-base
vulkan
fp16
207.76
206.18
203.63
99%
963
249
355
whisper-en-base
xnnpack
int8
256.91
255.04
253.60
99%
676
192
252
whisper-en-base
xnnpack
fp32
397.55
402.24
400.24
100%
930
223
403
whisper-base
xnnpack
fp32
400.47
400.63
398.19
99%
917
234
403
whisper-en-small
vulkan
int8
619.10
703.88
697.56
99%
1589
470
512
whisper-small
vulkan
int8
647.84
642.87
636.21
99%
1577
415
512
whisper-small
vulkan
fp16
751.62
811.09
804.47
99%
1971
682
928
whisper-en-small
vulkan
fp16
873.17
866.83
857.78
99%
1944
846
928
whisper-en-small
xnnpack
int8
1034.09
1028.65
1026.59
100%
971
349
452
whisper-en-small
xnnpack
fp32
1732.60
1684.70
1682.12
100%
1761
619
1133
whisper-small
xnnpack
fp32
2121.47
2010.64
2007.44
100%
1744
868
1133
text-to-speech
Timed on the RN thread; includes per-chunk thread hops.
The nine Kokoro entries are three networks, not nine: en-us, en-gb, es, fr, it, pt and hi all resolve to the same standard bundle, pl to polish and de to german. What differs between rows of the same bundle is the phonemizer and the length of that language's test sentence, so the spread here is input cost, not model cost.
Read the median for kokoro-pt: one of its 20 iterations stalled for 217 s, which is what drags the mean to 13.5 s. Its next-slowest iteration is 5.0 s, in line with the rest.
Activity
msluszniak commentedon Sep 9, 2026
v0.10.0 on SM-S948B (Android 16, SM8850, 8 cores, 11 GB)
The published Android estate: all 124 variants
ok. Release build, one repeat, 20 timed iterations after 3 warmups, memory sampled over 5, load time the median of 3 cold loads. Every case enters at or below 37 C with the device not throttling; the host holds the run untildumpsys batterysays so.medianandmeanare the whole pipeline (pre-processing,execute, post-processing), which is what an app actually waits for.ETis the time ExecuTorch itself spent inside those same iterations, tallied natively perexecutecall;shareisET / mean. The tally resets after the warmups, so it covers exactly the timed iterations and belongs againstmean, not againstmedian. It is below the pipeline mean on all 124 variants, worst case 99.9%.classification
style-transfer
semantic-segmentation
keypoint-detection
object-detection
instance-segmentation
Post-processing is mask-bound; read Execute %.
privacy-filter
text-embeddings
image-embeddings
ocr
Recognizer cost scales with the regions the detector finds.
voice-activity-detection
speech-to-text
Decode length is input-dependent; read Execute %.
text-to-speech
Timed on the RN thread; includes per-chunk thread hops.
The nine Kokoro entries are three networks, not nine:
en-us,en-gb,es,fr,it,ptandhiall resolve to the samestandardbundle,pltopolishanddetogerman. What differs between rows of the same bundle is the phonemizer and the length of that language's test sentence, so the spread here is input cost, not model cost.Read the median for
kokoro-pt: one of its 20 iterations stalled for 217 s, which is what drags the mean to 13.5 s. Its next-slowest iteration is 5.0 s, in line with the rest.text-to-image
docs(benchmarks): version the benchmark data with the docs (#1518)