Home Knowledge Base GPU memory is the hierarchy that stores and moves instructions, model parameters, activations, caches, and intermediate tensors for graphics and accelerator execution.

GPU memory is the hierarchy that stores and moves instructions, model parameters, activations, caches, and intermediate tensors for graphics and accelerator execution. For modern AI, capacity and delivered bandwidth are often more limiting than nominal arithmetic throughput. A discrete GPU may combine per-thread registers, per-block or per-SM shared memory, L1 and texture caches, a shared L2, and external HBM or GDDR; host DRAM and storage sit beyond device links. A professional performance claim defines workload, useful work, input and output shapes, numerical format, batch and concurrency, warmup and measurement interval, hardware and software versions, power state, correctness tolerance, and aggregation method. Peak specifications are ceilings under particular conditions; delivered behavior includes utilization, data movement, synchronization, control overhead, and tail effects. HBM3E-class products use several stacked memories and wide package interfaces, with product configurations spanning tens to well over one hundred gigabytes and aggregate bandwidth from roughly two to several terabytes per second. Exact stack count, capacity, and rate are device-specific.

Architecture, quantitative model, and operating behavior. Registers offer the lowest latency and highest locality but are private and scarce. Programmer-managed shared memory enables tile reuse. L1/L2 caches capture temporal and spatial locality. HBM supplies capacity and bandwidth, while host DRAM extends capacity at much lower effective device access rate. Loads are issued by warps or wavefronts, coalesced into transactions, served from caches or external memory, and hidden through concurrency. Allocators reserve virtual ranges and physical pages; CUDA unified virtual memory and related systems share a virtual address space and migrate or map pages between CPU and GPU. HBM favors wide interfaces and bandwidth near the package; GDDR favors simpler board attachment; integrated GPUs may share system DRAM; coherent accelerator memory can participate in a larger address space. ECC, compression, partitioning, and confidential-memory features change usable capacity and cost. Useful analysis separates arithmetic, memory hierarchy, interconnect, storage, control, and queuing. It counts operations and bytes at each boundary, identifies dependencies and reuse, estimates ideal ceilings, and then uses counters and traces to explain the gap between the model and measurement. Ratios without a clearly named numerator and denominator invite invalid comparisons. Report useful throughput together with latency distribution, utilization, arithmetic intensity, achieved bandwidth, cache hit rate, occupancy, communication time, memory capacity, power, energy per result, quality, and cost. Include median and tail behavior, sustained rather than burst operation, repeated trials, and uncertainty. A faster approximation is not equivalent unless it meets the same accuracy and service constraints.

Implementation, hardware mapping, and bottlenecks. Optimize layouts, aligned coalesced accesses, tile reuse, fusion, prefetch, async copies, lifetime planning, pooling allocators, checkpointing, and cache-aware attention. Separate reserved from allocated memory and account for fragmentation, workspace, graph capture, KV cache, and communication buffers. Register pressure reduces occupancy, bank conflicts serialize shared memory, cache thrashing raises HBM traffic, TLB misses and page faults stall migration, and PCIe oversubscription makes oversubscribed memory unpredictable. Out-of-memory can arise from peaks or fragmentation rather than model size; unified-memory oversubscription can thrash; an HBM headline ignores cache and access efficiency; host-device copies can dominate a kernel speedup. Begin with a correct reference and representative shapes. Profile end to end, classify the dominant resource, inspect kernel and system timelines, change one bottleneck at a time, and remeasure because optimization moves pressure elsewhere. Tiling, fusion, batching, vectorization, layout, precision, compression, overlap, prefetch, sharding, and algorithm choice are useful only when they reduce the limiting resource. The execution path spans registers, local SRAM and caches, HBM or GDDR, host DRAM, PCIe or coherent links, scale-up fabric, network, and storage. Compute units consume tensors only when compilers and kernels issue enough independent work and the hierarchy supplies operands. Package wiring, memory stacks, clocks, voltage, thermal headroom, and power delivery determine sustained limits. Frequent mistakes include quoting peak instead of achieved rates, omitting data conversion and transfer, measuring a cached toy input, timing asynchronous work without synchronization, mixing decimal and binary units, ignoring warmup or throttling, changing precision or quality, averaging away tails, and optimizing a component that is not on the critical path.

Measurement, validation, and engineering controls. Measure capacity high-water marks, bandwidth by level, cache and TLB behavior, transactions per request, page migrations, allocator fragmentation, stalls, and kernel time across representative sequences and batches. Bytes per parameter/token, KV-cache growth, achieved versus peak bandwidth, latency, hit rate, occupancy, page-fault cost, allocation time, and energy per transferred byte matter. Allocation snapshots, memory timelines, leak tests, page-fault traces, and controlled stride/reuse microbenchmarks distinguish capacity, locality, and bandwidth problems. Verification combines analytical bounds, microbenchmarks, hardware counters, kernel timelines, end-to-end traces, scaling sweeps, sensitivity to batch and shape, cold and warm runs, long-duration thermal tests, correctness comparisons, fault and congestion tests, and independent reproduction. Roofline and queueing models guide diagnosis but must be calibrated against the deployed machine. Benchmark code, datasets, model and compiler artifacts, drivers, firmware, topology, clock and power settings, environment, commands, raw samples, counter traces, and analysis notebooks remain versioned. Continuous tests detect regressions in quality, latency, throughput, bandwidth, memory, power, and cost, with thresholds chosen from variance rather than a single run. Published comparisons disclose configuration, exclusions, tuning effort, measurement boundary, quality criteria, and uncertainty. Energy and carbon claims distinguish chip, IT, and facility boundaries and avoid extrapolating one benchmark to all workloads. Owners review regressions and retain evidence sufficient to reproduce decisions.

Memory levelTypical scopeCapacity classRelative latencyEngineering role
RegistersThread/warpBytes to KB per thread blockLowestOperands and accumulators
Shared memory/L1SM or compute unitTens to hundreds of KBVery lowSoftware-managed tile reuse
L2 cacheWhole GPUMB to hundreds of MBLowCross-SM reuse/traffic filter
HBM3EGPU packageTens to 192 GB classHigherPrimary model/activation store
GDDR6XGPU boardTens of GBHigherCost-effective discrete memory
Host DRAMCPU nodeHundreds of GB to TBHighest from GPUStaging/oversubscription
<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif">
  <rect x="0" y="0" width="760" height="470" fill="#0d1117"/>
  <text x="380" y="28" fill="#e6edf3" font-size="21" font-weight="700" text-anchor="middle">Gpu Memory Technical Microarchitecture</text>
  <text x="380" y="48" fill="#8b98a5" font-size="12" text-anchor="middle">Detailed Domain Pipeline, Architectural Blocks &amp; Engineering Performance Optimization (ID 13143)</text>
  
  
    <!-- CPU PIPELINE (3 Column Panels) -->
    <g transform="translate(25, 75)">
      <rect width="220" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
      <text x="110" y="25" fill="#f87171" font-size="12" font-weight="700" text-anchor="middle">1. Fetch &amp; Decode</text>
      <rect x="15" y="45" width="190" height="65" fill="#0d1117" stroke="#30363d" rx="4"/>
      <text x="105" y="70" fill="#fca5a5" font-size="11" font-weight="700" text-anchor="middle">Instruction Fetch (IF)</text>
      <text x="105" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">PC Generator &amp; L1 I-Cache</text>
      <rect x="15" y="125" width="190" height="65" fill="#0d1117" stroke="#30363d" rx="4"/>
      <text x="105" y="150" fill="#fca5a5" font-size="11" font-weight="700" text-anchor="middle">Branch Predictor</text>
      <text x="105" y="170" fill="#8b98a5" font-size="9" text-anchor="middle">Gshare / TAGE &amp; BTB</text>
      <rect x="15" y="205" width="190" height="95" fill="#0d1117" stroke="#b91c1c" rx="4"/>
      <text x="105" y="230" fill="#e6edf3" font-size="11" font-weight="700" text-anchor="middle">Instruction Decode (ID)</text>
      <text x="105" y="250" fill="#8b98a5" font-size="9" text-anchor="middle">Register Rename &amp; ROB</text>
      <text x="105" y="275" fill="#3fb950" font-size="9" font-weight="700" text-anchor="middle">Width: 4-Way Superscalar</text>
    </g>
    <g transform="translate(270, 75)">
      <rect width="220" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
      <text x="110" y="25" fill="#f87171" font-size="12" font-weight="700" text-anchor="middle">2. Execution Engine</text>
      <rect x="15" y="45" width="190" height="75" fill="#0d1117" stroke="#f87171" stroke-width="1.5" rx="4"/>
      <text x="105" y="70" fill="#ffffff" font-size="11" font-weight="700" text-anchor="middle">ALU Cluster (INT)</text>
      <text x="105" y="95" fill="#fca5a5" font-size="9" text-anchor="middle">Single-Cycle Arithmetic &amp; Shifts</text>
      <rect x="15" y="135" width="190" height="75" fill="#0d1117" stroke="#30363d" rx="4"/>
      <text x="105" y="160" fill="#d2a8ff" font-size="11" font-weight="700" text-anchor="middle">FPU / SIMD Engine</text>
      <text x="105" y="185" fill="#8b98a5" font-size="9" text-anchor="middle">256-bit Vector FMA Pipelines</text>
      <rect x="15" y="225" width="190" height="75" fill="#0d1117" stroke="#30363d" rx="4"/>
      <text x="105" y="250" fill="#fbbf24" font-size="11" font-weight="700" text-anchor="middle">Load / Store Queues</text>
      <text x="105" y="275" fill="#8b98a5" font-size="9" text-anchor="middle">Out-of-Order Memory Disambiguation</text>
    </g>
    <g transform="translate(515, 75)">
      <rect width="220" height="325" fill="#161b22" stroke="#30363d" stroke-width="1.5" rx="8"/>
      <text x="110" y="25" fill="#f87171" font-size="12" font-weight="700" text-anchor="middle">3. Memory &amp; Writeback</text>
      <rect x="15" y="45" width="190" height="85" fill="#0d1117" stroke="#30363d" rx="4"/>
      <text x="105" y="70" fill="#58a6ff" font-size="11" font-weight="700" text-anchor="middle">L1 D-Cache &amp; TLB</text>
      <text x="105" y="90" fill="#8b98a5" font-size="9" text-anchor="middle">32KB 8-Way Set Assoc</text>
      <text x="105" y="110" fill="#3fb950" font-size="9" font-weight="700" text-anchor="middle">Hit Latency: 4 Cycles</text>
      <rect x="15" y="145" width="190" height="85" fill="#0d1117" stroke="#30363d" rx="4"/>
      <text x="105" y="170" fill="#58a6ff" font-size="11" font-weight="700" text-anchor="middle">L2 / L3 Cache Controller</text>
      <text x="105" y="190" fill="#8b98a5" font-size="9" text-anchor="middle">Inclusive/Non-Inclusive Hierarchy</text>
      <text x="105" y="210" fill="#3fb950" font-size="9" font-weight="700" text-anchor="middle">MESI Coherence Protocol</text>
      <rect x="15" y="245" width="190" height="55" fill="#0d1117" stroke="#b91c1c" rx="4"/>
      <text x="105" y="270" fill="#e6edf3" font-size="11" font-weight="700" text-anchor="middle">In-Order Retirement</text>
      <text x="105" y="288" fill="#8b98a5" font-size="8" text-anchor="middle">Commits Architectural State</text>
    </g>
  
  <!-- Key insight bar -->
  <rect x="25" y="415" width="710" height="22" rx="3" fill="#0b1220" stroke="#233043" stroke-width="0.8"/>
  <text x="380" y="430" fill="#fbbf24" font-size="9" font-weight="700" text-anchor="middle">Key Insight: Optimal Gpu Memory architecture balances performance throughput, systemic latency, and physical constraints.</text>
  
  <text x="380" y="460" fill="#6b7684" font-size="11" text-anchor="middle">Technical specification &amp; verification reference for Gpu Memory (Row ID 13143)</text>
</svg>

Selection and system-level application. Choose HBM for bandwidth-intensive accelerators, GDDR where board economics dominate, shared system memory for integrated designs, and managed memory for productivity only after migration behavior is bounded. LLM training and decode, recommendation embeddings, vision, simulation, rendering, graph analytics, and scientific computing depend on GPU memory behavior. Model architecture, precision, batching, parallelism, compiler fusion, allocator, memory topology, package, cooling, and interconnect determine the usable hierarchy. Optimization is a system exercise across algorithms, precision, kernels, compiler, runtime, accelerator, memory, interconnect, scheduler, serving policy, cooling, and facility limits. Removing one ceiling often exposes another, so architecture decisions should optimize time and energy to a useful result rather than an isolated metric. A professional performance claim defines workload, useful work, input and output shapes, numerical format, batch and concurrency, warmup and measurement interval, hardware and software versions, power state, correctness tolerance, and aggregation method. Peak specifications are ceilings under particular conditions; delivered behavior includes utilization, data movement, synchronization, control overhead, and tail effects. Report useful throughput together with latency distribution, utilization, arithmetic intensity, achieved bandwidth, cache hit rate, occupancy, communication time, memory capacity, power, energy per result, quality, and cost. Include median and tail behavior, sustained rather than burst operation, repeated trials, and uncertainty. A faster approximation is not equivalent unless it meets the same accuracy and service constraints. CFS connects this topic to semiconductor architecture, implementation, verification, manufacturing, packaging, test, and deployed AI-system tradeoffs across the platform.

gpu memorygpu memory hierarchyhbmgddrshared memorygpu registersl1 l2 cacheunified memory

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.