Как OnePlus и Meizu попались на читинге в бенчмарках

Редакция XDA-Developers обнаружила, что некоторые смартфоны вновь странно ведут себя в бенчмарках – такое уже было четыре года назад, а в этом году попались OnePlus и Meizu. Мы перевели статью об их расследовании.

В 2013 году возникла шумиха по поводу того, что несколько крупных производителей завышали результаты устройств в бенчмарках. Вендоры всех масштабов обманывали пользователей, но прекратили после того, как это обнаружили эксперты и журналисты.

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

Тогда выяснилось, что все компании кроме Google/Motorola занимались читингом в бенчмарках. Они вкладывали время и деньги в то, чтобы выжать побольше мощности в тестах, которая при этом не сказывается на реальной работе устройства. В результате, покупатели думали, что их смартфоны быстрее, чем есть на самом деле. Для этого использовались разные средства: от завышения частоты процессора до создания отдельных режимов работы «железа» специально для бенчмарков.

По этому поводу стали выходить статьи на профильных ресурсах, осуждающие такой подход. Большинство производителей признало, что читинг неприемлем, и прекратили его. Разработчики бенчмарков же перестраховались: тесты стали занимать больше времени – тогда при завышении частоты процессора смартфоны сильно нагревались и читинг становился очевидным.

«Сделав тесты дольше, мы создали производителям проблему: если завышается частота процессора, отключаются регуляторы или происходит что-то еще в этом роде, и смартфон подвергается опасности», — Джон Пул, создатель Geekbench.

Что произошло теперь

К сожалению, некоторые производители снова занялись читингом. Впрочем, после обнаружения этого они быстро отреагировали и в скором времени должны исправиться. Удивительно, что вендоры возвращаются к старым методам, учитывая, какой результат был в прошлый раз (многие бенчмарки вовсе отказались работать с девайсами-читерами). И при этом, искусственное завышение производительности не дает заметных результатов – прирост составляет не более 5%.

Мы заметили одну странную вещь на OnePlus 3T. Она не повторялась ни на Mi Note 2 от Xiaomi, ни на Pixel XL от Google, хотя все три девайса работают на одном и том же процессоре – Qualcomm Snapdragon 821. Наш главный редактор, Марио Серраферо, с помощью Qualcomm Trepn и Snapdragon Performance Visualizer заметил, что частота ядер резко повышается в момент открытия приложений, а на OnePlus 3T после этого не возвращается к нормальным значениям.

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

Когда на OnePlus 3T запускаются определенные приложения для тестирования производительности, частота остается на уровне 0,98 ГГц для «маломощных ядер» и 1,29 ГГц для «мощных», даже когда процессор не нагружен. Это ненормально: без нагрузки частота чипсета должна падать до 0,31 ГГц и для одной, и для второй группы ядер.

Мы продолжили тестировать смартфон и убедились, что OnePlus определяет бенчмарки по названию, после чего переводит процессор на более производительный режим работы, дабы улучшить результаты. Интересно, что OnePlus возможно снижала ограничения по температуре, чтобы избежать проблему, которая возникала с первой, второй и X-моделью. Когда в работу вступали дополнительные ядра в многоядерном тесте GeekBench, происходил троттлинг [занижение частоты процессора из-за перегрева — прим.ред]. Он был настолько сильным, что 1+X в одноядерном тесте набирал больше баллов, чем в многоядерном. На OnePlus 2 из-за троттлинга производительность снижалась на 50%. Когда мы сравнивали троттлинг у разных смартфонов, оказалось, что OnePlus 2 – отличный пример того, как делать не надо.

Мы скооперировались с Primate Labs (создателями GeekBench) для дальнейшего тестирования. Мы проанализировали ROM 1+3T и выяснили, что смартфон действительно узнает бенчмарки по названию.

Primate Labs сделала эксклюзивно для наших экспериментов измененную версию Geekbench 4 «Bob’s Mini Golf Putt». Она не определяется как бенчмарк и запускается как обычное приложение.

Удивительный пример

Сразу после запуска измененного приложения, все стало очевидно. OnePlus 3T продолжил работать на частоте 0,31 ГГц, как и в большинстве других приложениий. Напомним, в обычном Geekbench девайс работает на частоте 0,98/1,29 ГГц. При этом, «попугаев» в тестах становилось не сильно больше, а вот нагрев в «секретном» Geekbench был существенно ниже.

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

Сравнение результатов OnePlus 3T в секретном (красный) и обычном (желтый) Geekbench. Первые четыре результата – многоядерный тест, вторые – одноядерный

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

Сравнение нагрева OnePlus 3T при тестировании в «секретном» (красный) и обычном (желтый) Geekbench в одноядерном режиме

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

Сравнение нагрева OnePlus 3T при тестировании в «секретном» (красный) и обычном (желтый) Geekbench в многоядерном режиме

Наше тестирование выявило, что в Hydrogen OS эта «особенность» была давно, а в более новой Oxygen OS появилась только после того, как объединились прошивки OnePlus и коммьюнити.

Мы проверили смартфоны других вендоров «секретной» версией GeekBench: HTC, Xiaomi, Huawei, Honor, Google, Sony и других – с ними все в порядке.

К сожалению, несколько производителей мы все-таки заподозрили, хотя точно сказать, что они завышают результаты, не можем. Худшим примером из всех стал Meizu Pro 6 Plus на базе Exynos 8890, читинг на котором еще более явный.

Ужасный пример

Meizu всегда настраивала процессоры консервативно – так, чтобы «мощные» ядра редко активировались даже в производительном режиме. Таким образом, флагманские процессоры (такие как Exynos 8890) работали как середняки.

Это всплыло еще в прошлом году, когда ресурс Anandtech обратил внимание на плохие результаты в JavaScript-тесте смартфона Meizu Pro 6 на базе MediaTek Helio X25. Там отметили, что «мощные» ядра большую часть тестирования были выключены, тогда как бенчмарк направлен в основном на эти самые «мощные» ядра.

После этого Anandtech сообщил, что обновление исправило ситуацию.

«После обновления до Flyme OS 5.2.5.0G, Pro 6 показывает гораздо лучшую производительность. Результаты в The Kraken, WebXPRT 2015 и JetStream возросли в 2-2,5 раза. Вероятно, Meizu перераспределила нагрузку, позволив ядрам A72 включаться чаще», — Мэтт Хамрик, Anandtech.

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

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

Сравнение результатов Meizu Pro 6 Plus в секретном (красный) и обычном (желтый) Geekbench. Первые четыре результата – многоядерный тест, вторые – одноядерный

При запуске бенчмарка, Meizu Pro 6 Plus предлагает переключиться в производительный режим (это уже подтверждает то, что смартфон определяет целевые приложения по названию). Это дает существенный прирост: в стандартном режиме производительности смартфон набирает в Geekbench 604 и 2 220 баллов в одноядерном и многоядерном режимах, а в производительном – 1 473 и 3 906. Это неудивительно: в сбалансированном режиме «мощные» ядра практически не включаются, а в производительном Meizu устанавливает для «маломощных» ядер частоту в 1,48 ГГц, тогда как «мощным» не дает опускаться ниже отметки в 1,46 ГГц. И, конечно же, всего этого нет в «секретном» Geekbench.

Переключение между режимами производительности – отличная возможность, но в этом случае она не более чем обманный трюк. В обычном Geekbench Pro 6 Plus показывает хорошие результаты, но в «Mini Golf» различий между этими режимами производительности нет – значит, ее нет и в остальных приложениях.

Как отреагировали вендоры

Мы сообщили OnePlus о проблемах, которые нашли в 3T. В ответ OnePlus пообещала исключить приложения-бенчмарки из списка, но при этом оставить в нем игры. В будущей версии OxygenOS «обманный» механизм не будет работать с бенчмарками. Также компания пообещала добавить переключатель режимов производительности.

Конечно, мы рады этим обещаниям, но все равно расстроены тем, что вместо более тщательной настройки распределения нагрузки OnePlus просто отмечает определенные приложения. Ситуация будет становиться только хуже со временем, ведь список обновляется не так часто, как выходят новые требовательные игры.

Читинг в бенчмарках вернулся: как попались OnePlus и другие, и как они исправились

К сожалению, единственный способ пресекать такое поведение производителей – это постоянная бдительность. Как коммьюнити энтузиастов, мы должны следить за такими попытками обмануть пользователей. И дело тут не в самих баллах, которые смартфоны набирают в тестах, а в том, что эти баллы говорят о производительности этого смартфона.

На OnePlus 3 не было читинга, когда он только вышел, но достаточно было лишь небольшого обновления ПО и эта «недостающая особенность» появилась – так что проверять девайсы на читинг нужно постоянно, а не только сразу после поступления в продажу.

Стоит отметить, что даже с этими «особенностями», в которые производители вкладывают время и деньги, удается добиться прироста всего в пару процентов (кроме случаев вроде Meizu, где читинг говорит о более масштабных проблемах). Кажется, что эта пара процентов – пустяк. Но топовые девайсы часто обладают одинаковым набором железа, и эти пустяки в итоге сказываются на положении устройств в рейтингах производительности, которые так любят пользователи.

Лучшая оптимизация драйверов и более продуманное распределение нагрузки существенно сказываются на производительности: разница между лучшим и худшим смартфоном на Snapdragon 820 составляет 20% в Geekbench. 20% благодаря оптимизации против пары процентов в результате читинга.

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

Источник: XDA-Developers