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
См. также
[править | править код]- Business Applications Performance Corporation (BAPCo)
- Embedded Microprocessor Benchmark Consortium (EEMBC)
- Standard Performance Evaluation Corporation (SPEC)
- Transaction Processing Performance Council (TPC)
Литература
[править | править код]- Shay Gal-On, Markus Levy, «Exploring CoreMark — A benchmark maximizing simplicity and efficacy.» / The Embedded Microprocessor Benchmark Consortium (2012).
- CoreMark — реальный способ определить производительность ЦП Архивная копия от 11 сентября 2017 на Wayback Machine (перевод)
Ссылки
[править | править код]- Раздел CoreMark на сайте EEMBC Архивная копия от 4 сентября 2018 на Wayback Machine (англ.)
- User group for CoreMark Архивная копия от 7 ноября 2012 на Wayback Machine (англ.)
- EEMBC launches MIPS busting benchmark, New Electronics magazine, Graham Pitcher, August 2009.
- Roving Reporter: Benchmarks: An inside look at CoreMark Архивная копия от 12 сентября 2017 на Wayback Machine, Intel Embedded Design Center — Hardware Blog, Don Dingee, OpenSystems Media, by special arrangement with Intel ECA, August 2009.
- ARM Announces Support For EEMBC CoreMark Benchmark, ARM Holdings plc, June 2009.
- CoreMark — Open-Source-Benchmark von EEMBC, elektronik net.de, Andrea Gillhuber, February 2009.
- Benchmarks Atom vs iPad A4 vs iPhone 3GS ARM Cortex and much more…, EEE Journal
- Published Kal-El performance: is NVIDIA SoC truly faster than a Core2? Архивная копия от 29 декабря 2018 на Wayback Machine
- Imagining a quad-core Motorola Xoom Архивная копия от 25 марта 2012 на Wayback Machine, CNet News, February 2011.