FLOPs
Floating-point operations counted to estimate how much arithmetic work a model needs during inference, before teams compare serving cost, throughput plans, or hardware capability.
A floating-point operation is one arithmetic step on real-number values stored in floating-point format. Engineers count these operations—written as FLOPs—to estimate how much compute a model needs during inference before they compare serving plans, hardware headlines, or per-request cost.
What It Is
One floating-point operation is one arithmetic action on floating-point numbers, such as a multiply or add inside a larger matrix calculation. FLOPs is the shorthand count of those operations. Inference estimates often total the floating-point work in large matrix multiplies and attention score calculations so teams can reason about compute demand without running every workload on every chip first.Why It Matters
Serving capacity planning, throughput targets, and hardware comparisons often start with a FLOPs estimate because it names how much arithmetic a model asks for on each forward pass. Wider matrices, deeper stacks, longer prompts, and more generated tokens usually raise that count. The estimate helps teams spot when compute might dominate a serving budget, but it is only a starting point: real stacks can complete less floating-point work per second than a headline hardware rate once memory movement, batch shape, and runtime scheduling enter the picture.Simple Example
Imagine multiplying two large tables of numbers where each inner step combines one pair of values. One matrix multiply between those tables performs millions of floating-point operations inside a single accelerated kernel. Inference planners often count similar work inside attention scoring blocks and dense matrix layers when they estimate total FLOPs for one forward pass through a model.Peak Versus Achieved Compute
Peak FLOPs is an advertised or theoretical maximum hardware rate under idealized conditions such as dense matrix math at a vendor-chosen precision with minimal data movement. Achieved compute is the floating-point work a serving stack actually completes per second for a concrete model, precision, batch shape, sequence length, and runtime configuration. The gap between them is normal. Memory bandwidth limits how fast weights and activations can reach the arithmetic units. Data movement between host memory, device memory, and on-chip caches adds time that peak-rate marketing does not count. Kernel efficiency changes when fused paths, custom operators, or fallback implementations replace the idealized math loop. Batching shape and sequence length change how much work each launch amortizes across tokens. Cache reads, writes, synchronization, and scheduler or runtime overhead can leave arithmetic units idle even while the system stays busy. When achieved compute is the bottleneck, throughput-bound reasoning compares how much floating-point work the model needs against how much the stack can deliver. Some inference paths are memory-bound, communication-bound, or latency-bound instead, so a high FLOPs estimate does not by itself prove that every workload is compute-bound.| Comparison dimension | Peak hardware FLOPs | Achieved inference compute |
|---|---|---|
| What the rate counts | A theoretical maximum count of floating-point operations the chip could perform per second under idealized dense math. | Floating-point operations the inference stack actually completes per second for one model and serving configuration. |
| Typical measurement conditions | Vendor benchmarks with tuned kernels, fixed precision, and shapes chosen to maximize arithmetic intensity. | Concrete precision, batch size, prompt length, generated token count, and the kernels the runtime can launch. |
| Where teams usually see it | Hardware datasheets, accelerator marketing sheets, and peak-rate comparison tables. | Profiler traces, serving benchmarks, and capacity tests on the target stack. |
| What real serving can leave out | Ignores model-specific memory traffic, batching limits, kernel gaps, and runtime scheduling that reduce delivered work. | Includes memory bandwidth stalls, data movement, cache effects, synchronization, and scheduler overhead that shrink usable compute. |