Сотрудница Google нашла способ резко снизить задержки оперативной памяти за счёт производительности процессора

Сотрудница по кибербезопасности Google скрывающаяся под ником LaurieWired опубликовала небольшую, но крайне любопытную научную работу, с описанием метода снижения задержек оперативной памяти. Данная проблема существует ещё с 1960-х годов, с момента построения модулей ОЗУ как токовых, но только сейчас появился метод её решения.

Итак, суть вопроса: принцип работы оперативной памяти, какой бы она быстрой не была, имеет существенный недостаток в распределении приоритетов на обработку процессов. Всё дело в том, что канал ОЗУ должен периодически вычищать ячейки памяти перед занесением новых данных и если в этот момент происходит обращение от нового процесса, то его исполнение начинает задерживаться на внушительные сотни и тысячи наносекунд. Кажется значения ничтожные, но с учётом большого объёма данных и самого блока данных реальные простои огромны.

Именно этот процесс LaurieWired и нашла способ оптимизировать. Она предложила метод названный как TailSlayer, опирающийся на аппаратные возможности ЭВМ. TailSlayer предполагает дублировать данные разных каналов памяти с помощью нескольких процессорных ядер, контролируя временные рамки процесса очистки ячеек. Следовательно появляется возможность более логично отправлять задачи на доступный канал, снижая тем самым временные задержки.

В виде наглядного примера были проведены несколько экспериментов с ЭВМ на базе процессоров AMD, ARM и Intel, в рамках которых временные задержки снизились на 89-93%. Гораздо же интереснее оказалась оптимизация серверного Xeon(а следовательно под результат попадают все серверные процессоры), обладающего гораздо бОльшим числом каналов памяти: в данном случае ежетактные задержки снижались с 1700нс до 113нс.

Кому подойдёт данный метод?

Однозначно метод имеет крайне серьезный недостаток — выделение одного процессорного ядра на обсчёт одного канала памяти. В случае с серверными процессорами с «большими» ядрами, где каждый вычислительный блок получается очень дорогим, TailSlayer явно не подойдёт, ведь получаемая вычислительная выгода компенсируется потерей ядер. Зато на северных CPU с большим числом «малых» ядер(например у AMD есть чипы со 192 ядрами), потеря 8-16 блоков ради возрастающей общей производительности уже очень хороший вариант.

Ну и конечно такой метод подойдёт для быстрых игровых компьютеров. Игрушки редко забирают на обработку данных более восьми ядер, а это значит 12ти или 16ти — ядерные процессоры вполне могут выделить блоки под оба типа задач, наращивая общую производительность «на ровном месте».

Вам может быть интересно: В Египте нашли второго Сфинкса

The post Сотрудница Google нашла способ резко снизить задержки оперативной памяти за счёт производительности процессора appeared first on AMD news.

Источник: amd.news
0 0 голоса
Рейтинг новости
2
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии