Предложен способ на 15% повысить эффективность работы процессорного кэша




10:30 24.02.2014 |   729



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

эффективность работы процессорного кэша - МТИ
Источник: Christine Daniloff/MIT

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

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

Исследователи из Массачусетского технологического института предложили алгоритмы, повышающие эффективность кэширования. В частности, когда рабочий набор не помещается в кэш, его предлагается распределить между локальным кэшем ядра и кэшем последнего уровня. А чтобы ядра не выполняли лишнюю синхронизацию кэшей, в МТИ предлагают хранить их общие данные в кэше последнего уровня. Эксперименты показали, что при использовании этих методик обработка ускоряется в среднем на 15%, а экономия энергии достигает 25%.


Теги: