Global Memory

Global Memory in GPU architecture refers to the main off-chip DRAM accessible by all threads across all streaming multiprocessors (SMs).

## What Is Global Memory?

  • Capacity: 4GB to 80GB+ on modern GPUs (HBM2/GDDR6)
  • Bandwidth: 500GB/s to 3TB/s depending on memory type
  • Latency: 400-800 clock cycles (much slower than shared memory)
  • Scope: Accessible by all threads in all blocks

## Why Global Memory Matters

Global memory is where large datasets, model weights, and results reside. Despite high bandwidth, poor access patterns cause performance bottlenecks.

// Global memory access example
__global__ void kernel(float *globalData) {
    int idx = blockIdx.x * blockDim.x + threadIdx.x;
    
    // Coalesced access - threads read consecutive addresses
    float val = globalData[idx];  // Good pattern
    
    // Strided access - inefficient, multiple transactions
    float val2 = globalData[idx * 32];  // Bad pattern
}

Optimization Tips:
- Coalesce memory accesses (consecutive threads → consecutive addresses)
- Use shared memory as cache for repeated accesses
- Align data structures to 128-byte boundaries

Take global memory further

Ask the copilot about this term, or have our engineers assess it against your process.