Can an Apple M4 Max 128GB run GPT OSS 120B?

Yes

Yes. At Q6_K it needs 89.71 GB of the 96 GB available and generates around 97.6 tokens per second at an 8k context window.

The numbers

GPT OSS 120B has 116.83 billion parameters across 36 layers, of which 5.7 billion are read for each token. The Apple M4 Max 128GB has 128 GB of unified memory at 546 GB/s, of which about 96 GB is left for a model once the operating system has taken its share.

QuantisationTotal neededFitsSpeed
Q8_0 116.09 GB no
Q6_K 89.71 GB yes 97.6 t/s
Q5_K_M 77.87 GB yes 112.5 t/s
Q4_K_M 66.18 GB yes 132.5 t/s
IQ4_XS 58.29 GB yes 150.5 t/s
Q3_K_M 53.67 GB yes 163.6 t/s
IQ3_XXS degraded 42.1 GB yes 208.8 t/s
Q2_K degraded 46.05 GB yes 190.8 t/s
IQ2_XXS degraded 28.5 GB yes 309.6 t/s

8 of the 9 levels fit. Levels marked degraded are listed for completeness, not as advice.

How long a conversation it holds

At Q6_K, memory rises with the length of the conversation because the attention cache keeps a key and value for every token. The longest window that still fits on this device is 128k tokens.

ContextCacheTotalFits
4k 0.01 GB 89.62 GB yes
8k 0.01 GB 89.71 GB yes
16k 0.01 GB 89.88 GB yes
32k 0.01 GB 90.23 GB yes
64k 0.01 GB 90.94 GB yes
128k 0.01 GB 92.34 GB yes

See how fast it feels

Apple M4 Max 128GB running GPT OSS 120B at Q6_K

Wait for the first word1.1 s
Then writes at97.6 tok/s
Whole answer2.8 s

YouWhy does my model use more memory when the conversation gets longer?

Model

Because of the KV cache. Every token you send leaves behind a key and a value vector in each layer of the model, and those stay in memory for as long as the conversation lasts.

The weights are a fixed cost: load a 4-bit 8B model and that is about 4.8 GB, whether you write one word or ten thousand. The cache is the part that grows, and it grows in a straight line with the number of tokens in the window.

How steeply depends on the model's attention design. With grouped-query attention, several query heads share one key-value pair, which cuts the cache by that ratio. Without it, every head keeps its own, and a long context can cost more memory than the weights themselves.

If you are short on memory, the first thing to try is lowering the context window in your runtime, not the quantisation.

Simulated from our estimate at a 512-token question, not a recording. Assumes nothing else is competing for the GPU.

Keep going

Everything the Apple M4 Max 128GB runs, the full breakdown for GPT OSS 120B, or check a different pairing in the calculator.