Предвзятый бенчмарк: Как CPU-Z начал занижать результаты процессорам AMD Ryzen
-===-
Предисловие
Про подмену версий CPU-Z в официальном архиве не слышал только ленивый, настало время провести большое тестирование и проверить на вшивость встроенный бенчмарк в утилите CPU-Z.
реклама
К слову, в прошлой статье я забыл упомянуть, официальный архив версий CPU-Z не содержит версии утилиты ниже 1.63, а ведь CPU-Z появился задолго до 2013 года...
Статья про масштабную подмену версий в официальном архиве CPU-Z:
Как разработчики CPU-Z массово подменяют версии в своём официальном архиве
Старая статья 2021 года про CPU-Z:
Бенчмарк CPU-Z занижает результаты AMD, а разработчики подменяют версии - моё исследование
-===-
Конфигурация тестовых систем и условия тестирования
Проверять на вшивость встроенный бенчмарк CPU-Z я буду используя две системы, одна на основе AMD Ryzen 7 2700X (AM4), вторая система на основе Intel Core i3-10105F (LGA1200).
реклама
Конфигурация тестовых систем | ||
. | AMD | Intel |
Форм-фактор системы | MicroATX (~40x29x10 cm.) | ATX (~45x42x19 cm.) |
Блок питания | Chieftec Proton BDF-1000C | Chieftec Smart GPS-700A8 |
Процессор | AMD Ryzen R7 2700X | Intel Core i3-10105F |
Система охлаждения ЦП | Турбина (~80 Вт, временное решение) |
BOX (~65 Вт) |
Системная плата | Gigabyte B450M H | ASRock B560M HDV |
ОЗУ | 32GB + 32GB Dual Ranks Kingston KVR29N21D8/32 |
16GB + 16GB Dual Ranks Samsung M378A1G43TB1-CTD |
Системный накопитель | KingSpec M2 SSD 256GB - PCIe x4 |
Samsung 970 PRO 512GB - PCIe x4 |
Прочие накопители | - | 2x TOSHIBA DT01ACA100 1x HGST HTS541010A9E680 |
Монитор | AOC Q2778VQE - 2560x1440 | AOC Q2577PWQ - 2560x1440 |
Видеокарта | MSI GTX 1070 AERO OC | Sapphire R9 290 Tri-X |
Условия тестирования | ||
. | AMD | Intel |
Базовая частота (FSB/BCLK) | ~99.8 MHz | |
Частота процессора | ~2993 MHz, множитель 30x. | |
Ядра/потоки | 8 / 16 (4+4) 4 / 8 (4+0) |
4 / 8 |
Частота ОЗУ | ~3390 MHz 18-20-18-28 - CR1 |
~3327 MHz 18-20-20-47 - CR2 |
Для снижения вероятности ошибок ввиду человеческого фактора, все версии CPU-Z расположены на внешнем USB 3.0 накопителе Lexar M35 32 ГБ. Операционная система: Windows 7 SP1 x64, композитор рабочего стола отключен (не путать с Aero), упрощенная тема оформления, лишние фоновые службы которые могут повлиять на результаты тестирования запускаясь без ведома пользователя отключены и удалены из планировщика (WinSAT и т.п.) Доступ к сети интернет отключен чтобы CPU-Z не лазил лишний раз к разработчикам при каждом запуске. Чтобы исключить вероятность искажения результатов ввиду температурных и прочих лимитов, процессоры будут работать при частоте ~3 ГГц, эта частота доступна большинству процессоров для сравнения. |
Я не смогу проверить абсолютно все версии CPU-Z, так как в официальном архиве подмененные версии утилиты никак не достать.
Можно конечно пойти по интернету и собирать все версии по всяким файловым помойкам требующих купить подписку или заставляют ждать некоторое время если не хочешь платить, при этом в конце оказывается что файл был удален ибо владелец забыл продлить время хранения файла... Но пожалуй обойдусь без таких походов за версиями CPU-Z...
реклама
В тестировании будут участвовать следующие версии CPU-Z имеющие встроенный тест производительности:
В скобках указана дата исполняемого файла CPU-Z, если кроме даты ничего нет, в том числе за пределами скобок, то это исходная версия CPU-Z следов подмены которой я не обнаружил, либо эта версия была найдена на стороннем сайте и она не имеет следов подмены.
Символ "_X" после скобок означает, что это не исходная версия CPU-Z, была подмена разработчиками в официальном архиве, конкретная версия указана в скобках перед датой.
реклама
Символ "_XX" после скобок означает что была подмена без каких-либо явных следов в файле readme и самом CPU-Z, дата исполняемого файла не совпадает с официальной датой выхода в архиве.
-===-
Тестирование
Логично было бы запустить сразу все версии и поочередно начать тестировать, но с текущим количеством запущенных экземпляром CPU-Z, погрешность результатов будет довольно большая, ибо каждый экземпляр немного нагружает процессор обновляя информацию.
Потому мне придется тестировать запуская только по одному экземпляру CPU-Z, очевидно что показывать огромное количество фотографий с результатами будет крайне накладно для статьи, может быть я совмещу все в несколько изображений потом, но это не точно.
Некоторые особо озабоченные люди беспокоятся обо мне считая что я не умею делать скриншоты, так почему я предпочитаю фотографировать вместо скриншотов? Скриншоты делать я умею (как можно заметить, у меня в статьях есть и скриншоты), просто намного проще, надежнее и быстрее сделать фото чем скриншот.
Фото сделал и забыл, оно не зависит от технических особенностей и возможностей фотографируемого объекта, оно всегда доступно в любой момент и работает безотказно.
А вот скриншот уже требует специальной поддержки со стороны рабочей среды (можно сделать не везде и не всегда), его потом переносить на основной ПК, DRM-костыли иногда могут мешать захвату скриншотов, а еще в статью нельзя просто так вставить скриншот в разрешении 2560x1440, он будет автоматически уменьшен со всеми вытекающими последствиями.
Надеюсь я удовлетворил интерес по поводу скриншотов/фото.
Пожалуй хватит отступлений, пора собирать результаты воедино:
-===-
Результаты
Для начала будет Ryzen 7 2700X в режиме 8/16 (конфигурация ядер 4+4), первым делом покажу тест на погрешность результатов, я не тестировал каждую версию на погрешность, но несколько версий проверил, выглядит это следующим образом на примере CPU-Z версии 2.01.0 x64:
Мин. и макс. CPU ST: 349.2 - 350.5 (погрешность в пределах ~0.37%, среднее из 10 результатов 349.6).
Мин. и макс. CPU MT: 3719.5 - 3724.1 (погрешность в пределах ~0.12%, среднее из 10 результатов 3721,82).
Результаты собраны:
Теперь кропотливый процесс переноса результатов и представления в виде наглядных таблиц и графиков...
Итого получилось две таблицы, сначала таблица с основной веткой встроенного теста, здесь уже виден факт подмены алгоритма тестирования, версия теста никак не изменилась, а результаты явно другие.
До анонса AMD Ryzen была версия CPU-Z 1.78.1 (я не нашел в интернете исходную 1.78.0), после анонса AMD Ryzen разработчики CPU-Z подменили старые 1.78.x версии новой 1.78.3, и результаты встроенного теста изменились.
А после выхода AMD Ryzen встроенный тест производительности вообще был полностью заменен, слишком подозрительная активность с подменой встроенного бенчмарка после анонса и выхода на рынок AMD Ryzen... Примечательно что в readme на 1.78.3 версию ничего не сказано про ощутимые изменения в алгоритме тестирования.
Еще можно заметить некоторый разброс результатов в разных версиях CPU-Z как в большую сторону, так и в меньшую.
Если R7 2700X в основном показывает стабильный результат на протяжении всех версий CPU-Z, то i3 10105F ведет себя по-разному от версии к версии, причем если несколько раз тестировать уже запущенную версию CPU-Z, то результаты обычно совпадают.
Тем не менее можно найти явные отклонения, как с версией 1.85.0 и i3-10105f, повторный тест прямо "на месте" показывал все те же ~1623 очка сколько бы я не жал кнопку запуска тестирования, но повторный тест спустя день работы системы уже показал нормальные ~1776 очков...
Вторая таблица для AVX бенчмарка, здесь тоже бывают отклонения результатов, но в "сухой" таблице это заметить сложно.
Так как большие таблицы не очень удобно смотреть, я перевел значения в графики, далее будут графики с версиями CPU-Z от 1.73.0 до 1.78.3.
Самая первая версия 1.73.0 показывала паритет между R7 2700X 4/8 и i3-10105F 4/8 на равных частотах, что логично, R7 2700X 8/16 и i7-5960X из базы данных CPU-Z тоже находились на своих логичных местах.
Но с версии 1.74 ситуация резко изменилась, про AMD Ryzen еще неизвестно разработчикам CPU-Z, и в целом R7 2700X показал значительно более высокие результаты чем процессоры от Intel, даже на равных частотах, что говорит о качественном превосходстве архитектуры Zen над процессорами Intel.
Однако когда случился анонс процессоров AMD Ryzen, графики резко и отчетливо изменили свой вид хотя версия встроенного теста никак не изменилась, а это говорит о подмене встроенного бенчмарка сразу после анонса новых процессоров от AMD.
i7-5960x из базы данных CPU-Z резко прибавил себе "попугаев" на один поток перепрыгнув с 1491 сразу до 1659 очков, и это выглядит довольно странно, ибо i3-10105F не прибавил себе "попугаев", как и R7 2700X не пошатнулся...
Однако при нагрузке на все ядра i7-5960x прибавил себе слишком мало очков, реальный прирост у R7 2700X и i3-10105F заметно больше получился, на этом 15 версия встроенного теста обрывается, ибо дальше выходит на рынок AMD Ryzen и разработчики кардинально изменили версию теста, наверное не смогли придумать как переделать уже существующий тест, чтобы выставить процессоры от Intel более производительными и при этом не вызвать лишних подозрений.
Переходим к версии 17.01.64, CPU-Z от 1.79.1 до 2.01.0.
Сразу же можно отметить очень высокую стабильность результатов у процессора AMD Ryzen 7 2700X, причем как с двумя CCX модулями (8/16), так и с одним (4/8), тем временем i3-10105F отчетливо ходит ходуном от версии к версии, и это притом, что частота процессора зафиксирована, а на фоне не было активных приложений...
Однако если в 15 версии встроенного теста CPU-Z процессор i3-10105F довольно далеко позади был от R7 2700X в конфигурации 4/8, то в 17 версии этот разрыв уже не так значителен как был раньше.
В приближении можно заметить небольшой разброс результатов процессора R7 2700X, но это просто ничто по сравнению с разбросом результатов i3-10105F...
Можете сколько угодно упрекать меня за то что я не делал по 10 раз тестирование каждой версии, чтобы вычислить среднее значение, но, есть одно серьезное НО! Я пытался повторно запускать тест сразу же после получения явно отклоненного результата, и каждый раз получал взамен такой же отклоненный результат, потому я решил что это так работает сам CPU-Z и перестал лишний раз передергивать кнопку запуска теста.
Далее результат теста для одного ядра, если в 15 версии теста R7 2700X был быстрее на ядро чем i3-10105F и i7-5960X, то в 17 версии процессоры от Intel начали получать больше "попугаев" чем процессоры от AMD, причем i3-10105F до версии CPU-Z 1.84 имел несколько меньше результат чем в версии 1.85 и выше, особенно если закрыть глаза на явные отклонения в результатах...
Фактически с приходом 17 версии встроенного теста процессоры от Intel не только получили результаты выше чем у AMD Ryzen для производительности одного ядра, но при этом отчетливо прослеживается увеличение разрыва между результатами AMD и Intel, и этот нарастающий разрыв пошел в пользу Intel.
Да, в режиме Multi Thread R7 2700X 4/8 на равных частотах все равно быстрее оказался чем i3-10105F 4/8, но в режиме одного потока CPU-Z выставил i3-10105F гораздо выше на равной частоте чем R7 2700X... И тут я вспомнил что тогда от Intel не было процессоров способных конкурировать количеством ядер с AMD, и они в принципе не могли обойти AMD в режиме Multi Threa, впрочем, тут можно только предполагать как так вообще могло выйти и про что думали когда таким образом изменяли встроенный тест CPU-Z.
Перейдем к встроенному тесту версии 19.01.64, он появился в CPU-Z 1.87.0 и выше.
AVX2 тест ничего особо интересного не показал, в Multi Thread режиме процессор от Intel конечно "плавает", но в целом общий уровень производительности слегка подрос у всех процессоров, хотя можно еще заметить несколько явно отклоненных результатов в Single Thread режиме.
Гораздо интереснее обстоят дела с AVX тестом, если обратить внимание, то от версии к версии у всех моих процессоров результат ходит ходуном в режиме Single Thread, но я не просто так сгладил линии графика, можно отчетливо заметить что падения и "взлеты" полностью совпадают у R7 2700X и i3-10105F до версии CPU-Z 1.94.8, после "волны" уже разошлись по разным сторонам.
В режиме Multi Thread результаты теста AVX тоже ходят волнами, но преимущественно сохранилось за процессором от AMD.
-===-
Сравнение результатов
Посмотрев на полученные результаты под разными углами можно и к прямому сравнению подойти.
Для начала простая таблица в которую я выделил основные события, сравнивать буду только основную ветку встроенного теста CPU-Z, ибо в ветке AVX/AVX2 ничего интересного не происходит.
В итоге получилось 4 зоны, первая зона это CPU-Z 1.73.0, первое появление встроенного теста производительности, и на этом версия теста 15.00.64 BETA заканчивает свое существование.
Вторая зона это бенчмарки версии 15.01.64 BETA и 15.01.64, разницы в результатах между ними не обнаружено, разработчики еще не знают про AMD Ryzen.
Третья зона это бенчмарк версии 15.01.64 (тут нет опечаток) в составе CPU-Z 1.78.3, он был выпущен после анонса AMD Ryzen и этой версией разработчики CPU-Z подменили все предыдущие версии 1.78.x.
Четвертая зона содержит встроенный тест версии 17.01.64, вышла сразу после выпуска AMD Ryzen.
Особое внимание следует обратить на встроенный тест версии 17.01.64, на первый взгляд он кардинально отличается от предыдущих версий 15.01.64, но это только на первый взгляд.
Если умножить результат версии 17.01.64 на 10, а после разделить на 2, получаем такую же систему измерения как была в версии 15.01.64, вероятно эти математические манипуляции были необходимы, чтобы скрыть отчетливое завышение результата процессорам Intel относительно 15.01.64 версии теста, тем самым занизив относительный результат процессорам AMD.
Фактически ситуация такая же как и была при моём первом тестировании CPU-Z в 2021 году, начиная с версии теста 17.01.64 CPU-Z отчетливо завышает результат процессорам Intel относительно версии 15.01.64.
Причем если обратить внимание на самую первую версию теста 15.00.64, то можно заметить что процессоры Intel имеют преимущество перед AMD, после перехода к версии 15.01.64 процессоры AMD получили преимущество, хотя в то время про AMD Ryzen еще не было известно.
Теперь перейдем к наглядному представлению через график, и тут уже отлично видно как разрыв результатов между AMD и Intel был минимальным в начальной версии теста, после разрыв увеличился в пользу AMD, а как только процессоры AMD Ryzen вышли в продажу разрыв между результатами резко сократился в пользу Intel.
Если приблизить графики, то разница еще более заметна.
В режиме Single Thread все аналогично, только теперь Intel не только сократил разрыв после выхода на рынок AMD Ryzen, но и получил результаты выше чем у процессоров AMD.
И здесь же отлично видно как i7-5960X получает прирост от версии 1.78.3 в базе данных CPU-Z, а реальный i3-10105F не получил значительного прироста, как и R7 2700X.
-===-
Заключение
Пожалуй результаты говорят сами за себя, проприетарная утилита CPU-Z начиная с версии встроенного теста 17.01.64 откровенно завышает результаты процессоров Intel относительно AMD...
Если смотреть на версию теста 15.00.64 и 15.01.64, то можно сказать что R7 2700X получил значительное преимущество над i3-10105F, однако важно понимать что тогда про AMD Ryzen не было известно, да и версия 15.00.64 просуществовала в единичном экземпляре и сразу же была заменена версией 15.01.64, которая уже держалась больше года в качестве теста.
Фактически разработчики CPU-Z держали версию встроенного теста 15.01.64 более года без заметных изменений, но как только был анонсирован AMD Ryzen, появилась версия CPU-Z 1.78.3 в которой результаты встроенного теста пошатнулись, но сама версия теста никак не изменилась.
Подмена алгоритма тестирования без изменения версии "CPUID Benchmark Version".
А начиная с версии встроенного теста 17.01.64 результаты Intel кардинально повысились относительно прошлой версии 15.01.64, при этом фактические результаты AMD Ryzen остались на прежнем уровне и даже слегка снизились, что в совокупности выставляет процессоры Intel более производительными относительно AMD чем это было до выхода на рынок процессоров AMD Ryzen.
Причем стабильность бенчмарка 15.01.64 намного лучше, чем у 17.01.64, пока про AMD Ryzen не было ничего известно 15.01.64 бенчмарк прекрасно жил себе без особых изменений между версиями CPU-Z, и всегда показывал конкретный результат, когда у версии 17.01.64 довольно часто случаются отклонения которые невозможно устранить повторно нажав кнопку "Bench CPU".
Разработчики проприетарной утилиты CPU-Z не только массово подменяют версии в своем официальном архиве версий CPU-Z, но и подменяют алгоритмы встроенного в утилиту теста производительности, при этом есть отчетливые попытки скрыть кардинальную разницу в результатах относительно предыдущей версии бенчмарка с помощью математических ухищрений.
А для особо одаренных (которые обязательно появятся в комментариях) я напомню, CPUID Benchmark для того и создан, чтобы сравнивать производительность разных процессоров, даже валидация предусмотрена разработчиками и встроенная база данных, неужели "тест для галочки" заслужил иметь конкретную версию и базу данных результатов? Конечно же нет, ибо это полноценный Benchmark который заявлен как Benchmark, а не "тест для галочки".
На этом все, благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила