~/gpu/m2-ultra-192
apple manufacturer

M2 Ultra 192 192GB

192GB unified. Runs 405B at Q3. The Mac Pro / Studio answer to multi-GPU rigs.

VRAM
192GB
Bandwidth
800GB/s
FP16 compute
54TFLOPS
Budget @ ctx 8K
154GB

Tuned to this card.

$ ./vrambudget --gpu m2-ultra-192
$ vrambudget --gpu m2-ultra-192 --ctx 8192 --conc 1 --safety 15%↗ tweetlive
apple
M2 Max 64
64GB
apple
M2 Ultra 192
192GB
apple
M3 Max 64
64GB
apple
M3 Max 96
96GB
apple
M4 Pro 64
64GB
apple
M4 Max 128
128GB
apple · monster
M3 Ultra 512
512GB
apple · neural
M5 Pro 64
64GB
apple · flagship
M5 Max 128
128GB
192GB
64GB
8Ktok
192GB
device capacity
0.05GB
0.0% of total
2.5GB
1.3% of total
161GB
84% of total
$ budget allocation163 / 192 GB used
weightskv cacheoverheadsafety
↳ sorted by best fit
fitscomfortably runs on this budget27 models
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
150 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
124 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
111 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
145 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
141 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
93 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
70 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
68 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
65 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
65 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
61 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
54 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
52 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
48 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
42 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
30 GB
fits
Phi-414.7B
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
29 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
18 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
18 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
16 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
16 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
14 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
14 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
8.0 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
7.6 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
6.4 GB
fits
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
2.5 GB
fits
overneeds a bigger card, more aggressive quant, or model split3 models
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
228 GB
over
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
377 GB
over
FP16/BF16FP8/INT8Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MAWQ 4-bitGPTQ 4-bit
377 GB
over

Models that fit on a M2 Ultra 192.

$ grep "fits" models.json | head -12
ModelParamsBest quantWeights / 154 GB budgetFit
Mixtral 8x22B141BQ8_0
150
fits
▸ show the math
// weights Q8_0 for Mixtral 8x22B (141B params)
weights = params × bits ÷ 8
        = 141 × 8.5 ÷ 8
        = 149.81 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
149.81 ≤ 160.65  → FITS
headroom  = 10.84 GB of weights budget left
gpt-oss 120B117BQ8_0
124
fits
▸ show the math
// weights Q8_0 for gpt-oss 120B (117B params)
weights = params × bits ÷ 8
        = 117 × 8.5 ÷ 8
        = 124.31 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
124.31 ≤ 160.65  → FITS
headroom  = 36.34 GB of weights budget left
Command R+104BQ8_0
111
fits
▸ show the math
// weights Q8_0 for Command R+ (104B params)
weights = params × bits ÷ 8
        = 104 × 8.5 ÷ 8
        = 110.50 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
110.50 ≤ 160.65  → FITS
headroom  = 50.15 GB of weights budget left
Qwen 2.5 72B72.7BFP16/BF16
145
fits
▸ show the math
// weights FP16/BF16 for Qwen 2.5 72B (72.7B params)
weights = params × bits ÷ 8
        = 72.7 × 16 ÷ 8
        = 145.40 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
145.40 ≤ 160.65  → FITS
headroom  = 15.25 GB of weights budget left
Llama 3.3 70B70.6BFP16/BF16
141
fits
▸ show the math
// weights FP16/BF16 for Llama 3.3 70B (70.6B params)
weights = params × bits ÷ 8
        = 70.6 × 16 ÷ 8
        = 141.20 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
141.20 ≤ 160.65  → FITS
headroom  = 19.45 GB of weights budget left
Mixtral 8x7B46.7BFP16/BF16
93
fits
▸ show the math
// weights FP16/BF16 for Mixtral 8x7B (46.7B params)
weights = params × bits ÷ 8
        = 46.7 × 16 ÷ 8
        = 93.40 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
93.40 ≤ 160.65  → FITS
headroom  = 67.25 GB of weights budget left
Qwen 3.6 35B A3B35BFP16/BF16
70
fits
▸ show the math
// weights FP16/BF16 for Qwen 3.6 35B A3B (35B params)
weights = params × bits ÷ 8
        = 35 × 16 ÷ 8
        = 70.00 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
70.00 ≤ 160.65  → FITS
headroom  = 90.65 GB of weights budget left
Yi 34B34BFP16/BF16
68
fits
▸ show the math
// weights FP16/BF16 for Yi 34B (34B params)
weights = params × bits ÷ 8
        = 34 × 16 ÷ 8
        = 68.00 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
68.00 ≤ 160.65  → FITS
headroom  = 92.65 GB of weights budget left
Qwen 2.5 32B32.5BFP16/BF16
65
fits
▸ show the math
// weights FP16/BF16 for Qwen 2.5 32B (32.5B params)
weights = params × bits ÷ 8
        = 32.5 × 16 ÷ 8
        = 65.00 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
65.00 ≤ 160.65  → FITS
headroom  = 95.65 GB of weights budget left
Qwen 2.5 Coder 32B32.5BFP16/BF16
65
fits
▸ show the math
// weights FP16/BF16 for Qwen 2.5 Coder 32B (32.5B params)
weights = params × bits ÷ 8
        = 32.5 × 16 ÷ 8
        = 65.00 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
65.00 ≤ 160.65  → FITS
headroom  = 95.65 GB of weights budget left
Qwen3 30B A3B30.5BFP16/BF16
61
fits
▸ show the math
// weights FP16/BF16 for Qwen3 30B A3B (30.5B params)
weights = params × bits ÷ 8
        = 30.5 × 16 ÷ 8
        = 61.00 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
61.00 ≤ 160.65  → FITS
headroom  = 99.65 GB of weights budget left
Qwen 3.6 27B27BFP16/BF16
54
fits
▸ show the math
// weights FP16/BF16 for Qwen 3.6 27B (27B params)
weights = params × bits ÷ 8
        = 27 × 16 ÷ 8
        = 54.00 GB

// budget on M2 Ultra 192 (192GB) at ctx 8K, conc 1, 15% safety
kv_cache  = 0.05 GB    (1× at ctx 8K)
overhead  = 2.50 GB    (runtime, cuda, allocator)
safety    = 28.80 GB    (15% of 192GB)
budget    = vram − safety − kv − overhead
          = 192 − 28.80 − 0.05 − 2.50
          = 160.65 GB

// fit decision
54.00 ≤ 160.65  → FITS
headroom  = 106.65 GB of weights budget left

Compare to…

$ ./vrambudget --compare

Discussion.

$ gh discussion list

// sign in with github to leave a comment. threads live in the repo's discussions tab.