Открыть сервис

Тесты SPEC CPU 2017

SPEC CPU 2017 — это набор стандартизированных бенчмарков (тестов производительности) для оценки вычислительной мощности центральных процессоров (CPU), разработанный и поддерживаемый консорциумом Standard Performance Evaluation Corporation (SPEC). Он является преемником набора SPEC CPU 2006 и на момент выхода в 2017 году стал основным отраслевым стандартом для сравнения производительности процессоров в ресурсоёмких вычислительных задачах, таких как научные расчёты, инженерное моделирование, компиляция кода и обработка изображений.

История и развитие

Первый набор бенчмарков SPEC CPU был выпущен в 1989 году и с тех пор регулярно обновлялся. SPEC CPU 2017 был анонсирован в июне 2017 года и заменил устаревший SPEC CPU 2006. Основными причинами разработки нового набора стали:

  • Устаревание тестов: многие приложения из SPEC CPU 2006 (например, компилятор GCC 3.x, игры на движке Quake III) перестали отражать современные рабочие нагрузки.
  • Рост объёмов данных: тесты 2006 года требовали относительно небольших объёмов оперативной памяти, что не позволяло адекватно оценивать производительность современных многоядерных процессоров с большими кэшами.
  • Необходимость учёта многоядерности: SPEC CPU 2006 был ориентирован в основном на однопоточные нагрузки, тогда как в 2010-х годах многоядерность стала стандартом.

Разработка SPEC CPU 2017 велась рабочей группой SPEC, в которую входили представители таких компаний, как AMD, Intel, IBM, Oracle, NVIDIA и другие. Набор был выпущен в двух основных вариантах: SPECrate 2017 (для измерения пропускной способности при многопоточных нагрузках) и SPECspeed 2017 (для измерения времени выполнения однопоточных и многопоточных задач).

Структура и состав

SPEC CPU 2017 состоит из нескольких десятков тестовых программ, разделённых на две основные категории: Integer (целочисленные вычисления) и Floating Point (вычисления с плавающей точкой). Каждая категория включает как однопоточные, так и многопоточные варианты.

Целочисленные тесты (Integer)

Эти тесты моделируют работу с целыми числами, логическими операциями, обработкой строк и структурами данных. Они характерны для компиляторов, баз данных, игр и системного ПО.

Название тестаКраткое описание
600.perlbench_sPerl-интерпретатор, обработка текстовых файлов
602.gcc_sКомпиляция C-кода с помощью GCC
605.mcf_sОптимизация транспортной сети (алгоритм simplex)
620.omnetpp_sСимуляция дискретных событий (OMNeT++)
623.xalancbmk_sПреобразование XML с помощью XSLT
625.x264_sКодирование видео в H.264/AVC
631.deepsjeng_sИгра в шахматы (движок Sjeng)
641.leela_sИгра в го (движок Leela Zero)
648.exchange2_sСимуляция обменов в биржевой системе
657.xz_sСжатие данных (алгоритм LZMA)

Тесты с плавающей точкой (Floating Point)

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

Название тестаКраткое описание
603.bwaves_sМоделирование волн в жидкости (CFD)
607.cactuBSSN_sСимуляция гравитационных волн (Cactus)
619.lbm_sМоделирование потоков жидкости (Lattice Boltzmann)
621.wrf_sПрогноз погоды (Weather Research and Forecasting)
627.cam4_sМоделирование климата (CAM4)
628.pop2_sМоделирование океанских течений (POP2)
638.imagick_sОбработка изображений (ImageMagick)
644.nab_sМолекулярная динамика (NAMD)
649.fotonik3d_sМоделирование фотонных кристаллов
654.roms_sГидродинамическое моделирование (ROMS)

Режимы запуска

SPEC CPU 2017 поддерживает два основных режима:

  • SPECspeed 2017: измеряет время выполнения одного экземпляра теста (однопоточный или многопоточный режим). Результат выражается в секундах или в баллах (чем меньше, тем лучше).
  • SPECrate 2017: измеряет пропускную способность системы при одновременном запуске нескольких копий теста (обычно по числу ядер). Результат выражается в баллах (чем больше, тем лучше).

Методика тестирования

Для получения официального результата SPEC CPU 2017 необходимо строго соблюдать правила консорциума:

  • Конфигурация: публикуются детальные сведения об аппаратном обеспечении (процессор, материнская плата, объём и тип памяти, частота шины), операционной системе, компиляторе и его настройках.
  • Компиляция: тесты компилируются с использованием оптимизаций, но запрещены любые модификации исходного кода тестов. Разрешены только стандартные флаги компилятора (например, -O2, -march=native).
  • Повторяемость: каждый тест запускается несколько раз, результаты усредняются. Допустимые отклонения строго регламентированы.
  • Отчётность: результаты публикуются на официальном сайте SPEC в виде отчёта, содержащего все параметры конфигурации и итоговые баллы.

Применение и значение

SPEC CPU 2017 является основным инструментом для:

  • Сравнения процессоров: производители (Intel, AMD, IBM, ARM) используют его для демонстрации преимуществ своих продуктов. Результаты SPEC CPU 2017 часто цитируются в обзорах и маркетинговых материалах.
  • Оценки архитектурных изменений: инженеры-разработчики процессоров анализируют результаты тестов для выявления узких мест и оптимизации микроархитектуры.
  • Выбора оборудования: системные интеграторы и корпоративные заказчики используют SPEC CPU 2017 для подбора процессоров под конкретные рабочие нагрузки (например, научные расчёты, серверы баз данных, рабочие станции для CAD).
  • Академических исследований: в университетах и научных лабораториях SPEC CPU 2017 применяется для оценки эффективности новых алгоритмов, компиляторов и аппаратных решений.

Критика и ограничения

Несмотря на широкое распространение, SPEC CPU 2017 имеет ряд недостатков:

  • Неполнота охвата: набор не включает тесты для оценки производительности в графике, машинном обучении, виртуализации, сетевых операциях и работе с базами данных. Для этих задач существуют отдельные бенчмарки SPEC (например, SPECviewperf, SPECvirt).
  • Зависимость от компилятора: результаты могут существенно различаться в зависимости от версии компилятора и его настроек. Производители могут оптимизировать компилятор специально под SPEC CPU 2017, что не всегда отражает реальную производительность в других приложениях.
  • Устаревание тестов: некоторые тесты (например, 600.perlbench_s) основаны на старых версиях программного обеспечения, которые уже не используются в современных системах. Это может снижать актуальность результатов.
  • Сложность воспроизведения: для получения официального результата требуется строгое соблюдение методики, что затрудняет независимое тестирование энтузиастами.

Связанные бенчмарки

SPEC выпускает и другие наборы тестов, дополняющие SPEC CPU 2017:

  • SPEC CPU 2017 Speed: однопоточные и многопоточные тесты.
  • SPEC CPU 2017 Rate: многопоточные тесты для измерения пропускной способности.
  • SPEC OMP: тесты для параллельных вычислений с использованием OpenMP.
  • SPEC MPI: тесты для кластерных систем с использованием MPI.
  • SPECjbb: тесты производительности Java-приложений.

Источники

  1. Standard Performance Evaluation Corporation. SPEC CPU 2017 Documentation. 2017.
  2. Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 6th ed. Morgan Kaufmann, 2018.
  3. SPEC CPU 2017 Benchmark Suite Overview. SPEC, 2017.
  4. Hager, G., Wellein, G. Introduction to High Performance Computing for Scientists and Engineers. CRC Press, 2010.
  5. Материалы официального сайта SPEC: www.spec.org/cpu2017.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →