Как считать микрооперации / циклы, вовлеченные в одну инструкцию? - PullRequest
2 голосов
/ 10 мая 2019

Я пытаюсь понять, как тестировать одну инструкцию, и нашел следующую статью о тестировании Intel: https://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-32-ia-64-benchmark-code-execution-paper.pdf

Таким образом, мы используем rdtsc, чтобы прочитать количество тактов. Но, как указано в руководстве Intel 17.17 TIME-STAMP COUNTER, ранее процессор увеличивает его с фиксированной частотой, которая может отличаться от текущей тактовой частоты.

Для процессоров Pentium 4, процессоров Intel Xeon [...]: время счетчик штампов увеличивается с постоянной скоростью. Этот показатель может быть установлен по максимальному отношению частоты ядра к частоте процессора или может быть установлен максимальной разрешенной частотой, на которой процессор загружен.

Итак, у меня есть 2 вопроса:

  1. Есть ли способ получить фактические тактовые частоты процессора, как rdtsc, полученный для более старых процессоров?
  2. Есть ли способ измерить количество мопов в какой-либо инструкции? В частности, я хочу, чтобы вы сравнили разницу мопов, которая требуется, когда инструкция конвейерна, а не (например, когда та же самая команда повторяется, когда цикл развернут)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...