Из Википедии, бесплатной энциклопедии
  (Перенаправлено из DMIPS )
Перейти к навигации Перейти к поиску

Dhrystone - это программа для тестирования синтетических вычислений, разработанная в 1984 году Райнхольдом П. Вайкером и предназначенная для представления системного ( целочисленного ) программирования. Dhrystone вырос, чтобы стать представителем общей производительности процессоров ( ЦП ). Название «Dhrystone» - это игра слов на другом алгоритме тестирования под названием Whetstone , который подчеркивает производительность с плавающей запятой . [1]

С помощью Dhrystone Вайкер собирал метаданные из широкого спектра программного обеспечения, включая программы, написанные на FORTRAN , PL / 1 , SAL, ALGOL 68 и Pascal . Затем он охарактеризовал эти программы с точки зрения различных общих конструкций: вызовов процедур, косвенных указателей , присваиваний и т. Д. На основе этого он написал тест Dhrystone, чтобы соответствовать типичному миксу. Dhrystone был опубликован на языке Ada , причем версия C для Unix, разработанная Риком Ричардсоном («версия 1.1»), во многом способствовала его популярности.

Дристон против Уэтстоуна [ править ]

Тест Dhrystone не содержит операций с плавающей запятой , поэтому это название является каламбуром популярного в то время теста Whetstone для операций с плавающей запятой. Результатом теста является количество кристаллов в секунду (количество итераций основного цикла кода в секунду).

И Whetstone, и Dhrystone являются синтетическими тестами, что означает, что они представляют собой простые программы, тщательно разработанные для статистической имитации использования процессора некоторым общим набором программ. Whetstone, разработанный в 1972 году, изначально стремился имитировать типичные программы на языке Algol 60, основанные на измерениях 1970 года, но в конечном итоге стал наиболее популярным в своей версии на Фортране, отражающей высокую численную ориентацию вычислений в 1960-х.

Вопросы, которые решает Dhrystone [ править ]

В конечном итоге важность Dhrystone как индикатора универсальной («целочисленной») производительности новых компьютеров сделала его целью для разработчиков коммерческих компиляторов. Различные современные методы статического анализа кода компилятора (такие как устранение мертвого кода : например, код, который использует процессор, но дает внутренние результаты, которые не используются или не выводятся), затрудняют использование и разработку синтетических тестов. Версия 2.0 эталонного теста, выпущенная Вейкером и Ричардсоном в марте 1988 г., содержала ряд изменений, призванных помешать ряду методов компиляции. Тем не менее, он был тщательно разработан, чтобы не повлиять на базовый тест. Эта попытка помешать компиляторам увенчалась успехом лишь отчасти. Dhrystone 2.1, выпущенный в мае того же года,были внесены незначительные изменения и по состоянию на июль 2010 г. остается текущим определением Dhrystone.

Помимо проблем, связанных с оптимизацией компилятора, с Dhrystone упоминались и другие проблемы. Большинство из них, включая небольшой размер кода и небольшой размер набора данных, были поняты во время его публикации в 1984 году. Более тонким является небольшое избыточное представление строковых операций, которое в значительной степени связано с языком: и Ada, и Pascal имеют строки как обычные переменные в языке, тогда как C этого не делает, поэтому то, что было простым присваиванием переменных в эталонных тестах, стало операциями копирования буфера в библиотеке C. Другая проблема заключается в том, что сообщаемый рейтинг не включает информацию, которая имеет решающее значение при сравнении систем, например, какой компилятор использовался и какие оптимизации.

Dhrystone остается удивительно устойчивым в качестве простого эталона, но его неизменная ценность в установлении истинной производительности сомнительна. Он прост в использовании, хорошо документирован, полностью автономен, понятен и может работать практически в любой системе. В частности, он по-прежнему широко используется в мире встраиваемых вычислений, хотя недавно разработанный набор тестов EEMBC , HINT, Stream и даже Bytemark широко цитируется и используется, а также более конкретные тесты для подсистемы памяти (Cachebench), TCP / IP (TTCP) и многие другие.

Результаты [ править ]

Dhrystone может представлять результат более значимо, чем MIPS (миллион инструкций в секунду), потому что сравнение количества инструкций между различными наборами инструкций (например, RISC и CISC ) может затруднить простые сравнения. Например, одна и та же высокоуровневая задача может потребовать гораздо больше инструкций на RISC-машине, но может выполняться быстрее, чем одна инструкция CISC. Таким образом, оценка Dhrystone учитывает только количество завершений итераций программы в секунду, что позволяет отдельным машинам выполнять этот расчет индивидуально для каждой машины. Еще одно распространенное представление теста Dhrystone - это DMIPS (Dhrystone MIPS), полученный при делении показателя Dhrystone на 1757 (количество кристаллов в секунду, полученных на VAX 11/780 , номинально на машине с 1 MIPS).

Другой способ представления результатов - это число DMIPS / МГц, где результат DMIPS делится на частоту процессора, чтобы упростить сравнение процессоров, работающих с разными тактовыми частотами .

Недостатки [ править ]

Использование Dhrystone в качестве эталона имеет подводные камни:

  • Он имеет необычный код, который обычно не соответствует реальным программам. [2]
  • Он подвержен оптимизации компилятора. Например, он часто копирует строки, пытаясь измерить производительность копирования строк. Однако струны в Dhrystone имеют известную постоянную длину, и их начало выровнено по естественным границам, две характеристики обычно отсутствуют в реальных программах. Следовательно, оптимизатор может заменить копию строки последовательностью перемещений слов без каких-либо циклов, что будет намного быстрее. Следовательно, такая оптимизация завышает производительность системы, иногда более чем на 30%. [3]
  • Небольшой размер кода Dhrystone может уместиться в кэше инструкций современного ЦП, поэтому производительность выборки инструкций не подвергается тщательной проверке. [2]

См. Также [ править ]

  • Geekbench
  • CoreMark

Ссылки [ править ]

  1. ^ Пун : ш ч etstone → мокрого камня → бордюрный камень → д ч rystone.
  2. ^ a b Вайс, Алан. «Тест Dhrystone: история, анализ,« результаты »и рекомендации» (PDF) . Архивировано (PDF) из оригинала 26 июля 2011 года . Проверено 28 апреля 2020 .
  3. ^ Франко Заппа (2017). Микроконтроллеры: оборудование и прошивка для 8-битных и 32-битных устройств . Società Editrice Esculapio. п. 66. ISBN 978-88-9385-022-3.

Внешние ссылки [ править ]

  • Вайкер, Райнхольд (октябрь 1984 г.). «Dhrystone: тест для программирования синтетических систем». Коммуникации ACM . 27 (10): 1013–30. DOI : 10,1145 / 358274,358283 .
  • Тест Dhrystone: обоснование версии 2 и правил измерения (Рейнхольд П. Вайкер, 1988)
  • Тестовая программа DHRYSTONE (Рейнхольд П. Вайкер, 1995)