3

Я пытаюсь понять сложные термины, связанные с производительностью процессоров.

Производительность компьютера измеряется в 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?

Большое спасибо за любые ответы и комментарии. Надеюсь, мой вопрос поможет многим другим смущенным душам :)

1 ответ1

1

Теперь, почему операции с плавающей запятой рассматриваются для производительности компьютера. Как насчет целочисленных операций?

Операции с плавающей запятой - это лишь одна из нескольких метрик, которые годами использовались для оценки производительности компьютера. Измерение операций FP считается более применимым для некоторых реальных приложений (таких как моделирование погоды), чем целочисленные операции. Если бы вы оценивали компьютеры для приложения базы данных, вы, вероятно, проигнорировали бы спецификации FLOPS и сосредоточились бы на IPS (количество команд в секунду) и производительности ввода-вывода.

Теперь, что именно означает операция в FLOP? Означает ли это математическую операцию, такую как MUL, ADD, DIV и т.д.?

"Операция" - это выполнение "инструкции", которая представляет собой машинный код (то есть двоичное значение) или одно вычисление с помощью FPU, модуля с плавающей запятой. (Более старый) FPU обычно работает асинхронно с CPU и ALU, чтобы не препятствовать выполнению программы, которая не зависит от результата FP.

Обратите внимание, что компьютер (около 1980 года), который не имел FPU, можно было обновить с помощью периферийного устройства FPU. Библиотека программных подпрограмм FP, в которой реализованы базовые операции FP (сложение, вычитание, умножение, деление, квадратный корень и т.д.), Будет заменена библиотекой, которая вызывает инструкции ввода / вывода для доступа к периферии FPU. Прерывание от FPU сообщит ЦПУ о завершении операции FP.

Ранние ПК были похожей конструкции. В оригинальном IBM PC использовался микропроцессор Intel 8088, который не имел возможности HW FP. Но можно установить математический сопроцессор 8087, чтобы инструкции FP могли выполняться аппаратно, а не перенаправляться на программные процедуры. В конце концов Intel интегрировала математический сопроцессор в пакет CPU для i486

В этом случае, что будет инструкция?

"Инструкция" не должна быть неоднозначной сущностью. Это один машинный код или один мнемомик процессора.

тогда одна инструкция может привести ко многим внутренним операциям. Это будет микрооперация или мопс?

Видимо, вы имеете в виду микропрограммирование.
(Раньше была компьютерная компания, которая подняла микропрограммирование на одну итерацию ниже: до уровня нано программирования. Продукты были для эмуляции процессора.)
Микропрограммирование не имеет никакого отношения к производительности прикладных программ. То есть вы, как правило, не можете переписать / улучшить микропрограммирование, как на нанопрограммном процессоре.

Означает ли это, что процессор может выполнять, например, ADDPD и ADDSD (всего = 2 инструкции) за один цикл?

Вроде, как бы, что-то вроде. Выполнение более одной инструкции за такт требует трубопровода "исполнительных устройств". Подумайте о (сборке) производственной линии. На каждой станции выполняется определенная задача. В конце конвейера (конвейера) одновременно выполняется только одно транспортное средство (инструкция). Параллелизм смещен, а не синхронизирован.

Какие инструкции приведены здесь?

Каждая инструкция является машинным кодом.

Другими словами, 1 инструкция FMA преобразуется в пару операций. Я прав?

Нет, одна инструкция соответствует одной операции.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .