Вопрос

Я хочу оценить накладные расходы на производительность из-за пропуска TLB на машине x86-64 (Intel Nehalem) под управлением Linux. Я хочу получить эту оценку, используя некоторые счетчики производительности. У кого -нибудь есть несколько указателей на том, как лучше всего оценить это?

Спасибо, Арка

Это было полезно?

Решение

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

На Вестмире лучшая оценка производительности, потерянная при ожидании промахи TLB, вероятно, связана с событием соревнований по производительности аппаратного обеспечения 08H, маска 04H "DTLB_LOAD_MISSES.WALK_CYCLE Прогулка из -за промахи нагрузки на втором уровне TLB ". Это описано в «Intel® 64 и IA-32 Architectures Architectures Architectures Rederse Developer Volume 3B: Руководство по программированию системного программирования, часть 2» (номер документа: 253669), доступно онлайн по адресуhttp://www.intel.com/content/www/us/en/architecture-and-technology/64-32-architectures-software-developer-vol-3b-part-2-manual.html

Причина, по которой это событие необходимо, заключается в том, что время обработки TLB преобладает время, необходимое для чтения строки кэша, содержащей запись таблицы страниц. Если эта линия кэша находится в кэше L2, то накладные расходы TLB пропустить будут очень маленькими (порядок 10 циклов). Если линия находится в кэше L3, то, возможно, 25 циклов. Если линия находится в памяти, то ~ 200 циклов.

  • Если в кэшах перевода на странице верхнего уровня также пропускается, потребуется несколько поездок в память, чтобы найти и получить желаемую запись таблицы страниц (например, https://stackoverflow.com/a/9674980/1264917).
  • На некоторых процессорах счетчики кэша L2 могут сказать вам, сколько прогулок стола ударилось и пропустило в L2, но не в Нехалеме. (В этом случае это не очень поможет, так как прогулки TLB, которые попали в L3, также довольно быстрые, и вы действительно хотите, чтобы прогулки TLB должны идти в память.)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top