Apple Silicon

Results as tablesRelease main-f03640150, as of 2026-11-13

A snapshot taken when this site was last built. The charts above read live data and may be newer. The same tables as markdown.

Throughput on Apple Silicon, tokens per second: every engine on the same model and machine, fastest first
MachineModelSetupEngines (tok/s)
M5 Max 128 GBGemma-4-E2BSingle decodePie 205 · MLX 185 · llama.cpp 166
M5 Max 128 GBGemma-4-E2BSingle prefillPie 21,112 · MLX 16,192 · llama.cpp 4,806
M5 Max 128 GBGemma-4-E2BBatched decodePie 2,020 · llama.cpp 689 · MLX 185
M5 Max 128 GBGemma-4-E2BBatched prefillPie 27,717 · MLX 17,219 · llama.cpp 7,172
M5 Max 128 GBGemma-4-E4BSingle decodePie 127 · MLX 120 · llama.cpp 107
M5 Max 128 GBGemma-4-E4BSingle prefillPie 7,539 · MLX 6,528 · llama.cpp 2,919
M5 Max 128 GBGemma-4-E4BBatched decodePie 1,317 · llama.cpp 459 · MLX 116
M5 Max 128 GBGemma-4-E4BBatched prefillPie 9,167 · MLX 6,833 · llama.cpp 4,172
M5 Max 128 GBGemma-4-12BSingle decodePie 66.3 · MLX 61 · llama.cpp 57.4
M5 Max 128 GBGemma-4-12BSingle prefillPie 1,933 · MLX 1,838 · llama.cpp 1,153
M5 Max 128 GBGemma-4-12BBatched decodePie 521 · llama.cpp 238 · MLX 54.8
M5 Max 128 GBGemma-4-12BBatched prefillMLX 1,750 · Pie 1,729 · llama.cpp 1,525
M5 Max 128 GBQwen3.6-27BSingle decodePie 33.4 · MLX 31.8 · llama.cpp 27
M5 Max 128 GBQwen3.6-27BSingle prefillPie 900 · MLX 857 · llama.cpp 529
M5 Max 128 GBQwen3.6-27BBatched decodePie 234 · llama.cpp 97.1 · MLX 29
M5 Max 128 GBQwen3.6-27BBatched prefillMLX 772 · Pie 761 · llama.cpp 575
M5 Max 128 GBGPT-OSS-20BSingle decodePie 184 · llama.cpp 151 · MLX 149
M5 Max 128 GBGPT-OSS-20BSingle prefillPie 6,092 · MLX 5,024 · llama.cpp 3,036
M5 Max 128 GBGPT-OSS-20BBatched decodePie 648 · llama.cpp 532 · MLX 134
M5 Max 128 GBGPT-OSS-20BBatched prefillPie 6,425 · MLX 4,939 · llama.cpp 3,726
M5 Max 128 GBGPT-OSS-120BSingle decodePie 122 · llama.cpp 106 · MLX 97.5
M5 Max 128 GBGPT-OSS-120BSingle prefillMLX 2,367 · llama.cpp 1,530 · Pie 1,234
M5 Max 128 GBGPT-OSS-120BBatched decodellama.cpp 250 · Pie 227 · MLX 83
M5 Max 128 GBGPT-OSS-120BBatched prefillPie 2,700 · llama.cpp 1,928
M5 Max 128 GBQwen3.6-35BSingle decodePie 166 · MLX 130 · llama.cpp 105
M5 Max 128 GBQwen3.6-35BSingle prefillPie 4,292 · MLX 4,056 · llama.cpp 2,422
M5 Max 128 GBQwen3.6-35BBatched decodePie 735 · llama.cpp 367 · MLX 119
M5 Max 128 GBQwen3.6-35BBatched prefillPie 6,587 · llama.cpp 2,800
M5 Max 128 GBQwen3.8-Flash-Next-125BSingle decodePie 75 · llama.cpp 63 · MLX 60.7
M5 Max 128 GBQwen3.8-Flash-Next-125BSingle prefillMLX 1,221 · Pie 1,054 · llama.cpp 966
M5 Max 128 GBQwen3.8-Flash-Next-125BBatched decodePie 269 · MLX 94 · llama.cpp 77.6
M5 Max 128 GBQwen3.8-Flash-Next-125BBatched prefillPie 1,294 · MLX 1,101
M5 Max 128 GBMuse-Glimmer-30BSingle decodePie 32.6 · llama.cpp 29.4
M5 Max 128 GBMuse-Glimmer-30BSingle prefillPie 903 · llama.cpp 541
M5 Max 128 GBMuse-Glimmer-30BBatched decodePie 274 · llama.cpp 120
M5 Max 128 GBMuse-Glimmer-30BBatched prefillPie 769 · llama.cpp 701
M5 Max 128 GBGemma-4-26BSingle decodePie 143 · MLX 119 · llama.cpp 98.1
M5 Max 128 GBGemma-4-26BSingle prefillPie 4,347 · MLX 4,008 · llama.cpp 2,399
M5 Max 128 GBGemma-4-26BBatched decodePie 806 · llama.cpp 456 · MLX 113
M5 Max 128 GBGemma-4-26BBatched prefillPie 5,647 · MLX 3,986 · llama.cpp 3,479
M5 Max 128 GBGemma-4-31BSingle decodePie 27 · MLX 26.5 · llama.cpp 24.6
M5 Max 128 GBGemma-4-31BSingle prefillPie 718 · MLX 637 · llama.cpp 443
M5 Max 128 GBGemma-4-31BBatched decodePie 184 · llama.cpp 97 · MLX 21.2
M5 Max 128 GBGemma-4-31BBatched prefillMLX 635 · Pie 587 · llama.cpp 558
M5 Max 128 GBQwen3.8-27BSingle decodePie 32.8 · MLX 31.9 · llama.cpp 27.2
M5 Max 128 GBQwen3.8-27BSingle prefillPie 862 · MLX 856 · llama.cpp 536
M5 Max 128 GBQwen3.8-27BBatched decodePie 228 · llama.cpp 97.4 · MLX 28.7
M5 Max 128 GBQwen3.8-27BBatched prefillMLX 774 · Pie 727 · llama.cpp 572
M5 Max 128 GBQwen3.5-4BSingle decodePie 167 · MLX 152 · llama.cpp 128
M5 Max 128 GBQwen3.5-4BSingle prefillPie 4,932 · MLX 4,908 · llama.cpp 2,997
M5 Max 128 GBQwen3.5-4BBatched decodePie 1,166 · llama.cpp 407 · MLX 142
M5 Max 128 GBQwen3.5-4BBatched prefillPie 5,536 · MLX 4,993 · llama.cpp 3,165
M5 Max 128 GBQwen3.5-9BSingle decodePie 101 · MLX 96.4 · llama.cpp 82.8
M5 Max 128 GBQwen3.5-9BSingle prefillPie 2,968 · MLX 2,938 · llama.cpp 1,808
M5 Max 128 GBQwen3.5-9BBatched decodePie 800 · llama.cpp 300 · MLX 88
M5 Max 128 GBQwen3.5-9BBatched prefillMLX 2,866 · Pie 2,852 · llama.cpp 1,984
M5 Max 64 GBQwen3.5-0.8BSingle decodevLLM Metal 266
M5 Max 64 GBQwen3.5-0.8BSingle prefillvLLM Metal 19,134
M5 Max 64 GBQwen3.5-0.8BBatched decodevLLM Metal 3,606
M5 Max 64 GBQwen3.5-0.8BBatched prefillvLLM Metal 29,554
M5 Max 64 GBGemma-4-E2BSingle decodePie 201 · vLLM Metal 189 · MLX 184 · llama.cpp 167
M5 Max 64 GBGemma-4-E2BSingle prefillPie 21,434 · MLX 16,147 · vLLM Metal 16,112 · llama.cpp 4,801
M5 Max 64 GBGemma-4-E2BBatched decodevLLM Metal 1,968 · Pie 1,939 · llama.cpp 706 · MLX 182
M5 Max 64 GBGemma-4-E2BBatched prefillPie 31,421 · vLLM Metal 29,520 · MLX 17,139 · llama.cpp 7,217
M5 Max 64 GBGemma-4-E4BSingle decodePie 129 · MLX 120 · vLLM Metal 118 · llama.cpp 105
M5 Max 64 GBGemma-4-E4BSingle prefillPie 7,636 · vLLM Metal 6,660 · MLX 6,565 · llama.cpp 2,832
M5 Max 64 GBGemma-4-E4BBatched decodePie 1,272 · vLLM Metal 1,088 · llama.cpp 467 · MLX 111
M5 Max 64 GBGemma-4-E4BBatched prefillvLLM Metal 9,153 · Pie 8,473 · MLX 6,676 · llama.cpp 3,901
M5 Max 64 GBGemma-4-12BSingle decodePie 65.2 · MLX 57.3 · vLLM Metal 55.8 · llama.cpp 52.2
M5 Max 64 GBGemma-4-12BSingle prefillvLLM Metal 1,632 · MLX 1,627 · Pie 1,555 · llama.cpp 988
M5 Max 64 GBGemma-4-12BBatched decodePie 473 · vLLM Metal 373 · llama.cpp 226 · MLX 47
M5 Max 64 GBGemma-4-12BBatched prefillvLLM Metal 1,800 · MLX 1,596 · Pie 1,564 · llama.cpp 1,419
M5 Max 64 GBQwen3.6-27BSingle decodePie 33.6 · vLLM Metal 33 · MLX 32 · llama.cpp 25.3
M5 Max 64 GBQwen3.6-27BSingle prefillPie 849 · vLLM Metal 823 · MLX 781 · llama.cpp 454
M5 Max 64 GBQwen3.6-27BBatched decodePie 220 · vLLM Metal 169 · llama.cpp 92.4 · MLX 24.4
M5 Max 64 GBQwen3.6-27BBatched prefillvLLM Metal 807 · MLX 714 · Pie 689 · llama.cpp 538
M5 Max 64 GBGPT-OSS-20BSingle decodePie 184 · vLLM Metal 158 · llama.cpp 148 · MLX 148
M5 Max 64 GBGPT-OSS-20BSingle prefillPie 6,052 · MLX 4,911 · vLLM Metal 4,714 · llama.cpp 2,909
M5 Max 64 GBGPT-OSS-20BBatched decodevLLM Metal 736 · Pie 597 · llama.cpp 497 · MLX 129
M5 Max 64 GBGPT-OSS-20BBatched prefillPie 6,116 · vLLM Metal 6,008 · MLX 4,538 · llama.cpp 3,429
M5 Max 64 GBQwen3.6-35BSingle decodePie 168 · MLX 130 · vLLM Metal 122 · llama.cpp 104
M5 Max 64 GBQwen3.6-35BSingle prefillPie 4,535 · MLX 4,072 · vLLM Metal 3,933 · llama.cpp 2,333
M5 Max 64 GBQwen3.6-35BBatched decodePie 688 · vLLM Metal 592 · llama.cpp 340 · MLX 121
M5 Max 64 GBQwen3.6-35BBatched prefillPie 6,189 · vLLM Metal 5,678 · MLX 3,880 · llama.cpp 2,591
M5 Max 64 GBMuse-Glimmer-30BSingle decodePie 33.2 · vLLM Metal 32.4 · llama.cpp 28
M5 Max 64 GBMuse-Glimmer-30BSingle prefillPie 911 · vLLM Metal 759 · llama.cpp 465
M5 Max 64 GBMuse-Glimmer-30BBatched decodePie 249 · vLLM Metal 187 · llama.cpp 115
M5 Max 64 GBMuse-Glimmer-30BBatched prefillvLLM Metal 811 · Pie 688 · llama.cpp 653
M5 Max 64 GBGemma-4-26BSingle decodePie 144 · vLLM Metal 119 · MLX 118 · llama.cpp 98
M5 Max 64 GBGemma-4-26BSingle prefillPie 4,329 · vLLM Metal 4,114 · MLX 3,972 · llama.cpp 2,343
M5 Max 64 GBGemma-4-26BBatched decodePie 753 · vLLM Metal 482 · llama.cpp 417 · MLX 108
M5 Max 64 GBGemma-4-26BBatched prefillvLLM Metal 5,357 · Pie 5,304 · MLX 3,717 · llama.cpp 3,163
M5 Max 64 GBGemma-4-31BSingle decodePie 27.3 · MLX 24.8 · vLLM Metal 24.6 · llama.cpp 23
M5 Max 64 GBGemma-4-31BSingle prefillvLLM Metal 513 · MLX 510 · Pie 447 · llama.cpp 381
M5 Max 64 GBGemma-4-31BBatched decodePie 183 · vLLM Metal 140 · llama.cpp 67 · MLX 19.4
M5 Max 64 GBGemma-4-31BBatched prefillMLX 617 · Pie 570 · vLLM Metal 528
M5 Max 64 GBQwen3.8-27BSingle decodePie 33.6 · vLLM Metal 33 · MLX 32 · llama.cpp 25.7
M5 Max 64 GBQwen3.8-27BSingle prefillPie 850 · vLLM Metal 779 · MLX 690 · llama.cpp 457
M5 Max 64 GBQwen3.8-27BBatched decodePie 220 · vLLM Metal 169 · llama.cpp 92.4 · MLX 24.6
M5 Max 64 GBQwen3.8-27BBatched prefillvLLM Metal 807 · MLX 713 · Pie 687 · llama.cpp 538
M5 Max 64 GBQwen3.5-4BSingle decodePie 166 · vLLM Metal 160 · MLX 152 · llama.cpp 121
M5 Max 64 GBQwen3.5-4BSingle prefillPie 5,092 · MLX 4,920 · vLLM Metal 4,834 · llama.cpp 2,765
M5 Max 64 GBQwen3.5-4BBatched decodePie 1,145 · vLLM Metal 923 · llama.cpp 394 · MLX 137
M5 Max 64 GBQwen3.5-4BBatched prefillvLLM Metal 5,583 · Pie 5,068 · MLX 4,704 · llama.cpp 2,982
M5 Max 64 GBQwen3.5-9BSingle decodevLLM Metal 102 · Pie 102 · MLX 96.2 · llama.cpp 77.3
M5 Max 64 GBQwen3.5-9BSingle prefillPie 3,034 · MLX 2,933 · vLLM Metal 2,913 · llama.cpp 1,583
M5 Max 64 GBQwen3.5-9BBatched decodePie 732 · vLLM Metal 568 · llama.cpp 282 · MLX 77.3
M5 Max 64 GBQwen3.5-9BBatched prefillvLLM Metal 2,994 · MLX 2,645 · Pie 2,541 · llama.cpp 1,821
M5 16 GBGemma-4-E2BBatched decodellama.cpp 202 · MLX 48.9
M5 16 GBGemma-4-E4BBatched decodellama.cpp 92.8 · MLX 25.5
M5 16 GBGemma-4-12BBatched decodeMLX 9.6
M5 16 GBQwen3.5-4BBatched decodellama.cpp 70.6 · MLX 34.5
M5 16 GBQwen3.5-9BBatched decodellama.cpp 31.9
M4 Pro 48 GBQwen3.5-0.8BSingle decodevLLM Metal 136
M4 Pro 48 GBQwen3.5-0.8BSingle prefillvLLM Metal 4,718
M4 Pro 48 GBQwen3.5-0.8BBatched decodevLLM Metal 970
M4 Pro 48 GBQwen3.5-0.8BBatched prefillvLLM Metal 5,512
M4 Pro 48 GBGemma-4-E2BSingle decodePie 126 · vLLM Metal 114 · MLX 111 · llama.cpp 103
M4 Pro 48 GBGemma-4-E2BSingle prefillPie 4,557 · MLX 4,258 · vLLM Metal 3,710 · llama.cpp 1,322
M4 Pro 48 GBGemma-4-E2BBatched decodevLLM Metal 731 · Pie 723 · llama.cpp 393 · MLX 108
M4 Pro 48 GBGemma-4-E2BBatched prefillPie 5,098 · vLLM Metal 4,416 · MLX 4,318 · llama.cpp 1,517
M4 Pro 48 GBGemma-4-E4BSingle decodePie 71.3 · vLLM Metal 65.4 · MLX 64.9 · llama.cpp 59.3
M4 Pro 48 GBGemma-4-E4BSingle prefillPie 1,276 · MLX 1,237 · vLLM Metal 1,160 · llama.cpp 677
M4 Pro 48 GBGemma-4-E4BBatched decodePie 350 · vLLM Metal 345 · llama.cpp 225 · MLX 60.7
M4 Pro 48 GBGemma-4-E4BBatched prefillPie 1,352 · vLLM Metal 1,287 · MLX 1,244 · llama.cpp 759
M4 Pro 48 GBGemma-4-12BSingle decodePie 33.4 · vLLM Metal 31.4 · MLX 31.1 · llama.cpp 29.2
M4 Pro 48 GBGemma-4-12BSingle prefillPie 286 · MLX 280 · vLLM Metal 267 · llama.cpp 259
M4 Pro 48 GBGemma-4-12BBatched decodePie 110 · vLLM Metal 110 · llama.cpp 95.4 · MLX 27.2
M4 Pro 48 GBGemma-4-12BBatched prefillPie 298 · llama.cpp 282 · MLX 280
M4 Pro 48 GBQwen3.6-27BSingle decodePie 15.8 · vLLM Metal 15.6 · MLX 15.1 · llama.cpp 13.2
M4 Pro 48 GBQwen3.6-27BSingle prefillPie 214 · MLX 126 · vLLM Metal 125 · llama.cpp 118
M4 Pro 48 GBQwen3.6-27BBatched decodePie 51.6 · llama.cpp 32.9
M4 Pro 48 GBQwen3.6-27BBatched prefillPie 132 · MLX 126
M4 Pro 48 GBGPT-OSS-20BSingle decodePie 97.9 · vLLM Metal 90 · MLX 85 · llama.cpp 80.7
M4 Pro 48 GBGPT-OSS-20BSingle prefillPie 1,028 · MLX 893 · vLLM Metal 862 · llama.cpp 810
M4 Pro 48 GBGPT-OSS-20BBatched decodePie 250 · vLLM Metal 219 · llama.cpp 193 · MLX 71.7
M4 Pro 48 GBGPT-OSS-20BBatched prefillPie 1,113 · vLLM Metal 944 · llama.cpp 912 · MLX 897
M4 Pro 48 GBQwen3.6-35BSingle decodePie 98.5 · vLLM Metal 86 · MLX 79.8 · llama.cpp 54.4
M4 Pro 48 GBQwen3.6-35BSingle prefillPie 989 · MLX 946 · vLLM Metal 890 · llama.cpp 745
M4 Pro 48 GBQwen3.6-35BBatched decodePie 245 · vLLM Metal 227 · llama.cpp 143 · MLX 69.4
M4 Pro 48 GBQwen3.6-35BBatched prefillPie 1,171 · vLLM Metal 1,041 · MLX 948 · llama.cpp 820
M4 Pro 48 GBMuse-Glimmer-30BSingle decodePie 15.7 · vLLM Metal 15.6 · llama.cpp 14.5
M4 Pro 48 GBMuse-Glimmer-30BSingle prefillPie 135 · vLLM Metal 124 · llama.cpp 120
M4 Pro 48 GBMuse-Glimmer-30BBatched decodePie 57 · vLLM Metal 51.9 · llama.cpp 46.6
M4 Pro 48 GBMuse-Glimmer-30BBatched prefillPie 131 · llama.cpp 128
M4 Pro 48 GBGemma-4-26BSingle decodePie 83.2 · vLLM Metal 73.8 · MLX 70.4 · llama.cpp 53.9
M4 Pro 48 GBGemma-4-26BSingle prefillPie 874 · MLX 830 · vLLM Metal 759 · llama.cpp 704
M4 Pro 48 GBGemma-4-26BBatched decodePie 232 · vLLM Metal 192 · llama.cpp 175 · MLX 63.4
M4 Pro 48 GBGemma-4-26BBatched prefillPie 984 · vLLM Metal 846 · MLX 834 · llama.cpp 792
M4 Pro 48 GBGemma-4-31BSingle decodePie 13.3 · MLX 12.9 · vLLM Metal 12.8
M4 Pro 48 GBGemma-4-31BSingle prefillPie 106 · MLX 105 · vLLM Metal 101
M4 Pro 48 GBGemma-4-31BBatched decodePie 42 · vLLM Metal 41.8 · MLX 11.3
M4 Pro 48 GBGemma-4-31BBatched prefillPie 109 · MLX 105
M4 Pro 48 GBQwen3.8-27BSingle decodePie 15.8 · vLLM Metal 15.6 · MLX 15.1 · llama.cpp 12.8
M4 Pro 48 GBQwen3.8-27BSingle prefillPie 214 · MLX 127 · vLLM Metal 125 · llama.cpp 116
M4 Pro 48 GBQwen3.8-27BBatched decodePie 51.6 · llama.cpp 33.8 · MLX 13
M4 Pro 48 GBQwen3.8-27BBatched prefillPie 132 · MLX 126
M4 Pro 48 GBQwen3.5-4BSingle decodePie 87.3 · vLLM Metal 84.2 · MLX 78 · llama.cpp 61.7
M4 Pro 48 GBQwen3.5-4BSingle prefillPie 1,212 · MLX 825 · vLLM Metal 788 · llama.cpp 711
M4 Pro 48 GBQwen3.5-4BBatched decodePie 288 · vLLM Metal 282 · llama.cpp 169 · MLX 68.3
M4 Pro 48 GBQwen3.5-4BBatched prefillPie 849 · vLLM Metal 845 · MLX 825 · llama.cpp 726
M4 Pro 48 GBQwen3.5-9BSingle decodePie 51.7 · vLLM Metal 50.5 · MLX 47.9 · llama.cpp 38.9
M4 Pro 48 GBQwen3.5-9BSingle prefillPie 723 · MLX 449 · vLLM Metal 434 · llama.cpp 397
M4 Pro 48 GBQwen3.5-9BBatched decodePie 173 · vLLM Metal 167 · llama.cpp 116 · MLX 41.3
M4 Pro 48 GBQwen3.5-9BBatched prefillPie 472 · vLLM Metal 463 · MLX 448 · llama.cpp 411
M3 16 GBQwen3.5-0.8BSingle decodevLLM Metal 55.7
M3 16 GBQwen3.5-0.8BSingle prefillvLLM Metal 2,146
M3 16 GBQwen3.5-0.8BBatched decodevLLM Metal 441
M3 16 GBQwen3.5-0.8BBatched prefillvLLM Metal 2,319
M3 16 GBGemma-4-E2BSingle decodePie 60.2 · vLLM Metal 57.7 · MLX 55.4 · llama.cpp 50.8
M3 16 GBGemma-4-E2BSingle prefillPie 2,408 · MLX 1,842 · vLLM Metal 1,593 · llama.cpp 591
M3 16 GBGemma-4-E2BBatched decodePie 321 · vLLM Metal 290 · llama.cpp 193 · MLX 47
M3 16 GBGemma-4-E2BBatched prefillPie 2,616 · MLX 1,896 · vLLM Metal 1,815
M3 16 GBGemma-4-E4BSingle decodePie 31.9 · vLLM Metal 30.8 · MLX 26.9 · llama.cpp 25.4
M3 16 GBGemma-4-E4BSingle prefillPie 687 · MLX 524 · vLLM Metal 493 · llama.cpp 274
M3 16 GBGemma-4-E4BBatched decodePie 122 · vLLM Metal 111 · llama.cpp 59.4 · MLX 24.6
M3 16 GBGemma-4-E4BBatched prefillPie 749 · MLX 526 · vLLM Metal 435
M3 16 GBGemma-4-12BSingle decodePie 12.6 · MLX 10.3 · vLLM Metal 8.2
M3 16 GBGemma-4-12BSingle prefillPie 154 · MLX 102 · vLLM Metal 93.3
M3 16 GBGemma-4-12BBatched decodePie 33.4 · vLLM Metal 29.4 · MLX 7.5
M3 16 GBGemma-4-12BBatched prefillPie 111 · MLX 76.3
M3 16 GBQwen3.5-4BSingle decodePie 35.1 · vLLM Metal 34.7 · MLX 33.6 · llama.cpp 26.2
M3 16 GBQwen3.5-4BSingle prefillPie 515 · MLX 346 · vLLM Metal 334 · llama.cpp 276
M3 16 GBQwen3.5-4BBatched decodePie 98.5 · vLLM Metal 86.9 · llama.cpp 40.6 · MLX 24.9
M3 16 GBQwen3.5-4BBatched prefillPie 538 · MLX 335
M3 16 GBQwen3.5-9BSingle decodePie 19.6 · vLLM Metal 19.2 · MLX 19 · llama.cpp 12.3
M3 16 GBQwen3.5-9BSingle prefillPie 283 · MLX 177 · vLLM Metal 171 · llama.cpp 140
M3 16 GBQwen3.5-9BBatched decodePie 68.3 · llama.cpp 31.4 · MLX 11.7
M3 16 GBQwen3.5-9BBatched prefillPie 306 · MLX 131
M2 16 GBQwen3.5-0.8BSingle decodevLLM Metal 48.5
M2 16 GBQwen3.5-0.8BSingle prefillvLLM Metal 1,529
M2 16 GBQwen3.5-0.8BBatched decodevLLM Metal 362
M2 16 GBQwen3.5-0.8BBatched prefillvLLM Metal 1,304
M2 16 GBGemma-4-E2BSingle decodePie 56.2 · MLX 46.9 · llama.cpp 46.7 · vLLM Metal 42.5
M2 16 GBGemma-4-E2BSingle prefillPie 1,790 · MLX 1,343 · vLLM Metal 983 · llama.cpp 524
M2 16 GBGemma-4-E2BBatched decodePie 281 · vLLM Metal 194 · llama.cpp 179 · MLX 42.2
M2 16 GBGemma-4-E2BBatched prefillPie 2,011 · MLX 1,369 · vLLM Metal 1,162 · llama.cpp 510
M2 16 GBGemma-4-E4BSingle decodePie 30.1 · llama.cpp 25.9 · MLX 24.5 · vLLM Metal 23.1
M2 16 GBGemma-4-E4BSingle prefillPie 525 · MLX 374 · vLLM Metal 284 · llama.cpp 268
M2 16 GBGemma-4-E4BBatched decodePie 110 · vLLM Metal 76.9 · llama.cpp 69.1 · MLX 21.4
M2 16 GBGemma-4-E4BBatched prefillPie 586 · MLX 378
M2 16 GBGemma-4-12BSingle decodeMLX 10.3 · Pie 9.4 · vLLM Metal 9
M2 16 GBGemma-4-12BSingle prefillPie 114 · MLX 82.6 · vLLM Metal 57
M2 16 GBGemma-4-12BBatched decodePie 27.8 · vLLM Metal 22.5 · MLX 8.1
M2 16 GBGemma-4-12BBatched prefillPie 105 · MLX 66
M2 16 GBQwen3.5-4BSingle decodePie 33.8 · MLX 27.6 · vLLM Metal 26.7 · llama.cpp 26
M2 16 GBQwen3.5-4BSingle prefillPie 331 · llama.cpp 277 · MLX 242 · vLLM Metal 139
M2 16 GBQwen3.5-4BBatched decodePie 47.9 · llama.cpp 43.2 · MLX 23.2
M2 16 GBQwen3.5-4BBatched prefillPie 372 · MLX 245
M2 16 GBQwen3.5-9BSingle decodeMLX 16.7 · Pie 16.2 · vLLM Metal 16 · llama.cpp 12.9
M2 16 GBQwen3.5-9BSingle prefillPie 136 · llama.cpp 135 · MLX 131 · vLLM Metal 82.1
M2 16 GBQwen3.5-9BBatched decodePie 31 · llama.cpp 25.4 · MLX 12.8
M2 16 GBQwen3.5-9BBatched prefillPie 212 · MLX 117