Qmd: ускорение взаимодействия ядра с базой данных в многоядерных процессорах - новости

Qmd: ускорение взаимодействия ядра с базой данных в многоядерных процессорах - новости
Qmd: ускорение взаимодействия ядра с базой данных в многоядерных процессорах - новости
Anonim

QMD: ускорение связи Core-to-Core в многоядерных процессорах

Исследователи разработали простой, но эффективный метод связи между ядрами в многоядерных процессорах.

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

Узкое место в добавлении дополнительных ядер

Двухъядерные и четырехъядерные процессоры продемонстрировали значительное улучшение по сравнению с обычными. Тем не менее, темпы улучшения уменьшились по мере того, как было добавлено больше и больше ядер. Это как-то связано с тем, что сохранение когерентности кэша между ядрами является сложной задачей. Проще говоря, когерентность кэширования гарантирует, что ядра находятся на одной странице.

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

Понятно, что для управления этим процессом требуется относительно большая память и некоторые вычислительные ресурсы. В 64-ядерном процессоре память для поддержания когерентности кэша, называемая «память каталога», занимает почти 12% общего кэша. По мере увеличения количества ядер процент от этого возрастает.

В прошлом году исследователи MIT предложили метод, называемый Tardis (после британского научно-фантастического шоу, Doctor Who), который мог бы значительно уменьшить размер требуемой памяти каталога. Несмотря на обычные методы, в которых размер памяти каталога пропорционален количеству ядер, память, используемая в Tardis, увеличивается только с логарифмом числа ядер.

Когерентность кэша не только требует значительной памяти, но и некоторых вычислительных усилий. Поскольку процессор становится занятым, сохраняя когерентность кэша, он не может достичь своей потенциальной возможности при решении проблемы. В то время как Tardis нацелен на сокращение требуемой памяти, недавнее исследование, проведенное группой исследователей из Университета штата Северная Каролина и Intel, нацелено на ускорение процесса путем установления высокоскоростной надежной связи между ядрами.

Связь между ядрами становится все более важной по мере увеличения количества ядер. Например, связь между 18 ядрами процессора Intel Haswell-EX Xeon E7 V3 является реальной проблемой. По словам Яна Солихина, профессора электротехники и вычислительной техники в Университете штата Северная Каролина, участвующего в исследовании, связь между ядрами становится узким местом многоядерных процессоров.

Image
Image

Компактная компоновка современных процессоров. Изображение предоставлено IEEE

Переход от программного обеспечения к оборудованию

В последнее время различные исследовательские группы предложили проекты, которые улучшают скорость, выгружая часто используемые функции системы из программного обеспечения в аппаратные реализации. Например, в конце закона Мура Microsoft прибегает к реализации некоторых алгоритмов AI своих серверов на FPGA, а не на программном обеспечении. С серверами на базе FPGA компания утверждает, что для данной работы транзистора все же можно добиться улучшения скорости до 2030 года.

В то время как Microsoft применила этот метод для ускорения своих серверов, команда Solihin предложила аппаратные реализации для ускорения взаимодействия ядра с базой данных в многоядерном процессоре. По словам Солихина, есть только один способ повысить производительность за счет повышения энергоэффективности: переход от программного обеспечения к оборудованию. Он добавляет, что главная задача состоит в том, чтобы выяснить, используется ли какая-то конкретная функция достаточно часто, чтобы ее реализовать на аппаратном уровне или нет.

Решение: очередь оборудования

В настоящее время связь между ядрами выполняется путем отправки и приема команд программного обеспечения между ядрами. Поэтому процессору необходимо выделить значительную часть своих вычислительных ресурсов для выполнения этих программных команд.

Команда Солихина предложила использовать аппаратную очередь вместо программной. Этот метод, называемый устройством управления очередью (или QMD для краткости), был протестирован на 16-ядерном процессоре. В этом случае обработка пакетов, которая часто выполняется на сетевых узлах, была ускорена в 20 раз по сравнению с обычными проектами на основе программного обеспечения. Исследование показывает, что по мере увеличения количества ядер увеличение скорости QMD становится еще более выраженным.

Шрини Девадас, эксперт по MIT в системах управления кешем, который участвовал в Tardis, отмечает, что QMD имеет краткосрочный потенциал, и Intel нуждается в добавлении небольшого количества аппаратного обеспечения для достижения значительного улучшения. Напротив, Tardis является радикальным подходом, который может быть использован в процессорах в будущем.

Хотя исследователи Intel не комментируют коммерциализацию QMD в ближайшем будущем, они исследуют его потенциал, и мы можем ожидать, что вскоре многоядерная обработка будет еще более мощной.