Пусть S (U, N) обозначает ускорение, полученное в системе U, где базовая программа (числитель в формуле ускорения) использует 1 поток, а улучшенная программа использует N потоков. То есть:
S (U, N) = Время U (1) / Время U (N)
Таким образом:
S (Xeon, 8)> S (Ryzen, 8)
Это означает, что:
Время Xeon (1) / Время Xeon (8)> Время Ryzen (1) / Время Ryzen (8)
Но мы не можем сделать вывод о том, как связаны любые два времени выполнения. Мы можем только сказать, что у Xeon масштабируется лучше (т. Е. Программа смогла более эффективно использовать дополнительные ресурсы на Xeon, чем на Ryzen), но это не означает, что у него исполнено лучше с точки зрения времени исполнения. Это просто математически неверный вывод. Например, мы не можем сделать вывод, что время Xeon (8)> время Ryzen (8).
Однако мы можем наблюдать, что:
S (Xeon, 8)> S (Xeon, 4)
То есть:
Время Xeon (1) / Время Xeon (8)> Время Xeon (1) / Время Xeon (4)
Два срока Xeon (1) отменяют друг друга, и мы получаем:
Время Xeon (4)> Время Xeon (8)
Теперь вот критическое наблюдение. Почему мы смогли вывести из двух заданных ускорений, как два времени выполнения связаны на одном и том же процессоре, но на двух разных процессорах? Потому что на одном и том же процессоре базовая линия одинакова в обоих ускорениях, что позволило нам отменить их друг с другом.
Так как мы можем сделать одно и то же вычитание на двух разных процессорах? Используя общую базовую или справочную систему. Как правило, в качестве базовой линии выбирается какая-то старая система. Например, вы можете выбрать здесь Willamette, процессор Pentium 4, выпущенный в 2000 году. Конечно, вам нужно выбрать систему, на которой вы можете проводить эксперименты, чтобы измерить базовое время выполнения. Таким образом, ускорение может быть рассчитано следующим образом:
S ref (U, N) = Время Willamette (1) / Время U (N)
По сути, Время Willamette (1) становится общим термином. Эта формула гораздо полезнее предыдущей. Например, вы можете легко рассчитать S (U, N), учитывая только S ref (U, N), следующим образом:
S (U, N) = S ref (U, N) / S ref (U, 1)
Так что, если S ref (Xeon, 8)> S ref (Xeon, 4), то математически справедливо вывести это время Xeon (8 ) <Время <sub>Xeon (4). Также, если S ref (Xeon, 8)> S ref (Ryzen, 8), то математически справедливо вывести это время Xeon (8) <время <sub>Ryzen (8). Данное соотношение между двумя ускорениями S ref (U, N) на одном и том же или разных процессорах содержит больше информации по сравнению с использованием S (U, N).
В наборе тестов SPEC CPU этот метод используется для нормализации показателей производительности. Пакет SPEC CPU 2006 использует машину 1997 :
SPEC использует историческую систему Sun, "Ultra Enterprise 2", которая была
введена в 1997 году, как эталонная машина. Эталонная машина
использует процессор UltraSPARC II с частотой 296 МГц, как и эталонный компьютер
для CPU2000. Но эталонные машины для двух комплектов не
идентичны: референсная машина CPU2006 существенно лучше
кэши, и эталонный компьютер CPU2000 не мог вместить достаточно
память для запуска CPU2006.
В SPEC CPU 2017 используется более современная машина 2006 года :
Эталонный компьютер - это исторический сервер Sun Microsystems, Sun
Fire V490 с 2100 МГц чипами UltraSPARC-IV +. UltraSPARC-IV + был
введен в 2006 году, и является более новым, чем чип, используемый в CPU2000 и
Эталонные машины CPU2006 (300 МГц, 1997 UltraSPARC II).
Нормализованные числа можно сравнивать друг с другом независимо от того, принадлежат ли они к одной и той же системе или к разным системам.
Таким образом, система отсчета должна быть самой современной системой, которая старше (в частности, медленнее), чем все системы, представляющие интерес (то есть те, которые можно сравнивать друг с другом).