Can an Apple M4 16GB run Llama 3.1 8B Instruct?

Yes

Yes. At Q8_0 it needs 9.5 GB of the 10.72 GB available and generates around 10.5 tokens per second at an 8k context window.

The numbers

Llama 3.1 8B Instruct has 8.03 billion parameters across 32 layers. The Apple M4 16GB has 16 GB of unified memory at 120 GB/s, of which about 10.72 GB is left for a model once the operating system has taken its share.

QuantisationTotal neededFitsSpeed
Q8_0 9.5 GB yes 10.5 t/s
Q6_K 7.68 GB yes 13.1 t/s
Q5_K_M 6.87 GB yes 14.8 t/s
Q4_K_M 6.07 GB yes 17 t/s
IQ4_XS 5.52 GB yes 18.8 t/s
Q3_K_M 5.21 GB yes 20.1 t/s
IQ3_XXS degraded 4.41 GB yes 24.2 t/s
Q2_K degraded 4.68 GB yes 22.7 t/s
IQ2_XXS degraded 3.48 GB yes 32 t/s

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

How long a conversation it holds

At Q8_0, 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 8k tokens.

ContextCacheTotalFits
4k 0.5 GB 8.87 GB yes
8k 1 GB 9.5 GB yes
16k 2 GB 10.75 GB no
32k 4 GB 13.25 GB no
64k 8 GB 18.25 GB no
128k 16 GB 28.25 GB no

See how fast it feels

Apple M4 16GB running Llama 3.1 8B Instruct at Q8_0

Wait for the first word6.0 s
Then writes at10.5 tok/s
Whole answer22 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. The same answer on RTX 4090 at Q8_0 would take about 1.9 s.

Keep going

Everything the Apple M4 16GB runs, the full breakdown for Llama 3.1 8B Instruct, or check a different pairing in the calculator.