Перейти к содержимому

Нагрузки CPU и GPU

На этой странице

PCBenchmarkX запускает свои синтетические нагрузки с фиксированным объёмом работы при каждом повторе, поэтому их можно сравнивать между разными системами. В таких тестах не используются игровые записи, и итоговые цифры не равны «FPS в конкретной игре». Полный измерительный цикл описан в методике.

Сейчас применяются движок 0.5.2 и нагрузка phase4.6-dev-1. Версию нужно держать в виду: смена сценария делает результаты разных релизов напрямую несопоставимыми.

В CPU-блоке создаются 65 536 объектов с координатами, скоростями и флагами. На каждом шаге пересчитываются движение, отскоки от границ и видимость. Основной поток сначала обрабатывает 8 192 объекта подряд, затем передаёт оставшуюся часть рабочим потокам и параллельно делает подготовку. Затем потоки синхронизируются.

Количество рабочих потоков выбирается по правилу:

workers = clamp(physical_cores − 1, 1, 6)

Если число физических ядер неизвестно, берут оценку по логическим процессорам. Ядра для потоков не фиксируются вручную. Такой подход имитирует модель «одного ведущего» потока с ограниченной помощью, а не тотальный распараллеленный прогон на каждом ядре.

Состояние и порядок обхода объектов детерминированы. Перед каждым измерением CPU-секции он сбрасывается и выполняет 512 подготовительных кадров вне зачёта, чтобы не тащить в серию остаточное состояние от прошлого прогона.

Детерминизм нагрузки не означает одинаковое время исполнения: частоты, температура, планировщик и фоновые процессы продолжают влиять на измерение.

GPU-часть работает через Direct3D 12. Внутренние рабочие текстуры имеют фиксированный размер 1920×1080, независимо от размера окна и рабочего стола.

Нагрузка Вычислительная работа Что помогает различать
Geometry 6 отрисовок сцены по 9 216 инстансов и 2 прохода постобработки Обработку геометрии и подачу графической работы
Shader 1 отрисовка сцены, 16 проходов постобработки, параметр сложности шейдера 24 Пиксельную и текстурную нагрузку
Compute Сетка 1920×1080, группы 8×8, целочисленные вычисления с 96 итерациями Выполнение вычислительного шейдера
Combined CPU-симуляция и фиксированный графический конвейер Совместную работу CPU, драйвера и GPU

Это отдельные сценарии с разным объёмом работы. Например, 8 000 условных кадров Compute нельзя читать как 8 000 FPS в игре или напрямую сравнивать с 800 кадрами Geometry. Для объединения применяется нормирование по сценарию, описанное в расчёте баллов.

Нагрузки написаны на переносимом уровне возможностей: shader model 5.0 и feature level 11_0 без вендорских расширений. Один и тот же код выполняется на разных поколениях и производителях видеокарт, без отдельной ветки под конкретного вендора.

После измерений движок проверяет выход каждой GPU-нагрузки: для Geometry, Shader, Compute, Combined и загруженного теста задержки зафиксирована контрольная сигнатура — ожидаемый вид небольшого фрагмента результата. Прочитанный после завершения фрагмент сравнивается с ожидаемым; несовпадение означает, что нагрузка выполнилась неверно, и делает запуск непригодным. Проверка выполняется после зачётных измерений и на сами числа не влияет.

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

Пять нагрузок производительности выполняются в трёх раундах с перестановкой порядка:

Раунд Порядок
1 CPU → Geometry → Shader → Compute → Combined
2 Shader → Compute → Combined → CPU → Geometry
3 Combined → CPU → Geometry → Shader → Compute

Место каждой нагрузки в последовательности меняется от раунда к раунду. Это уменьшает его влияние на сравнение. Прогрев всё ещё может менять результаты, поэтому для блоков дополнительно сохраняются разброс скорости выполнения и её изменение от первого блока к последнему.

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

Почему низкое разрешение не облегчает основной тест

Заголовок раздела «Почему низкое разрешение не облегчает основной тест»

Нагрузки CPU, GPU и Combined выполняются вне экранного буфера. Их путь отправки команд не вызывает Present и не ждёт ограничения очереди показа. Внутренние текстуры остаются 1920×1080, даже если рабочий стол переключён на 800×600.

Интерфейс и тест задержки работают через отдельный путь вывода. Поэтому смена разрешения рабочего стола сама по себе не облегчает саму нагрузку. Тем не менее считывать «абсолютно одинаковый» результат на любом разрешении всё равно нельзя: на выходном участке участвуют драйвер и текущее состояние системы.

Практическая проверка с 1920×1080, 1280×768 и 800×600 приведена в статье о повторяемости.

Проверено для описанной реализации: 2026-09-20.