Перейти до вмісту

Як розраховуються бали

На цій сторінці

PC Score склеює швидкість, затримку та рівномірність в один безрозмірний індекс. Його не можна напряму конвертувати у FPS або «відсоток прискорення Windows». Нижче описано модель score-model-1.2-candidate-1 для рушія 0.5.2. Умови, у яких отримуються вихідні метрики, описано в методиці.

Усередині блоку пропускна здатність обчислюється за кількістю валідних записів і різницею часів першого та останнього запису:

throughput = (N_valid − 1) × QPC_frequency / (last_QPC − first_QPC)

Для трьох повторів одного навантаження береться середнє throughput блоків. Замість цього не варто брати загальний рядок фази, де в одному блоці змішано сценарії з різних моментів часу.

Час CPU-кадру: тривалість CPU-роботи. Для GPU та Combined інтервали кадрів обчислюються між сусідніми власними GPU timestamps початку роботи. Тривалість самої GPU-роботи між початком і кінцем записується окремо.

Додатні затримки не прибираються, навіть якщо вони псують число. Неправильні часові мітки виділяються окремо. Якщо метрики немає, вона залишається unavailable, нуль туди не підставляється.

Для самого розрахунку діє правило придатності: непозитивні, відсутні, NaN і нескінченні критичні входи відхиляють скоринг цілком. Значення при цьому не клампляться і не замінюються граничними — «підправлених» входів у моделі немає.

Для відсортованих значень використовується лінійна інтерполяція Hyndman-Fan Type 7:

h = (n − 1) × p
i = floor(h)
percentile = x[i] + (h − i) × (x[min(i + 1, n − 1)] − x[i])

Індекс починається з нуля. P50 відповідає медіані; P99 показує межу, нижче якої лежить приблизно 99% спостережень.

  • 1% Low = 1000 / P99 часу кадру в мілісекундах; потрібно не менше 100 інтервалів.
  • 0,1% Low = 1000 / P99,9; потрібно не менше 1 000 інтервалів.

Ці величини — обернені перцентилі часу, а не середній FPS для найгіршого відсотка кадрів. За іншого визначення Low FPS цифри на тих самих даних можуть відрізнятися.

Додатково розраховуються середнє, мінімум, максимум, P90, P95, стандартне відхилення з діленням на n, медіанне абсолютне відхилення та коефіцієнт варіації.

Нормування та геометричне середнє

Section titled “Нормування та геометричне середнє”

Для швидкості «більше краще», тому нормована величина дорівнює измерение / эталон. Для затримки та відношення хвоста до медіани «менше краще», тому використовується эталон / измерение.

Зважене геометричне середнє:

G(x, w) = exp(Σ(w × ln(x)) / Σw)

Воно об’єднує відношення вимірювань до еталонів, тому різні одиниці вимірювання не додаються. Вплив кожного компонента залежить від його ваги: подвоєння одного з них не подвоює підсумковий результат.

Еталон — це фіксований набір констант для нормування, тут він називається provisional-dev-reference-2026-08-21. Це не «середній ринок» і не галузевий стандарт. За повного збігу з еталонними значеннями підсумковий індекс дорівнює 10 000.

Сценарій Еталон throughput, умовних кадрів/с
CPU 4 000
Geometry 740
Shader 360
Compute 7 600
Combined 665
GPU = G(Geometry / 740, Shader / 360, Compute / 7600)
Performance = 10000 × G(CPU / 4000, GPU, Combined / 665)

У цих двох формулах аргументи зрівноважені. У Performance внесок CPU та Combined однаковий (по одній третині), а кожен із трьох GPU-сценаріїв дає по одній дев’ятій у логарифмічній частині.

Використовуються P50, P95 та P99 внутрішньої затримки від програмного сигналу до завершення GPU-роботи.

Сценарій P50, мс P95, мс P99, мс
Baseline 2,5 4 6
Loaded 9 12 16

Для кожного сценарію обчислюється G(эталон P50 / P50, эталон P95 / P95, эталон P99 / P99) з вагами 50/30/20. Потім:

Core Latency Score = 10000 × G(Baseline, Loaded; ваги 40/60)

Бали зростають при зниженні затримки. Саме вимірювання в мілісекундах, навпаки, краще при меншому значенні.

Компонент дивиться на відношення P99 / P50 і показує, наскільки сильний хвіст затримок відносно типового часу. Це не метрика повторюваності між окремими запусками.

Вхід Еталон P99/P50
CPU frame time 1,20
Shader frame time 1,15
Combined frame time 1,20
Baseline Core Latency 2,40
Loaded Core Latency 16/9

Для кожного входу вважається эталон / измеренное отношение, потім береться геометричне середнє п’яти значень з рівними вагами і множиться на 10 000. У поточній моделі GPU-хвіст береться з Shader, а не із загального мішка Geometry, Shader і Compute.

PC Score = 10000 ×
(Performance / 10000)^0.50 ×
(Core Latency Score / 10000)^0.30 ×
(Consistency / 10000)^0.20

Ваги 50/30/20 задані всередині методики. Вони не означають універсальну частку CPU, GPU та затримки для всіх ігор. Тому, порівнюючи результати, треба дивитися і на компонентний розбір, і на вихідні метрики.

Для аналізу чутливості рушій також обчислює варіанти ваг 60/20/20 і 40/40/20. Додатково для кожного листового входу виводиться аналітична чутливість: підсумковий бал при відхиленні цього входу на +1, +5 і +10%. Вони допомагають побачити вплив вибору ваг і окремих входів, але не замінюють основну оцінку.

У перевірці восьми запусків всі чотири оцінки перераховано зі збережених зведених метрик. Розбіжність становила менше 0,000001 бала. Такий перерахунок перевіряє арифметику моделі. Перерахунок не може перетворити непридатний захват на придатний: скасовані, неповні та діагностичні запуски залишаються непридатними за будь-якої повторної обробки. Точність таймерів і повторюваність на обладнанні потребують окремих перевірок.

Перевірено: 2026-09-20.