Циклы / байтовые вычисления - PullRequest
1 голос
/ 29 апреля 2010

В сообществах Crypto принято измерять производительность алгоритмов в циклах / байт. У меня вопрос, какие параметры в архитектуре процессора влияют на это число? За исключением, конечно, часовых скоростей :)

Ответы [ 3 ]

0 голосов
/ 29 апреля 2010

Два важных фактора:

  1. ISA ЦП или, более конкретно, насколько близко инструкции ЦП соответствуют операциям, которые вам нужно выполнить - если вы можете выполнить данную операцию в одной инструкции на одном ЦП, но для этого требуется 3 инструкции на другом ЦП, первый процессор , вероятно, будет быстрее. Если у вас есть специальные крипто-инструкции на процессоре или расширения, такие как SIMD, которые можно использовать, то тем лучше.

  2. скорость выдачи команд ЦП, т.е. сколько инструкций может быть выдано за такт

0 голосов
/ 29 апреля 2010

Главным образом:

  • Пропускная способность шины памяти
  • инструкций процессора за цикл

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

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

0 голосов
/ 29 апреля 2010

Вот некоторые функции процессора, которые могут влиять на циклы / байт:

  • глубина трубопровода
  • количество IU и / или FPU, способных работать параллельно
  • размер кеш-памяти
  • алгоритмы для прогнозирования ветвлений
  • алгоритмы обработки пропущенного кэша

Более того, вас может заинтересовать общая проблема оценки WCET (время выполнения в худшем случае)

...