CoreMark

Материал из Википедии — свободной энциклопедии
Перейти к навигацииПерейти к поиску

CoreMark — набор синтетическихтестов производительности для измерения скоростицентральных процессоров вовстраиваемых системах. Создан в 2009 году Shay Gal-On из компанииEEMBC в качестве замены для антикварногобенчмаркаDhrystone 1984 года. Код тестов написан наязыке программирования Си и содержит реализации таких алгоритмов: обработкасвязных списков (поиск исортировка), обработка матриц (несколько матричных операций), машина состояний (определение, что входной символьный поток содержит действительные числа в десятичной записи), подсчет суммыCRC.

Содержание

Задачи CoreMark

[править |править код]

Алгоритм CRC в составе бенчмарка используется для двух целей: он является достаточно типичным для приложений на встраиваемых компьютерах, но также используется для подтверждения корректности работы всех тестов пакета CoreMark. В частности, для проверки результата сортировки, 16-битная сумма CRC рассчитывается от всех данных в связном списке.

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

Сравнение CoreMark и устаревшего Dhrystone

[править |править код]

CoreMark опирается на принципы, которые легли в основу традиционного Dhrystone: тест небольшой, легко переносимый, простой для понимания, бесплатный для использования и предоставляет единое число, описывающее производительность. Однако в отличие от Dhrystone, в тестах CoreMark имеются правила запуска и публикации результатов, также авторам CoreMark удалось избежать ряда широко известных проблем, связанных сDhrystone.

Большие участки теста Dhrystone могут быть оптимизированы современными компиляторами, из-за чего тот тест в меньшей степени был тестом производительности оборудования. Это также усложняло сравнение между разными компиляторами или между сборками с разными флагами компиляции.

В измеряемом участке Dhrystone производятся вызовы библиотек, и обычно код библиотек занимает большую часть времени работы бенчмарка. Поскольку библиотеки не являются частью бенчмарка, усложняется сравнение результатов между разными системами и реализациями библиотек.

Существуют некоторые руководства по запуску Dhrystone, но поскольку результаты теста не сертифицировались и не проверялись, эти руководства не всегда применялись. Отсутствовал стандарт на публикацию результатов Dhrystone и использовались различные производные величины: DMIPS, «Dhrystones per second», DMIPS/MHz.

Публикация результатов CoreMark

[править |править код]

Список результатов CoreMark ведется насайте проекта CoreMarkАрхивная копия от 12 сентября 2017 наWayback Machine (EEMBC). Результаты имеют следующий формат:

CoreMark 1.0 : N / C / P / M

  • CoreMark 1.0 — версия теста
  • N — количество итераций в секунду с параметрами запуска «0,0,0x66,size=2000»
  • C — версия компилятора и его флаги
  • P — указание на специфику размещения кода и данных
  • M — тип параллельного исполнения (если использовалось) и количество контекстов (потоков, процессов)

Например:

CoreMark 1.0 : 128 / GCC 4.1.2 -O2 -fprofile-use / Heap in TCRAM / FORK:2

См. также

[править |править код]

Литература

[править |править код]

Ссылки

[править |править код]
Источник —https://ru.wikipedia.org/w/index.php?title=CoreMark&oldid=150008161
Категории: