A tensor core is a fused matrix-multiply-accumulate unit on each SM that does an entire small tile of MMA per cycle; it makes FP16/BF16/FP8 matmul many times faster than FP32 on CUDA cores.
Imagine a kitchen with two kinds of cooks. One does single tasks: chop one onion, dice one carrot, mix one spoon of sauce. The other operates a giant industrial wok that processes a whole tray of ingredients in one motion: an entire wave of stir-fry done at once. The first cook is the general-purpose math unit on the chip; the wok is the dedicated math accelerator built specifically to do grid by grid multiplication and adding. The wok only works on that one recipe, but for that recipe it is dramatically faster than ten regular cooks combined. Modern LLM math is almost entirely that one recipe, mixed at lower-precision settings the wok is best at. The result: a GPU advertised at 'X teraflops' on FP32 hits many times X on FP16 or FP8 because those numbers come from the wok, not the regular line.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Tensor cores are why modern LLM inference is possible on a single GPU. Without them, a Llama 70B forward pass would be many times slower and far less power-efficient. Understanding what tensor cores are, what they accelerate, and what they do not accelerate is a prerequisite for reasoning about any inference performance problem.
This deep dive covers the hardware: what tensor cores are physically, how they differ from CUDA cores, what precision tiers each GPU generation added, and how serving engines route LLM compute through them. The takeaway is that tensor-core utilization is the primary lever on prefill throughput, while decode is bottlenecked elsewhere.
What a tensor core is, physically
A modern NVIDIA GPU is a sea of streaming multiprocessors (SMs). The H100 has 132 SMs; the B200 has roughly 148 enabled SMs per die. Each SM contains a mix of execution units: a register file, a warp scheduler, several CUDA cores (FP32 / INT32 ALUs), a few tensor cores, special function units for transcendentals, and a shared memory bank.
A tensor core is a specialized MMA execution unit. Physically it is a small array of multipliers and adders wired to consume two operand tiles (A and B) and an accumulator tile (C) and produce a result tile (D = A*B + C) in a few cycles. On both Hopper and Blackwell there are four tensor cores per SM; Blackwell's 5th-gen cores deliver higher throughput per core (notably native FP4) rather than doubling the count.
The tile shape is precision-dependent. FP16 matmul uses 16x16 tiles fed to a single tensor core; FP8 matmul uses larger 64x32 or 128x32 tiles via warpgroup-level instructions; FP4 on Blackwell uses block-scaled tiles with explicit scale operands every 16 elements.
The distinction from CUDA cores matters at the instruction level. CUDA cores execute SASS instructions like FFMA (32-bit fused multiply-add): one scalar op per thread per cycle. Tensor cores execute MMA instructions like mma.sync.aligned.m16n8k16.row.col.f32.f16.f16.f32: one tile of MMA per warp per few cycles. The total arithmetic per cycle on the tensor-core path is the product of tile area and clock rate, which dwarfs what the CUDA-core path can do.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- An NVIDIA H100 SXM is rated at ~989 TFLOPS BF16 and ~1,979 TFLOPS FP8 dense matmul, versus only ~67 TFLOPS FP32 (the FP32 number runs on CUDA cores).
- FlashAttention 3 (Hopper-specific) uses asynchronous TMA loads plus warpgroup MMA (WGMMA) to keep tensor cores fed during attention, hitting ~75% of peak FP16 throughput.
What an interviewer would ask next. Try answering before peeking at the approach.
QWhy is H100 FP32 throughput so much lower than its FP8 throughput?
FP32 matmul runs on CUDA cores, which do one scalar FMA per cycle. FP8 matmul runs on tensor cores, which do an entire tile of MMA per cycle. The ratio is the architectural difference between the two pipelines, not a quantization quality / loss tradeoff.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Thinking tensor cores are general-purpose ALUs. They only accelerate fused MMA on small matrix tiles in supported precisions (FP16, BF16, FP8, INT8); everything else runs on CUDA cores.
60 second bullets to scan on the way to the call.
Define a tensor core as a hardware MMA unit on the SM.
Contrast it with a CUDA core (scalar FMA, general-purpose).
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.