【问题标题】:Which architecture to call Non-uniform memory access (NUMA)?哪种架构可以调用非统一内存访问 (NUMA)?
【发布时间】:2023-04-03 21:33:01
【问题描述】:
根据wiki:非统一内存访问 (NUMA) 是一种用于多处理的计算机内存设计,其中内存访问时间取决于相对于处理器的内存位置。
但不清楚它是关于包括缓存在内的任何内存还是仅关于主内存。
例如 Xeon Phi 处理器有下一个架构:
所有内核对主存 (GDDR) 的内存访问都是相同的。同时,不同的内核对二级缓存的内存访问是不同的,因为首先检查本机二级缓存,然后通过环检查其他内核的二级缓存。 是 NUMA 还是 UMA 架构?
【问题讨论】:
标签:
cpu
intel
cpu-architecture
numa
【解决方案1】:
从技术上讲,NUMA 可能仅用于描述对主内存的非均匀访问延迟或带宽。 (如果 NUMA 因子 [延迟远/延迟接近或带宽远/带宽接近] 很小 [例如,与由于 DRAM 行未命中、缓冲等引起的动态可变性相当],那么系统可能仍被视为 UMA。)
(从技术上讲,Xeon Phi 的 NUMA 系数很小但非零,因为环互连上的每一跳都需要时间[一个内核可能距一个内存控制器仅一跳,而距最远的一个则数跳]。)
已采用术语 NUCA(非统一缓存访问)来描述对不同缓存块具有不同访问延迟的单个缓存。与核心或核心集群更紧密相关的共享缓存级别也属于 NUCA,但单独的缓存层次结构(我相信)不能证明该术语的合理性(即使窥探可能会在“远程”中找到所需的缓存块缓存)。
我不知道有任何术语用于描述具有与窥探相关的可变缓存延迟(即具有单独的缓存层次结构)和小/零 NUMA 因子的系统。
(由于缓存可以透明地复制和迁移缓存块,NUMA的概念就不太合适了。[是的,操作系统可以透明地迁移和复制页面到NUMA系统中的应用软件,所以这个区别不是绝对的。] )
也许有点有趣的是,Azul Systems 声称其 Vega 系统为 UMA across sockets:
Azul 构建是“UMA”,因为我们的程序没有很好理解的访问模式。相反,模式大多是随机的(在缓存过滤之后),因此具有统一的中等速度而不是 1/16 的内存快和 15/16 的慢是有意义的。
【解决方案2】:
我肯定会选择 UMA。以你自己的身份查看了NUMA Wiki,UMA 的 Wiki 页面实际上提供了更多细节:
在 UMA 架构中,每个处理器都可以使用私有缓存。 WIKI
这就是我选择 UMA 的原因,也是因为,正如您所说,一旦 L2 丢失,它会转到通用内存目录链接并使用内存控制器(图片中的 MC)找到正确的物理页面