Я пытаюсь понять сложные термины, связанные с производительностью процессоров.
Производительность компьютера измеряется в FLOPS
, что мало для FLOP в секунду. FLOPs
сам по себе означает операции с плавающей точкой.
Теперь, почему операции с плавающей запятой рассматриваются для производительности компьютера. Как насчет целочисленных операций? Есть ли какой-либо источник в Интернете (официальное цитирование), который бы объяснил эту тенденцию? Google не дал мне ничего с моим поиском.
Теперь, что именно означает операция в FLOP? Означает ли это математическую операцию, такую как MUL
, ADD
, DIV
т.д.?
В этом случае, что будет инструкция? Если инструкция похожа на ADDPD
, ADDSD
т.д., Как я вижу здесь (http://docs.oracle.com/cd/E26502_01/html/E28388/epmpv.html), то одна инструкция может привести ко многим внутренним операциям. Это будет микрооперация или мопс?
Я не нашел объяснения микрооперации в Википедии. Кто бы ни объяснял это ясно здесь, вероятно, придется также улучшить статью в Википедии :)
Согласно книге Hennessy/Patterson по компьютерной архитектуре (5-е издание, стр. 233), ARM Cortex-A8 (RISC) способен выполнять две инструкции за такт. Означает ли это, что процессор может выполнять, например, ADDPD
и ADDSD
(всего = 2 инструкции) за один цикл?
Этот источник (http://en.community.dell.com/techcenter/high-performance-computing/w/wiki/2329) гласит следующее:
Большинство современных микропроцессоров могут выполнять четыре (4) FLOP за такт, то есть 4 FLOP на Гц.
Я считаю, что автор не прав. Он, вероятно, подразумевал 4 инструкции за такт, ограничивая себя процессорами на базе CISC (например, Intel). Это связано с тем, что некоторые инструкции, такие как FMA для Haswell, могут повысить производительность, благодаря чему процессор может обрабатывать больше операций за цикл. Другими словами, 1 инструкция FMA
преобразуется в пару операций. Я прав?
IPC расшифровывается как «Инструкция за цикл». Какие инструкции приведены здесь? Инструкция отошла от процессора? С помощью аппаратного счетчика я могу подсчитать количество циклов ЦП и количество INST_RETIRED.ANY
. Будет ли это правильный способ расчета IPC?
Большое спасибо за любые ответы и комментарии. Надеюсь, мой вопрос поможет многим другим смущенным душам :)