Articles

REQUEST TO TOKENS · 02PREFILL · ALL TOKENS, ONE PASSDECODE · ONE TOKEN PER PASS0.20 ms vs 74 ms PER TOKEN

Prefill vs. Decode: Why the Second Token Is a Different Workload

Why a prompt token costs hundreds of times less than an answer token on the same weights: prefill and decode, seen in a kernel trace.

NUMBER FORMATS · 07TENSOR SCALE, FP324.5 BITS PER VALUE

NVFP4: Two Levels of Scale

How NVFP4 differs from MXFP4: 16-value blocks, FP8 block scales, and a per-tensor scale, with what each part buys measured on Qwen3-8B.

OPEN-MODEL LABS · 01STANDARD ATTENTION · 4.8 MiBLATENT (MLA) · 68.6 KiB71×LESS KV PER TOKEN

DeepSeek: From V1 to V4, the Models and the Breakthroughs

DeepSeek's models in order, the idea behind each one (MoE, latent attention, FP8 training, RL reasoning, sparse attention), and what each changed for everyone else.

REQUEST TO TOKENS · 01PROMPT · ONE PASSANSWER · ONE PASS PER TOKENFIRST TOKEN 82 ms · THEN 73 ms EACH

From Prompt to Token: The Life of an LLM Request

One chat request followed through a real inference server, from chat template and tokens to prefill, decode, sampling, and streaming, each stage timed.

NUMBER FORMATS · 06E8M0 SCALE32 VALUES SHARE ONE SCALE

Microscaling: MXFP8, MXFP6, MXFP4 and Block Scales

The OCP microscaling formats: 32 values sharing one power-of-two scale, what MXFP8, MXFP6, and MXFP4 cost in accuracy on a real model, and why the scale rule matters.

INFERENCE ENGINES · 01MANY USERSYOUR MACHINEONE TARGET

Choosing an Inference Server: The Landscape, from Data Centers to Laptops

Inference servers in three groups: production engines and their stacks, local apps built on llama.cpp, and enthusiasts' specialized engines, with how to pick.

NUMBER FORMATS · 09256x² FITS IN FP1612,096A REAL ACTIVATION, FAR PAST 256

Where Low Precision Bites: Rounding, Overflow, and Accumulation

Five places where low precision breaks real computations, each reproduced on Qwen3-8B's own tensors, and the fix every serious implementation applies.

QUANTIZATION · 09AFTERTRAINEDWEIGHTS THAT SURVIVE ROUNDING

Quantization-Aware Training: When the Model Learns Its Own Precision

Why Kimi K2 Thinking ships in INT4 and gpt-oss and K3 in MXFP4: training with rounding in the loop, explained and measured on a small model.

QUANTIZATION · 04ONE CHANNEL26× A TYPICAL ONEQ_PROJ INPUT, LAYER 10, QWEN3-8B

Post-Training Quantization: Rounding, Calibration, and the Outlier Problem

Why rounding each weight to the nearest value is not enough, what calibration data is for, and the two kinds of outliers in a real model's activations, measured on Qwen3-8B.

QUANTIZATION · 02WEIGHTSACTIVATIONSKV CACHE16 BITS → 4, 8, 8

Quantization, Mapped: Weights, Activations, KV Cache

What can be quantized in a model, what each saves (memory, bandwidth, compute), and what each risks, with Qwen3-8B's numbers.

NUMBER FORMATS · 050010101011101000SIGNEXPONENTMANTISSA

FP8: E4M3, E5M2, and Why There Are Two

The two FP8 formats, what each is for, and how FP8 is scaled, measured on Qwen3-8B's weights and activations against INT8.

QUANTIZATION · 11Q4BITSKK-QUANTMMIX4.0 NOMINAL → 4.9 REALBITS PER WEIGHT, QWEN3-8B Q4_K_M

GGUF Quant Types Decoded: K-Quants and I-Quants

What Q4_K_M, IQ3_XXS, and the rest mean: the block layouts from llama.cpp's source, the real bits per weight of each file, and the weight error of each type on Qwen3-8B.

NewerPage 4 of 5Older