Однако в 21 веке, чтобы оправдать ожидания потребителей в отношении постоянного увеличения вычислительной мощности, производителям микросхем пришлось начинать оснащать свои микросхемы все большим количеством ядер или процессоров. А по мере увеличения количества ядер управление кешем становится намного сложнее.Даниэль Санчес, доцент кафедры электротехники и информатики Массачусетского технологического института, считает, что пора передать управление кешем программному обеспечению.
На этой неделе на Международной конференции по параллельным архитектурам и методам компиляции Санчес и его ученик Натан Бекманн представили новую систему, получившую название Jigsaw, которая отслеживает вычисления, выполняемые многоядерным чипом, и соответствующим образом управляет кэш-памятью.В экспериментах, моделирующих выполнение сотен приложений на 16- и 64-ядерных чипах, Санчес и Бекманн обнаружили, что Jigsaw может ускорить выполнение в среднем на 18 процентов — с более чем двукратными улучшениями в некоторых случаях — при фактическом снижении энергии. потребление на целых 72 процента.
И Санчес считает, что улучшения производительности, предлагаемые Jigsaw, должны только увеличиваться с увеличением количества ядер.Местоположение, местоположение, местоположение
В большинстве многоядерных чипов каждое ядро имеет несколько небольших частных кешей. Но есть также так называемый кеш последнего уровня, который используется всеми ядрами. «Этот кэш составляет порядка 40–60 процентов чипа», — говорит Санчес. «Это значительная часть площади, потому что она так важна для производительности.
Если бы у нас не было этого кеша, некоторые приложения работали бы на порядок медленнее».Физически кэш последнего уровня разбит на отдельные банки памяти и распределен по чипу; для любого данного ядра доступ к ближайшему банку занимает меньше времени и потребляет меньше энергии, чем доступ к более дальним. Но поскольку кеш последнего уровня используется всеми ядрами, большинство чипов назначают данные банкам случайным образом.
Jigsaw, напротив, отслеживает, какие ядра к каким данным чаще всего обращаются, и на лету вычисляет наиболее эффективное назначение данных банкам кешей. Например, данные, используемые исключительно одним ядром, хранятся рядом с этим ядром, тогда как данные, к которым все ядра обращаются с одинаковой частотой, хранятся рядом с центром чипа, что сводит к минимуму среднее расстояние, которое ему приходится преодолевать.Jigsaw также варьирует объем кеш-памяти, выделенного для каждого типа данных, в зависимости от способа доступа к ним.
Данные, которые используются повторно, часто получают больше места, чем данные, к которым обращаются нечасто или только один раз.В принципе, оптимизация распределения кэш-памяти требует оценки того, как чип в целом будет работать с учетом всех возможных распределений кэш-пространства для всех вычислений, выполняемых на всех ядрах. Этот расчет был бы чрезмерно трудоемким, но, игнорируя некоторые особенно запутанные сценарии, которые крайне маловероятны на практике, Санчес и Бекманн смогли разработать приближенный алгоритм оптимизации, который работает эффективно даже с учетом количества ядер и различных типов данные резко возрастают.
Быстрое изучениеКонечно, поскольку оптимизация основана на наблюдениях Jigsaw за активностью чипа, «это оптимальное решение, если предположить, что в следующие 20 миллисекунд программы будут вести себя так же, как в последние 20 миллисекунд», — говорит Санчес. «Но есть очень убедительные экспериментальные доказательства того, что программы обычно имеют стабильные фазы в сотни миллисекунд или даже секунд».Санчес также указывает, что новый документ представляет собой просто «первый шаг» его группы по передаче управления кешем программному обеспечению.
В дальнейшем они будут исследовать, среди прочего, совместную разработку оборудования и программного обеспечения для дальнейшего повышения эффективности, а также возможность позволить самим программистам классифицировать данные в соответствии с их шаблонами доступа к памяти, чтобы у Jigsaw не было полностью полагаться на наблюдение для оценки распределения памяти.«Все больше и больше наших вычислений происходит в центрах обработки данных», — говорит Джейсон Марс, доцент кафедры информатики в Мичиганском университете. «В пространстве центра обработки данных очень важно иметь возможность иметь раздел с микроархитектурой и распределять ресурсы для каждого приложения».
«Когда у вас есть несколько приложений, которые работают в одном устройстве, — объясняет он, — возникает точка вмешательства, когда задания могут повредить производительность друг друга. При существующем стандартном оборудовании существует ограниченное количество механизмов, которыми мы должны управлять. как работа вредит друг другу ".
Марс предупреждает, что в такой системе, как Jigsaw, отсутствует уровень абстракции между аппаратным обеспечением микросхемы и программным обеспечением, работающим на ней. «Такие компании, как Intel, как только они раскрывают конфигурации микроархитектуры через программный уровень, они должны сохранить этот интерфейс для будущих поколений процессоров», — говорит Марс. «Так что, если Intel захотела сделать что-то смелое с микроархитектурой, чтобы внести большие изменения, им придется сохранить эту устаревшую поддержку, которая может ограничить варианты дизайна, которые они могут исследовать».«Однако, — добавляет он, — методы в Jigsaw кажутся очень практичными, и я мог видеть, что какой-то вариант этого аппаратно-программного интерфейса будет использоваться в будущих проектах.
На самом деле, это довольно убедительный подход».
