Чи кеш-пам'ять L3 ділиться всіма ядрами для процесора Sandy-Bridge E Xeon?


12

У пов'язаному питанні я запитав про переваги системи з подвійним процесором з точки зору подвоєння кешу L3.

Однак я помітив, що процесори серії Xeon E5-2600 мають рівно 2,5 Мб кешу L3 на ядро .

Це змушує мене вважати, що операційна система резервує 2,5 Мб кешу L3 на ядро. Однак у мене також суперечливе враження, що кеш L3 розділяється між усіма ядрами. Напрочуд мало інформації або дискусій з цього приводу.

Моє основне занепокоєння полягає в тому, чи можуть фонові програми з низьким пріоритетом "зависати" кеш L3 та уповільнити продуктивність для додатків із вищим пріоритетом переднього плану. Дві конкретні проблеми з ефективністю, які у мене мотивують це питання.

  1. Для компіляції певної програми C ++ потрібна 25 хвилин для моєї поточної системи розробки в VS 2008, тоді як для іншої системи вона йде набагато швидше, вимагаючи лише 5 хвилин на VS 2008 з однаковими налаштуваннями - незважаючи на те, що у мене є висококласний i7- 970 ЦП і достатня кількість оперативної пам’яті.

  2. Програми часто займають до 20 секунд (тобто відображати їх головне вікно) у моїй системі; і, відповідно до зазначеного, для оболонки Windows потрібно до 10 секунд, щоб відобразити контекстне меню Windows Explorer (і пов’язані з цим поведінки також займають довгий час), незважаючи на мої спроби обмежити записи контекстного меню (наразі, можливо, ще 10 додаткових) за замовчуванням).

Моя система, безумовно, завантажена дуже великою кількістю програм, які я встановив (і видалив) протягом багатьох років, але я все ж намагаюся впорядкувати систему.

У мене також багато запущених фонових програм з низьким пріоритетом; зокрема, надмірне хмарне програмне забезпечення для резервного копіювання, таке як CrashPlan, яке, як правило, складає 25% загального використання процесора в цій 6-ядерній 12-потоковій системі.

Я отримаю новий комп’ютер. Я знаю, що я продовжуватиму працювати з багатьма фоновими програмами та встановлювати / видаляти багато програм. Якби я подумав, що отримання системи з подвійним процесором, яка подвоює не тільки ядра, але і кеш L3, допоможе подолати жахливу ефективність компілятора C ++ та загальне сповільнення роботи системи, я б із задоволенням це зробив.

Не повинно бути причин, чому система високого класу працює так повільно, навіть з багатьма програмами та фоновими програмами. Але якщо мої проблеми будуть виникати незалежно від того, яку потужність процесора і кеш-пам'ять L3 я даю системі, просто тому, що в мене встановлено та працює багато програм і фонових програм, я не хочу витрачати 2500 доларів додаткового долара на подвійний процесор система, яка не допоможе вирішити мою проблему.

Будь-які пропозиції, зокрема щодо мого запитання щодо того, чи кеш L3 ділиться між усіма ядрами (наприклад, фонові додатки з низьким пріоритетом, можливо, притискають кеш L3, уповільнюють програми з вищим пріоритетом), а точніше, якщо він прив’язаний до окремих сердечники, були б вдячні.


Хороший питання, на який я особисто не маю гарної відповіді, крім того, щоб сказати, що я також був під враженням, що L3 ділився. Я б просто запитав, чому на землі ти називаєш цих "другого покоління" Xeons, коли "Xeon" вже десятиліття є продуктом Intel. (Якщо це за аналогією, що мікросхеми Sandy Bridge i3 /
5/7

Intel називає лінійку процесорів i7-2600 як "2-е покоління" ( ark.intel.com/products/family/59136/… ). Під "Xeon 2-го покоління" я маю на увазі еквівалентний випуск процесора архітектури Xeon Sandy-Bridge E архітектури 6 березня 2012 року ( en.wikipedia.org/wiki/… ).
Dan Nissenbaum

1
Це аналогія, яку я думав, що ти робиш. Це погано (це i7s другого покоління, але це не Xeons 2-го покоління), і я змінив би назву IMO ... Я очікував, що знайду питання про 12-річних процесорах, і це може затримати багато людей натиснувши сюди. Може змінити "2-е покоління" на "Піщаний міст-Е".
Shinrai

Відповіді:


13

У цих процесорах кожне фізичне ядро ​​має власний кеш L2. Кеш L3 розділяється всіма ядрами та є всеохоплюючим, тобто будь-які дані, що знаходяться в кеші L2 будь-якого ядра, також знаходяться в кеші L3.

Хоча це може здатися витратою простору L3, воно фактично робить L3 неоціненним для прискорення операцій з міжядерною пам'яттю. Основне призначення кешу L3 - діяти як розподільний щит та площадки для стрижнів. Наприклад, якщо одне ядро ​​хоче знати, чи може область пам'яті кешуватися іншим ядром, вона може перевірити кеш L3. Якщо інформація була оброблена одним ядром, а наступний повинен бути оброблений іншим ядром, вони передають її через кеш L3, а не повільнішу пам'ять без мікросхем. Крім того, його ефективність не так вже й велика, окрім незвичних алгоритмів - кеш L2 досить великий для дрібних речей, а кеш L3 занадто малий для великих речей.

Отже, хоча кожне ядро ​​має власний кеш-пам'ять L2 256 КБ і ефективно 256 КБ зарезервовано в кеш-пам'яті L3, баланс розділяється на всі ядра. Менш важлива активність в інших ядрах може зашкодити виконанню більш важливого завдання, яке виграє від використання простору L3. Але з причин, про які я згадував, це, як правило, не має значного ефекту на практиці, і, як правило, не варто турбуватися за те, щоб оптимізувати операції "масових даних" (наприклад, стиснення та сканування), щоб мінімізувати забруднення кешу. (Наприклад, за допомогою тимчасових операцій.)


0

Я розумію, що всі рівні кешу реалізовані безпосередньо на мікросхемі, і що L2 і L3 є одними і тими ж (що лише Intel визнає різницю, AMD поєднує їх.). Зважаючи на це, я б міг уявити, що кеш L3 на процесорах не поділяється між процесорами на подвійній розетці материнської плати. Це також має сенс пам’ятати, що типово бачити окремі канали пам’яті для оперативної пам’яті на процесор.

Хтось мене виправить, якщо я помиляюся.


L2 і L3 - це зовсім не одне і те ж. На останніх розробках Intel L1 / L2 є основними та малими (32k L1 I $ & D $ / 256k уніфікований L2), тоді як L3 включений та поділяється GPU та всіма ядрами. L1 / L2 є фізично окремими, але на зразок служать подібним цілям (тобто роблять швидкий доступ до пам'яті для одного ядра). Інклюзивний L3 має ще одну мету: узгодженість між ядрами (і GPU). Дивіться відповідь @ DavidSchwartz
Пітер Кордес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.