Non-Uniform Memory Access (NUMA) is a multiprocessor architecture where memory access latency is not uniform. Each processor, or NUMA node, has its own local memory bank. Accessing this local memory is fast, while accessing memory attached to a remote node incurs higher latency due to interconnects like Intel Ultra Path Interconnect (UPI) or AMD Infinity Fabric. This design contrasts with Uniform Memory Access (UMA) systems, where all processors share a single, centralized memory bus with equal latency. NUMA is fundamental to modern multi-socket servers and high-core-count CPUs.
Glossary
Non-Uniform Memory Access (NUMA)

What is Non-Uniform Memory Access (NUMA)?
Non-Uniform Memory Access (NUMA) is a computer memory design used in multiprocessing where the memory access time depends on the memory location relative to the processor, meaning some regions of memory are faster to access than others from a given CPU core.
For GPU memory optimization, NUMA awareness is critical when managing data transfers between host (CPU) and device (GPU) memory. A GPU is typically connected to a specific CPU socket via a PCIe root complex. Allocating host memory from the local NUMA node of that controlling CPU minimizes latency for Direct Memory Access (DMA) transfers and zero-copy operations. Misconfigured NUMA binding can double memory access latency, creating a bottleneck for inference pipelines. System tools like numactl and runtime libraries are used to enforce optimal NUMA affinity for processes and memory allocations.
Key Characteristics of NUMA Architecture
Non-Uniform Memory Access (NUMA) is a memory architecture for multiprocessor systems where memory access time depends on the physical location of the memory relative to the processor. This design fundamentally impacts performance and programming models.
Memory Locality and Access Latency
The defining feature of NUMA is non-uniform latency. Each processor or group of processors (a NUMA node) has its own local memory that it can access with low latency. Accessing memory attached to a remote NUMA node (remote memory) incurs significantly higher latency and potentially lower bandwidth due to the need to traverse an interconnect like a crossbar, HyperTransport, or Intel Ultra Path Interconnect (UPI). Optimizing performance requires data locality—keeping data and the threads that process it on the same NUMA node.
NUMA Node Topology
A system's NUMA topology maps the physical relationship between processors and memory banks. Key components include:
- Socket: A physical CPU package, often containing multiple cores.
- NUMA Node: A logical grouping of cores with a local memory controller and attached RAM. A system can have multiple nodes per socket.
- Interconnect: The high-speed links (e.g., AMD's Infinity Fabric, Intel's UPI) that connect nodes, enabling remote memory access.
Tools like
numactl --hardwareorlscpuon Linux reveal this topology, which is critical for process and memory pinning.
First-Touch Policy and Allocation
Most operating systems (Linux, Windows) use a first-touch policy for memory allocation in NUMA systems. When a process first writes to a page of memory, that page is physically allocated from the local memory of the NUMA node where the writing thread is executing. This policy can lead to suboptimal placement if initialization is done by a single thread, causing all memory to be local to one node while other threads on remote nodes suffer high access latency. Explicit control is achieved via APIs like numactl or libnuma.
Impact on GPU Systems and PCIe Placement
NUMA architecture critically affects GPU performance in multi-socket servers. A GPU is physically connected via PCIe to a specific CPU socket (NUMA node). Direct memory access (DMA) transfers between the GPU and local host memory (on the same node) have much higher bandwidth and lower latency than transfers to remote host memory. This makes GPU affinity a key optimization. For optimal GPU Direct Storage or Zero-Copy performance, data buffers must be allocated in the host memory local to the GPU's PCIe root complex.
Contrast with UMA (Uniform Memory Access)
NUMA is often contrasted with the older Uniform Memory Access (UMA) architecture, also known as Symmetric Multiprocessing (SMP). In UMA, all processors share a single, centralized memory bus. While all memory has equal access latency for any processor, the shared bus becomes a severe contention bottleneck as processor count increases. NUMA solves this scalability limit by distributing memory controllers, but at the cost of introducing complexity in managing non-uniform latency. Modern multi-socket servers are exclusively NUMA-based.
Software Optimization Strategies
Effective use of NUMA requires explicit software strategies:
- Thread and Memory Pinning: Bind processes/threads to specific cores and allocate memory from the corresponding local node using
taskset,numactl, or OpenMP/MPI environment variables. - NUMA-Aware Allocators: Use allocators (e.g.,
tcmalloc,jemalloc) that are aware of NUMA topology to allocate memory from the local node of the requesting thread. - Data Partitioning: Design algorithms to partition data structures so that each NUMA node's threads primarily operate on locally allocated memory, minimizing remote accesses.
- Monitoring: Use performance counters to track NUMA hits/misses and tools like
numastatto analyze memory locality.
Why NUMA Matters for AI and Machine Learning
Non-Uniform Memory Access (NUMA) is a critical system architecture concept that directly impacts the performance and cost of large-scale AI inference and training workloads.
Non-Uniform Memory Access (NUMA) is a multiprocessor memory architecture where a processor's access time to memory depends on its physical location, creating local 'fast' memory and remote 'slower' memory. In AI systems, this design is crucial because inefficient data placement across NUMA nodes can introduce significant latency as CPUs or GPUs stall waiting for remote memory fetches. This directly contradicts the low-latency demands of high-throughput inference and parallel training.
For AI workloads, optimal NUMA-aware scheduling binds processes and their memory allocations to the same local node, minimizing costly remote accesses. This is especially vital for data-loading pipelines feeding GPUs and for multi-GPU systems connected via PCIe or NVLink where memory traffic must traverse the NUMA fabric. Proper configuration reduces inference tail latency, improves training iteration times, and maximizes the return on expensive accelerator investments by eliminating unnecessary memory stalls.
NUMA vs. UMA: A Comparison
A comparison of Non-Uniform Memory Access (NUMA) and Uniform Memory Access (UMA) architectures, highlighting their design principles, performance characteristics, and typical use cases in modern computing systems.
| Feature | Non-Uniform Memory Access (NUMA) | Uniform Memory Memory Access (UMA) |
|---|---|---|
Core Design Principle | Memory access time depends on the physical location of the memory relative to the processor. | All processors share a single, centralized memory bank with uniform access latency. |
Memory Organization | Distributed, local memory banks attached to processor nodes via an interconnect. | Centralized, shared memory bus accessible by all processors. |
Access Latency Profile | Low latency for local memory; higher, variable latency for remote memory. | Consistent, uniform latency for all memory accesses from any processor. |
Scalability | Scales well to high processor counts by distributing memory bandwidth and controllers. | Limited by the bandwidth and contention of the single shared memory bus. |
Typical Hardware | Modern multi-socket servers (AMD EPYC, Intel Xeon), high-core-count CPUs. | Traditional symmetric multiprocessing (SMP) systems, simpler multi-core CPUs. |
Cache Coherency Protocol | Complex, directory-based or snooping protocols across the interconnect (e.g., AMD Infinity Fabric, Intel QPI/UPI). | Simpler, bus-based snooping protocol. |
Software Awareness & Optimization | Requires OS and application awareness (NUMA scheduling, memory placement) for optimal performance. | Transparent to software; no special placement optimizations required. |
Primary Advantage | Higher aggregate memory bandwidth and better scalability for data-intensive, parallel workloads. | Simplicity, predictable performance, and ease of programming. |
Primary Disadvantage | Performance pitfalls due to non-local memory access; requires careful data locality management. | Memory bandwidth bottleneck and limited scalability as processor count increases. |
Frequently Asked Questions
Non-Uniform Memory Access (NUMA) is a critical memory architecture for modern multi-socket servers and high-performance computing systems. Understanding NUMA is essential for optimizing application performance, especially for memory-intensive workloads like machine learning training and large-scale inference.
Non-Uniform Memory Access (NUMA) is a shared-memory multiprocessor architecture where the memory access time depends on the memory location relative to the requesting processor. In a NUMA system, each processor or group of processors (a NUMA node) has its own local memory, which it can access with low latency. Accessing memory attached to a remote NUMA node incurs higher latency and potentially lower bandwidth due to the need to traverse an interconnect like Intel Ultra Path Interconnect (UPI) or AMD Infinity Fabric. The operating system and applications must be NUMA-aware to allocate memory and schedule processes on the node where the required data resides, minimizing these costly remote accesses.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Related Terms
Non-Uniform Memory Access (NUMA) is a key concept for understanding memory performance in multi-socket and multi-GPU systems. The following terms are essential for engineers optimizing memory hierarchies and data locality.
Unified Virtual Memory (UVM)
A memory management architecture that creates a single, contiguous virtual address space shared between a CPU and GPU. This allows both processors to access the same memory pointers using a common page table, simplifying data sharing and enabling on-demand page migration. It is foundational for implementing NUMA-like abstractions across CPU-GPU systems, as the memory management unit (MMU) handles the physical location of data transparently to the programmer.
Peer-to-Peer (P2P) Access
A capability that allows GPUs within the same system to directly read from and write to each other's device memory over a high-speed interconnect like NVLink or PCIe, bypassing host memory. This creates a NUMA-like topology where accessing a peer GPU's memory has lower latency and higher bandwidth than routing through the CPU. Enabling P2P is critical for scaling multi-GPU training and inference workloads, as it reduces inter-GPU communication bottlenecks.
Memory Tiering
A system architecture that organizes different types of memory (e.g., HBM, GDDR, DDR, NVMe) into a hierarchy of performance and capacity. Data is automatically promoted to faster tiers (like GPU HBM) or demoted to slower tiers (like CPU DDR or NVMe storage) based on usage heat. This is a dynamic extension of the NUMA principle, managing non-uniform access across media types rather than just physical distance. It's essential for workloads that exceed local GPU memory capacity.
Cache Coherency
The uniformity of shared resource data that ends up stored in multiple local caches (e.g., L1/L2 caches across CPU cores or GPU SMs). Protocols like MESI ensure all processors see a consistent view of memory by propagating writes. In NUMA systems, maintaining coherency across NUMA nodes introduces significant latency overhead. This is a key differentiator: some high-performance computing (HPC) NUMA systems opt for non-cache-coherent (NCC) NUMA to avoid this penalty, placing the burden of consistency on the software.
High Bandwidth Memory (HBM)
A type of stacked memory technology where DRAM dies are vertically integrated with a GPU or CPU using through-silicon vias (TSVs). HBM offers extremely high bandwidth and improved energy efficiency compared to traditional GDDR memory. In a multi-GPU NUMA system, each processor has its own local HBM, which is the fastest memory tier. Optimizing for NUMA involves minimizing accesses to remote HBM across the interconnect and maximizing use of local HBM.
Memory Access Pattern
Describes the order and structure in which threads within a GPU warp or CPU core read from or write to memory. Coalesced access patterns are optimal for achieving maximum bandwidth. In a NUMA context, the access pattern must also consider locality. Accessing memory from a thread running on a core within the same NUMA node as the memory (local access) is vastly faster than accessing memory attached to a remote node. Data placement and thread affinity must be aligned.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us