LINUX.ORG.RU

Различный размер кеша на разных NUMA нодах

 cpu cache,


0

2

Привет, ЛОР!

А расскажи мне вот что: как часто ты встречаешь ситуацию, когда в системе больше одной NUMA-ноды (чаще всего, потому больше одного физического CPU) и у них различный размер L2 и L3 кеша? Слышал про такое на каких-то армах. Так же вроде как некоторые серверные мат.платы позволяют ставить разные процессоры одного поколения, но я не уверен.

Скажи, как с таким вообще жить? Алсо будет круто, если у кого есть такая система под рукой и мне можно там пару тестов будет погонять.

Спасибо, ЛОР!

  1. См описание CAT and CDP features на процессорах.
  2. Для оптимизации критичных участков Интел предлагает пользоваться симулятором (см. enable-cache-simulation в доке на Intel Perfomance Advisor).
  3. Чуть менее чем все модели позволяют урезать кеш, в том числе отключать отдельные сбойные половины/четвертины (но это «темный» официально примерно не документированный путь).
  4. Особо ничего не мешает работать не-одинаковым процессорам (главное совместимость по MESI), вплоть до разных архитектур. Технически же есть разница между SMP, NUMA-SMP и NUMA-non-SMP. Т.е. весь софт начиная от BIOS обычно рассчитывает на SMP - на одинаковые CPU и (например) не пытается отслеживать набор features для каждого CPU в отдельности.
  5. Практически же BIOS может тупо «на всякий случай» заглушить машину если процессоры разные и мало-кому в голову придет собирать такую NUMA. Экспериментаторы/оверклокеры такое многократно делали, но в целом лучше ориентироваться на пункты #1 и #2.
Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)

в системе больше одной NUMA-ноды (чаще всего, потому больше одного физического CPU) и у них различный размер L2 и L3 кеша?

А в чем проблема вообще? Размер линии кэша одинаков? Одинаков. Протоколы межпроцессорного взаимодействия стандартны? Стандартны. Почему вообще NUMA-узлы должны интересоваться размерами кэшей друг друга?

byko3y ★★★★
()
Ответ на: комментарий от byko3y

А в чем проблема вообще? Размер линии кэша одинаков? Одинаков.

Иногда и нет. Например, как здесь. Но это не мой случай.

Почему вообще NUMA-узлы должны интересоваться размерами кэшей друг друга?

Узлы не должны, а вот код, который на них выполняется, весьма может быть в этом заинтересован. Есть куча программ, которые при работе учитывают размер кэша, и если их внезапно перенесут на другую ноду, можно словить ништяков.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от Deleted

Для оптимизации критичных участков Интел предлагает пользоваться симулятором (см. enable-cache-simulation в доке на Intel Perfomance Advisor).

Вот это меня и интересовало, спасибо. К слову, в QEMU относительно недавно добавили эмуляцию L3, но доков по этому нет и как его размер указать, непонятно.

hateyoufeel ★★★★★
() автор топика

Найди любой более-менее свежий двухсокетный Интел и настрой ему на одной ноде Resource Director (resctrl), чтобы меньше L3 твоему тесту досталось.

mv ★★★★★
()
Ответ на: комментарий от Deleted

grep-ни /proc/cpuinfo на наличие cat_l3 (управление L3) и cat_l2 (управление L2).

Нет, к сожалению этого нет.

hateyoufeel ★★★★★
() автор топика
10 февраля 2020 г.

Почти некропост, но все же.

Ты ведь хаскелист?

Так на кой хаскелисту может понадобиться все это, тогда как у хаскеля нет никакого контроля над layout’ом данных?

anonymous
()
Ответ на: комментарий от anonymous

Ты ведь хаскелист?

Нет, я просто пишу на нём за деньги.

Так на кой хаскелисту может понадобиться все это, тогда как у хаскеля нет никакого контроля над layout’ом данных?

Эта задача не то чтобы имеет к хаскеллу отношение, но рантайм хаскелла умеет работать с NUMA и учитывать локальность памяти при аллокации.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от anonymous

Да нет, на многопроцессорных системах косяки с NUMA вылезают довольно скоро и быстро. Хотя обычно первое и последнее, что делают в этом случае, это прибивают намертво процесс к одной ноде.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Разве для NUMA важно что и где?

Насколько помню они могут быть на разных платформах как на одном компе (например центральный процессор и разные видеокарты в слотах), так и на разных компьютерах в принципе на разных аппаратных платформах с доступом по сети (кластер).

HIS
()
Последнее исправление: HIS (всего исправлений: 1)
Ответ на: комментарий от HIS

Разве для NUMA важно что и где?

Для софта, который работает, важно что и где.

Насколько помню они могут быть на разных платформах как на одном компе (например центральный процессор и разные видеокарты в слотах), так и на разных компьютерах в принципе на разных аппаратных платформах с доступом по сети (кластер).

Здесь имеется ввиду случай с несколькими процессорами с одинаковым набором команд. Например, сервер с несколькими Xeon’ами.

hateyoufeel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.