LiquidAI/LFM2.5-2.6B-GGUF · Q4_K_M — local run
On-device inference report

LiquidAI/LFM2.5-2.6B-GGUF · Q4_K_M

One generation, run entirely on this machine's CPU with no network call at inference time. Weights loaded from the local Hugging Face cache.

Throughput
34.8 tok/s
Prefill
137 tok/s
Generation time
25.4 s
Runtime
llama.cpp
Device
CPU
Precision
Q4_K_M
Threads
8

Sampling

temperature
0.1
top_k
50
max_new_tokens
2048
Prompt

Explain why a 2.6B parameter model can run on a laptop CPU while a 70B model cannot. Be concrete about memory.

Answer

The core reason is memory bandwidth and capacity constraints, not raw compute. Let me break this down concretely.

The Memory Bottleneck

A model's ability to run on a CPU (or GPU) is fundamentally limited by how much parameter memory can fit in fast, on-chip memory (SRAM) and how much total memory is available for the model weights.

2.6B Model

  • Parameters: ~2.6 billion
  • FP16 (2 bytes per param): ~5.2 GB
  • FP32 (4 bytes per param): ~5.2 GB
  • KV Cache overhead (for inference): small relative to weights

On a laptop CPU, you have:

  • System RAM: 16-32 GB (e.g., 32 GB DDR5)
  • CPU memory bandwidth: ~50-100 GB/s (much slower than GPU memory bandwidth)

The 2.6B model fits comfortably in system RAM (well under 16 GB). The CPU can stream the weights from RAM into L3 cache or even main memory during inference. The memory bandwidth is the bottleneck, but the model is small enough that it can be paged in and out of cache without running out of RAM.

70B Model

  • Parameters: ~70 billion
  • FP16: ~140 GB
  • FP32: ~280 GB
  • KV Cache: Even larger (depends on context length)

On the same laptop:

  • System RAM: 16-32 GB
  • GPU VRAM: 8-16 GB (if you try to use a GPU)

The 70B model cannot fit in system RAM (140 GB > 32 GB). It also cannot fit in GPU VRAM (280 GB > 16 GB). So it physically cannot be loaded at all.

Why CPU Inference is Even Harder for Larger Models

Even if you had enough RAM, there's a second problem: memory bandwidth.

During inference, the model must repeatedly read the weights from memory to compute. The time to process a token is roughly:

Time ≈ (Number of parameters) × (Memory bandwidth) / (Compute throughput)

For a 70B model:

  • 70B parameters × 2 bytes = 140 GB of weight data
  • At 50 GB/s memory bandwidth → ~2.8 seconds just to read the weights once
  • Plus the KV cache (which grows with context length)

A 2.6B model:

  • 2.6B parameters × 2 bytes = 5.2 GB
  • At 50 GB/s → ~0.1 seconds to read the weights once

The 2.6B model is fast because the weight data is small enough that the memory bandwidth isn't the bottleneck. The 70B model is memory-bandwidth-bound, and the bandwidth is simply too slow to process the massive weight matrix before the next token arrives.

Summary

ModelWeight Size (FP16)Fits in 32GB RAM?Fits in 16GB GPU?Can Run on Laptop CPU?
2.6B~5.2 GB✅ Yes✅ Yes✅ Yes (fast)
70B~140 GB❌ No❌ No❌ No (physically impossible)

The 2.6B model runs on a laptop CPU because its entire parameter set fits in system RAM, and the memory bandwidth is sufficient to feed the CPU. The 70B model cannot run on a laptop CPU because its weights alone exceed the available RAM, and even if they didn't, the memory bandwidth would be too slow to process the model during inference.