GPU Glossary
Performance·1 min read

Register Pressure

The situation where the register file becomes a performance bottleneck, limiting how many threads an SM can run.

Register pressure is the colorful name for when the register file becomes a bottleneck. The root cause: registers in Parallel Thread eXecution (PTX) are virtual and unlimited, but the register files of a Streaming Multiprocessor (SM) are physical and limited.

How it limits performance#

  • The register space each thread uses is set by the kernel's Streaming ASSembler (SASS) code.
  • All threads in a thread block are scheduled onto the same SM, so a block's total register space also depends on the kernel launch configuration.
  • The more space each block needs, the fewer blocks fit on an SM. That reduces occupancy and makes it harder to hide latency.

Key idea Every register a thread uses is multiplied across every thread on the SM, so a few extra registers per thread can cost whole thread blocks of occupancy.

Hardware responses#

This SemiAnalysis article explains how register pressure relates to key features in recent SM architectures:

On CPUs#

CPUs face register pressure too. Similar register bottlenecks limit how far loops can be strip-mined during auto-vectorization.