Тесты 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_s | Perl-интерпретатор, обработка текстовых файлов |
| 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-приложений.
Источники
- Standard Performance Evaluation Corporation. SPEC CPU 2017 Documentation. 2017.
- Hennessy, J. L., Patterson, D. A. Computer Architecture: A Quantitative Approach. 6th ed. Morgan Kaufmann, 2018.
- SPEC CPU 2017 Benchmark Suite Overview. SPEC, 2017.
- Hager, G., Wellein, G. Introduction to High Performance Computing for Scientists and Engineers. CRC Press, 2010.
- Материалы официального сайта SPEC: www.spec.org/cpu2017.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →