For 64-bit this is recommended if the system is Intel Core i7
(or later), AMD Opteron, or EM64T NUMA.
首先,请注意,英特尔酷睿i7只是一个市场名称,短语英特尔酷睿i7(或更高版本)非常模糊。那是什么意思呢?
Linux内核 Kconfig
帮助文本编辑提到了Intel Core 7i,然后更正为Intel Core i7,已于2008年11月完成。提交日志显示为:
x86: update CONFIG_NUMA description
Impact: clarify/update CONFIG_NUMA text
CONFIG_NUMA description talk about a bit old thing.
So, following changes are better.
o CONFIG_NUMA is no longer EXPERIMENTAL
o Opteron is not the only processor of NUMA topology on x86_64 no longer,
but also Intel Core7i has it.
合理地讲,它只能指当时按规格发布或宣布的Intel Core i7 CPU。那就是基于Nehalem微体系结构的Bloomfield处理器,它将内存控制器从北桥转移到CPU(AMD于2003年用Opteron / AMD64完成了此任务),并引入了QuickPath Interconnect / QPI(作为AMD HyperTransport的工具)用于CPU / CPU和CPU / IOH(IO集线器,前北桥)互连。
Bloomdale i7 CPU是新的Core i {3,5,7}命名方案中的第一批条目。因此,在编写该Linux文档文本时,i7并未专门针对Core i7,而与i5(于2009年9月首次发布)或i3(于2010年1月首次发布)相对,但极有可能是新的Nehalem微体系结构与其集成的内存控制器和QPI。
从11/2008开始,英特尔在i7上发布了新闻稿(英特尔推出了星球上最快的处理器),其中说酷睿i7处理器的存储带宽是以前的英特尔“极限”平台的两倍以上,但根本没有提到NUMA。 。
我认为原因是NUMA与台式机无关,甚至对“极致”台式机也没有关系。
NUMA对于具有多个CPU插槽(而不是一个插槽中的多个内核)和专用物理内存访问通道(而不仅仅是一个内存控制器)的昂贵服务器非常重要,因此每个CPU都有其专用的本地内存,与它“更近”而不是其他CPU的内存。(请考虑使用8个插槽,64核,256 GB RAM。)NUMA表示,CPU不仅可以访问其自身的本地内存,而且还可以访问远程内存(另一个CPU的本地内存),尽管成本更高。NUMA是共享内存体系结构(例如SMP)和分布式内存体系结构(例如,MPP)的综合体,其中SMP共享所有内存对所有内核均可用,MPP(大规模并行处理)为每个节点提供专用的内存块。它是MPP,但对于应用程序来说看起来像SMP。
台式机主板没有双插槽,包括极速i7版本在内的Intel台式机CPU缺少用于双插槽配置的附加QPI链接。
查看Wikipedia QPI文章以了解QPI与NUMA的关系:
在单处理器主板上,最简单的形式是使用单个QPI将处理器连接到IO集线器(例如,将Intel Core i7连接到X58)。在体系结构更复杂的情况下,单独的QPI链接对连接主板上网络中的一个或多个处理器以及一个或多个IO集线器或路由集线器,从而允许所有组件通过网络访问其他组件。与HyperTransport一样,QuickPath体系结构假定处理器将具有集成的内存控制器,并启用非统一的内存访问(NUMA)体系结构。
[…]
尽管某些高端Core i7处理器公开了QPI,但其他用于单插槽板的“主流” Nehalem台式机和移动处理器(例如,Lynnfield / Clarksfield及其后续系列的LGA 1156 Core i3,Core i5和其他Core i7处理器)不要在外部公开QPI,因为这些处理器不打算参与多路插座系统。但是,这些芯片内部使用QPI […]
多插槽服务器板上的Intel Nehalem CPU进行非本地内存访问的方式是通过QPI。同样在关于NUMA的文章中:
英特尔在2007年末宣布了其Nehalem和Tukwila CPU与x86和Itanium服务器的NUMA兼容性。两个CPU系列共享一个共同的芯片组。互连称为英特尔快速路径互连(QPI)。AMD使用HyperTransport及其Opteron处理器(2003)实现了NUMA。
从11/2008回来查看此报告,以了解英特尔在i7上禁用了两个QPI链接之一,从而禁用了适用于NUMA的双路插槽配置:
Nehalem的第一个高端台式机实现的代号为Bloomfield,基本上与最终应用于两路服务器的芯片相同。因此,如上图所示,Bloomfield芯片具有两个板载QPI链接。但是,第二个QPI链接未使用。同样,在基于该体系结构的2P服务器中,第二个互连将链接两个套接字,并且在该套接字上,CPU将共享高速缓存一致性消息(使用新协议)和数据(因为内存子系统将为NUMA),这非常相似去Opteron。
因此,我一直在回避您有关我的Google研究结果的问题……您是在问为什么Linux文档开始建议在2008年末启用它?不确定这个问题是否可以证明是正确的答案……我们将不得不询问文档编写者。启用NUMA不会使台式机CPU用户受益,但同时也不会给他们带来很大的伤害,同时又可以帮助多插槽用户,为什么不呢?这可能是合理的。发现这一点反映在关于在Arch Linux跟踪器上禁用NUMA的讨论中(FS#31187-[linux]-从配置文件禁用NUMA)。
文档作者可能还想到了Nehalem体系结构的NUMA潜力,在撰写本文时,11/2008 Core i7处理器(920、940、965)是唯一的代表。NUMA真正有意义的首批Nehalem芯片可能是具有双QPI链接的Q1 / 2009 Xeon处理器,例如Xeon E5520。
CONFIG_NUMA
为core i7
?