For 64-bit this is recommended if the system is Intel Core i7
(or later), AMD Opteron, or EM64T NUMA.
По-перше, зауважте, що Intel Core i7 - це лише маркетингове позначення, а фраза Intel Core i7 (або пізніша версія ) дуже розпливчаста. То що це могло означати?
Зміни Kconfig
тексту довідки для ядра Linux, де згадується Intel Core 7i , потім виправлені до Intel Core i7 , були виконані в листопаді 2008 року.
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, випущених або оголошених за специфікацією до того часу. Це були б процесори Bloomfield , засновані на мікроархітектурі Nehalem , яка перемістила контролер пам'яті з Northbridge на процесор (що AMD зробила в 2003 році з Opteron / AMD64) і запровадила QuickPath Interconnect / QPI (як кулон до HyperTransport AMD) для взаємодії CPU / CPU та CPU / IOH (концентратор IO, колишній Північний міст).
Процесори Bloomdale i7 були першими записами в новій схемі імен Core i {3,5,7} . Тож, коли цей текст документа Linux був написаний, i7 спеціально не посилався на Core i7 на відміну від i5 (перший в 09/2009) або i3 (перший в 01/2010), але, швидше за все, до нової мікроархітектури Nehalem з інтегрований контролер пам'яті та QPI.
Прес-реліз Intel від 11/2008 про i7 ( Intel запускає найшвидший процесор на планеті ), в якому йдеться про те, що процесор Core i7 більше ніж удвічі збільшує пропускну здатність пам’яті попередніх платформ Intel «Extreme» , але NUMA взагалі не згадує. .
Причина в тому, що я думаю, що NUMA не має значення для настільних ПК, навіть не для "екстремальних".
NUMA має значення для дорогих серверів, які мають декілька процесорних розеток (не лише кілька ядер в одному сокеті) з виділеними смугами фізичної пам'яті (не лише один контролер пам'яті), так що кожен процесор має свою виділену локальну пам'ять, яка "ближче" до нього ніж пам'ять інших процесорів. (Подумайте, 8 розеток, 64 ядер, 256 ГБ оперативної пам’яті.) NUMA означає, що процесор також може отримати доступ до віддаленої пам’яті (локальної пам’яті іншого процесора) на додаток до власної локальної пам’яті, хоча і з більшою ціною. NUMA - це синтез спільної архітектури пам’яті на зразок SMP, де вся пам’ять однаково доступна для всіх ядер, і розподіленої архітектури пам’яті, як MPP (Massively Parallel Processing), яка надає кожному вузлу виділений блок пам’яті. Це MPP, але це схоже на SMP для програми.
На материнських платах настільних ПК немає подвійних розеток, а настільні процесори Intel, включаючи екстремальні версії i7, не мають додаткового посилання QPI для конфігурації подвійного сокета.
Перегляньте статтю Вікіпедії QPI, щоб побачити, наскільки QPI має відношення до NUMA:
У своїй найпростішій формі на материнській платі з однопроцесорним процесом один QPI використовується для підключення процесора до концентратора IO (наприклад, для підключення Intel Core i7 до X58). У більш складних екземплярах архітектури окремі пари каналів QPI з'єднують один або кілька процесорів і один або кілька вузлів вводу-виводу або концентраторів маршрутизації в мережі на материнській платі, дозволяючи всім компонентам отримати доступ до інших компонентів через мережу. Як і у HyperTransport, архітектура QuickPath передбачає, що процесори матимуть інтегровані контролери пам'яті та дозволяють нерівномірну архітектуру доступу до пам'яті (NUMA).
[…]
Хоча деякі процесори Core i7 високого класу демонструють QPI, інші «основні» процесори Nehalem настільних і мобільних процесорів, призначені для плати з однорозетними системами (наприклад, LGA 1156 Core i3, Core i5 та інших процесорів Core i7 з сімей Lynnfield / Clarksfield та наступників) не піддавайте QPI зовні, оскільки ці процесори не призначені для участі в системах з декількома розетками. Однак QPI використовується всередині цих чіпів […]
Те, як процесор Intel Nehalem на серверній панелі з декількома сокетами здійснює доступ до не локальної пам'яті, здійснюється через QPI. Також у статті про NUMA :
В кінці 2007 року Intel оголосила про сумісність NUMA для своїх серверів x86 та Itanium разом із процесорами Nehalem і Tukwila. Обидві сім'ї процесора мають спільний чіпсет; взаємозв'язок називається Intel Quick Path Interconnect (QPI). AMD впровадила NUMA разом зі своїм процесором Opteron (2003), використовуючи HyperTransport.
Перегляньте цей звіт ще з 11/2008, щоб побачити, що Intel відключила одне з двох посилань QPI на i7, тим самим відключивши конфігурацію подвійного сокета, де застосовується NUMA:
Ця перша, висококласна реалізація Nehalem для настільних комп'ютерів має кодове ім'я Bloomfield, і це, по суті, той самий кремній, який з часом повинен перейти на сервери з двома сокетами. Як результат, мікросхеми Bloomfield оснащені двома QPI-ланками на борту, як вказує знімок, зроблений вище. Однак друге посилання QPI не використовується. На серверах 2P, що базуються на цій архітектурі, цей другий взаємозв'язок з'єднає два сокети, а над ним процесори поділяться повідомленнями про когерентність кешу (за допомогою нового протоколу) та даними (оскільки підсистема пам'яті буде NUMA) - ось, дуже схоже до Оптерона.
Тож я відхилився від вашого питання, що стосується моїх результатів досліджень Google… Ви запитуєте, чому документи Linux почали рекомендувати ввімкнути його наприкінці 2008 року? Не впевнений, що на це питання є вірно правильна відповідь… Нам доведеться запитати письменника-доктора. Увімкнення NUMA не приносить користі користувачам настільних процесорів, але також не шкодить їм, одночасно допомагаючи користувачам з декількома сокетами, так чому б ні? Це могло бути обґрунтуванням. Виявлено, що відображено в дискусії про відключення NUMA на трекері Arch Linux ( FS # 31187 - [linux] - відключення NUMA від конфігураційних файлів ).
Автор doc також міг подумати про потенціал NUMA в архітектурі Nehalem, який, коли документ був написаний, процесори Core i7 11/2008 (920, 940, 965) були єдиними представниками; Перші мікросхеми Nehalem, для яких NUMA справді мав би сенс, - це, ймовірно, процесори Xeon Q1 / 2009 з подвійним QPI-ланкою, наприклад Xeon E5520 .
CONFIG_NUMA
вcore i7
?