Platforms
CUDA Local Memory Is Private to a Thread, Not Necessarily Close to It
CUDA local memory names an address space private to each thread, with backing in device memory. Registers also hold private values, but use a different storage resource. A source variable's placement depends on compilation, and local accesses can use caches. Interpret a kernel workspace claim by identifying the values, their backing and the accesses being reported before comparing GPU capacity or performance.
Identify what local is local to
A proposal can use local in two different relationships. GPU-local HBM describes memory associated with a GPU rather than host or remote backing. CUDA local memory describes storage private to an individual thread. The first relationship does not identify the second address space.
NVIDIA's PTX ISA 9.4 reference distinguishes per-thread registers from addressable per-thread local storage. Registers are a limited, fast resource; local storage is typically standard memory with caching. Sharing scope and storage characteristics are separate properties.
Consequently, private workspace is an incomplete description of location. It identifies whose values are being retained, but leaves open whether they occupy registers, local space or some other explicitly identified representation. The useful question is which resource the actual implementation uses for that workspace.
A source variable does not reserve a particular storage resource
The archived CUDA 13.1.0 Programming Guide says an ordinary automatic device variable generally resides in a register, while allowing compiler placement in local memory. The accompanying Best Practices Guide identifies large structures or arrays and arrays with dynamic indexing as likely local-memory candidates.
Register pressure supplies another route: values that cannot remain in the available registers can spill. Local storage therefore does not imply that every variable using it first had a physical register and was then displaced. An addressable private array and a register spill can lead to local accesses for different reasons.
Compilation for the target matters, including later compilation stages. Counting declarations or assuming every automatic array spills cannot establish a kernel's allocation. The distinction is between the values expressed by the program and the storage selected for the resulting implementation.
Device-backed local memory can still be served through caches
The legacy Programming Guide places local space in device memory and states that local accesses are cached in L2 on compute capability 5.x and newer. It also describes local-memory organization that permits coalesced access when warp threads use the same relative address in their respective private objects.
Those threads still access different private objects. Grouping their accesses for service does not merge their values into one shared variable. Likewise, a cached value remains associated with local space; a cache hit does not turn the variable into a register.
This explains why neither universally uncached nor register-fast is a sound interpretation of local. A storage label leaves the actual cache behavior, traffic and elapsed time unresolved. Count bytes at the reported boundary before treating them as HBM transfers.
CM-305: private value payload is not a compiler allocation
Stipulate one logical block with 64 simultaneously active logical threads. Each retains 16 distinct private four-byte values at the instant considered. These are invented logical conditions, without a compiled kernel or a named GPU's resource allocation.
Each thread's stipulated payload is 16 x 4 = 64 B. Across the 64 threads it is 64 x 16 x 4 = 4,096 B. This calculation counts 1,024 private value slots. It establishes neither 4,096 B of local-memory allocation nor 1,024 allocated hardware registers.
Now separately stipulate a single block-wide array containing 16 four-byte values. That array's value payload is 16 x 4 = 64 B. It contains 16 slots shared by the block, rather than 16 independent slots for each thread. Dividing 4,096 B by 64 B gives a ratio of 64 between the stipulated payloads. It supplies no speed ratio and does not establish two equivalent programs.
If each thread must preserve its own different intermediate results, one common set of 16 slots has not represented all 1,024 independent slots. Conversely, if all threads need one common set, assuming 64 private copies describes a different logical requirement. The sharing contract must be established before comparing the byte counts.
CM-305 leaves compiler elimination, placement, padding and object lifetimes unresolved for any real implementation. Its simultaneous logical values also do not determine how much backing a runtime reserves. Use the arithmetic to expose an accounting assumption, then obtain implementation-specific resource evidence.
More HBM does not identify the kernel's on-chip resources
Consider a fictional supplier response: the proposed GPU has more HBM, so the kernel's private workspace will fit on chip. The response names a device-memory capacity without identifying the claimed register or shared-memory requirement. The inference remains unsupported even if the HBM specification is correct.
Registers and shared memory are finite resources used by work resident on a streaming multiprocessor, or SM. Their availability and allocation constraints are distinct from total device-memory capacity. A larger HBM figure alone cannot establish the kernel's register placement or how many blocks can reside together.
Ask the platform owner to tie the claim to the identified GPU, kernel build, CUDA version and block configuration. Retain each quantity's definition and units: logical value payload, compiled storage requirement and traffic accumulated during execution answer different questions. A local-memory field alone cannot establish a bottleneck or its contribution to application time.
The related occupancy guide explains resident-work limits; the Unified Memory guide addresses GPU-local page residence. Use the workload benchmark guide when the purchase decision depends on completed output or elapsed time. A workspace explanation helps interpret that evidence but does not supply a performance result.
References: [CM1]
Carry a separate installation need into the physical project brief
If the selected system also needs physical installation, Leviathan's rack-and-stack service covers agreed equipment mounting, IT cabling, labeling and installation records. Use the related service and project inquiry with a nonconfidential equipment list, site, released rack and cable plans, target window and required physical handoff.
That brief gives the installation discussion concrete inputs. Kernel implementation and application-performance acceptance remain with the appointed platform and application owners.
References: [L1]
Primary sources
- [CM1] NVIDIA CUDA C++ Best Practices Guide 13.1: local memory, shared memory and occupancyChecked 2026-10-20. Sections 10.2.3, 10.2.4 and 11.1.1 distinguish on-chip resources, thread-local scope and compiler placement. Device-specific allocation examples and tuning instructions are not generalized.
- [CM2] NVIDIA CUDA C++ Programming Guide (Legacy), archived under CUDA 13.1.0Checked 2026-10-20. Memory Hierarchy, Device Memory Accesses and Variable Memory Space Specifiers support scope, placement and the compute-capability 5.x-and-newer L2 statement. NVIDIA marks this guide legacy and no longer updated as of CUDA 13.0.
- [PT1] NVIDIA PTX ISA 9.4: state spacesChecked 2026-10-20. Section 5.1, Tables 6–7 and the register/local subsections distinguish per-thread storage, addressability and function-scoped local stack storage. These abstractions do not specify a kernel's allocated byte or register count.
- [CM3] NVIDIA Technical Blog: How to Improve CUDA Kernel Performance with Shared Memory Register SpillingChecked 2026-10-20. August 27, 2025. Original feature summary, fallback explanation and limitations establish the CUDA 13.0 opt-in exception. Example code and historical measured gains are not adopted.
- [L1] Leviathan Systems: Rack & Stack / ColocationChecked 2026-10-20. Published physical mounting, IT cabling, labeling and installation-record scope supports the separate selected-equipment handoff.