Приблизительное количество циклов ЦП для различных операций

Я пытаюсь найти ссылку для приблизительно, какого количества циклов ЦП различные операции требуют.

Мне не нужны точные числа (когда это собирается варьироваться между центральными процессорами), но я хотел бы что-то относительно вероятное, которое дает приблизительные значения, которые я мог процитировать в обсуждении с друзьями.

Как пример, все мы знаем, что деление с плавающей точкой берет больше циклов ЦП, чем говорят выполнение сдвига разряда.

Я предположил бы, что различие - то, что подразделение является приблизительно 100 циклами, где, поскольку сдвиг равняется 1, но я ищу что-то для цитирования для резервного копирования этого.

Кто-либо может рекомендовать такой ресурс?

10
задан colordot 23 April 2010 в 22:50
поделиться

2 ответа

Это будет зависеть от оборудования. Лучше всего запустить несколько тестов на конкретном оборудовании, которое вы хотите протестировать.

Тест должен выглядеть примерно так:

  • Выполнить простую операцию миллион раз (скажем, сложить два целых числа)
  • Записать время, которое потребовалось для выполнения (скажем, в секундах)
  • Умножить на количество циклов, которые ваша машина выполняет в секунду - это даст вам общее количество потраченных циклов.
  • Разделите 1000000 на число из предыдущего шага - это даст вам количество инструкций за цикл. Имейте в виду, что при конвейерной обработке это может быть меньше 1.
1
ответ дан 4 December 2019 в 01:56
поделиться

Для процессоров x86 см. Справочное руководство по оптимизации архитектур Intel® 64 и IA-32 , возможно, Приложение C.

Однако совсем непросто определить, сколько циклов занимает инструкция. для выполнения на современном процессоре x86, поскольку он слишком сильно зависит, например, от доступ к данным в кеше, согласованный доступ, сбой предсказания ветвления, остановка конвейера инструкций и многое другое.

4
ответ дан 4 December 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: