Benchmark Cheating отвръща на удара: Как OnePlus и други бяха хванати на местопрестъплението и какво направиха по въпроса

OnePlus и Meizu бяха хванати да изневеряват на бенчмаркове. XDA проучва как се е случило това и какво може да се направи, за да се предотврати това да се случи отново.

Преди няколко години имаше значителен шум, когато много големи производители бяха хванати да мамят с бенчмаркове. OEM производители от всички размери (включително Samsung, HTC, Sony, и LG) участваха в тази надпревара във въоръжаването, опитвайки се да заблудят потребителите, без да бъдат хванати, но за щастие те в крайна сметка спряха измамите си за бенчмарк след някои откровени дискусии с експерти от индустрията и журналисти.

През 2013 г. беше така открити че Samsung изкуствено повишава тактовите честоти на своя GPU в определени приложения, предизвиквайки серия от разследвания в измама на еталонни показатели в цялата гама производители. По това време разследването установи, че почти всеки производител, с изключение на Google/Motorola, е участвал в измама с бенчмаркове. Всички те инвестираха време и пари в опити да извлекат малко повече производителност от своите телефони в бенчмаркове по начини, няма да има положителен ефект върху ежедневната употреба, в опит да заблудят потребителите да мислят, че телефоните им са по-бързи, отколкото всъщност бяха. Тези усилия за разработка обхванаха цялата гама, от определяне на долни стойности на тактовата честота, до принудително поставяне на тактовите скорости до техните максимални настройки, дори до създаване на специални по-високи състояния на захранване и специални тактови скорости, които бяха налични само при сравнителен анализ, като тези усилия често водят до само няколко процентни пункта увеличения в бенчмарк.

Имаше значително възмущение, когато беше открито, тъй като тези опити за измама с бенчмаркове противоречат на самата точка на самите бенчмаркове. Повечето бенчмаркове не са там, за да ви кажат теоретичната максимална производителност на телефон в лабораторни условия, които не са възпроизводими при ежедневна употреба, а по-скоро те са там, за да ви дадат отправна точка за сравнения в реалния свят между телефони. След малко публично упрекване (и някои частни разговори) от технологични публикации, лидери в индустрията и широката общественост, повечето производители получиха съобщението, че измамата с бенчмарк просто не е приемлива, и спряха като резултат. Повечето от малкото, които не спряха в този момент, спряха скоро след това, тъй като бяха направени съществени промени до колко бенчмарка се изпълняват, в опит да се обезсърчи измамата на бенчмарка (чрез намаляване на ползата от то). Много бенчмаркове бяха направени по-дълги, така че термичното дроселиране от максимизиране на тактовите честоти да стане веднага очевидно.

Когато ние интервюиран Джон Пуул, създателят на Geekbench, се появи темата за измамите с бенчмарк и какво могат да направят компании като Primate Labs, за да го предотвратят. По-специално Primate Labs направиха Geekbench 4 доста по-дълъг от Geekbench 3, отчасти за да намалят ефектите от измамата на бенчмарка. Намаляване на ползите, за да се гарантира, че развитието разходите за измама на бенчмарк не си струват.

„Проблемът е, че след като имаме тези големи времена на изпълнение, ако започнете да играете неща, като увеличите часовника си скорости или деактивиране на регулаторите или нещо подобно, ще започнете да създавате реална опасност в телефон... Ако ще го играете... няма да извлечете толкова много от него. Все още може да получите няколко процента, но наистина ли си струва?" - Джон Пул


Какво стана

За съжаление трябва да съобщим, че някои OEM производители отново са започнали да мамят, което означава, че трябва да сме нащрек още веднъж. За щастие, производителите са станали все по-отзивчиви към проблеми като този и с правилното внимание към него, това може да бъде коригирано бързо. Малко е шокиращо да се види как производителите прилагат измама от бенчмарка в светлината на това колко лоша беше обратната реакция последния път, когато е направен опит (с някои бенчмаркове, които напълно изключват измамни устройства от тяхното представяне списъци). С тази обратна реакция, контрастираща с това колко малки са печалбите в производителността от измамите на бенчмарка обикновено (с повечето от опитите, довели до по-малко от 5% увеличение на резултата последния път), ние наистина се надявахме, че всичко това ще е назад нас.

Моментът на този опит е особено неподходящ, тъй като преди няколко месеца измамата с бенчмарка напусна света като чисто загриженост за ентусиастите и навлезе в публичната сфера, когато Volkswagen и Fiat Chrysler бяха хванати да мамят с емисиите си бенчмаркове. И двете компании внедриха софтуер за откриване кога техните дизелови автомобили са били подложени на тестове за емисии и ги накараха да преминат в режим на ниски емисии които отбелязаха спад на икономията на гориво, в опит да се конкурират с бензиновите автомобили по отношение на горивната ефективност, като същевременно остават в регулаторните граници за емисии тестове. Досега скандалът е довел до милиарди глоби, десетки милиарди разходи за изтегляне и повдигнати обвинения - със сигурност не е видът на възмездието Производителите на оригинално оборудване биха искали да завишат своите референтни резултати, които са само за потребителски сравнения и не се използват за измерване на регулаторни изисквания.

Докато проучване как Qualcomm постига по-бързи скорости на отваряне на приложения на новия тогава Qualcomm Snapdragon 821 забелязахме нещо странно на OnePlus 3T които не можахме да възпроизведем на Xiaomi Mi Note 2 или Google Pixel XL, наред с други устройства със Snapdragon 821. Нашият главен редактор, Марио Сераферо, използваше Qualcomm Trepn и Snapdragon Performance Visualizer, за да наблюдава как Qualcomm „усилва“ процесора тактова честота при отваряне на приложения и забеляза, че някои приложения на OnePlus 3T не се връщат обратно към нормалните си скорости на празен ход след отваряне. Като общо правило ние избягваме да тестваме бенчмаркове с отворени инструменти за наблюдение на производителността, когато е възможно, поради допълнителните разходи за производителност, които носят (особено в устройства, различни от Snapdragon, където няма официални инструменти за настолни компютри), но в този инцидент те ни помогнаха да забележим някакво странно поведение, което вероятно бихме пропуснали в противен случай.

При влизане в определени приложения за сравнителен анализ, ядрата на OnePlus 3T ще останат над 0,98 GHz за малките ядра и 1,29 GHz за големите ядра, дори когато натоварването на процесора падне до 0%. Това е доста странно, тъй като обикновено и двата комплекта ядра падат до 0,31 GHz на OnePlus 3T, когато няма натоварване. След като видяхме това за първи път, се притеснихме, че мащабирането на процесора на OnePlus просто е зададено малко странно, въпреки това при по-нататъшно тестване стигнахме до заключението, че OnePlus трябва да е насочен конкретно приложения. Нашата хипотеза беше, че OnePlus се насочва към тези бенчмаркове по име и влиза в алтернативен режим на мащабиране на процесора, за да повиши своите бенчмарк резултати. Едно от основните ни опасения беше, че OnePlus вероятно задаваше по-слаби термични ограничения в този режим, за да избегне проблемите, които имаха с OnePlus One, OnePlus X и OnePlus 2, където телефоните се справяха зле с допълнителните ядра, идващи онлайн за многоядрения раздел на Geekbench, и от време на време намалявайки значително в резултат (до точката, в която OnePlus X понякога постига по-ниски резултати в многоядрения раздел, отколкото в единичния основна секция). Можете да намерите силно дроселиране в нашия Преглед на OnePlus 2, където открихме, че устройството може да намали до 50% от многоядрения резултат на Geekbench 3. По-късно, когато започнахме да сравняваме дроселирането и термиките между устройствата, OnePlus 2 се превърна в учебникарски пример за това какво производителите на оригинално оборудване трябва да избягват.

Свързахме се с екипа на Primate Labs (създателите на Geekbench), които изиграха важна роля в разкриването на първата вълна от измама при бенчмаркове и си партнираха с тях за по-нататъшно тестване. Донесохме OnePlus 3T в офиса на Primate Labs в Торонто за първоначален анализ. Първоначалното тестване включваше изхвърляне на ROM, което установи, че OnePlus 3T директно търси доста приложения по име. Най-вече OnePlus 3T търсеше Geekbench, AnTuTu, Androbench, Quadrant, Vellamo и GFXBench. Тъй като до този момент имахме доста ясни доказателства, че OnePlus се занимава с измама при сравнителни показатели, Primate Labs изградиха „Мини голфът на Боб“ версия на Geekbench 4 за нас. Благодаря на съществени промени между Geekbench 3 и 4, the "Мини голф" версията трябваше да бъде преустроена от нулата специално за това тестване. Тази версия на Geekbench 4 е проектирана да избягва всяко откриване на бенчмарк, за да позволи на Geekbench да работи нормално приложение на телефони, които мамят (надхвърляйки преименуването на пакета, което заблуждава повечето опити за бенчмарк изневерява).


Изненадващ пример

Веднага след отваряне на приложението разликата беше ясна. OnePlus 3T работеше на празен ход на 0,31 GHz, както е в повечето приложения, вместо на 1,29 GHz за големите ядра и 0,98 GHz за малките ядра, както е в обикновеното приложение Geekbench. OnePlus правеше регулатора на процесора по-агресивен, което доведе до практичен изкуствен дол на тактовата честота в Geekbench, който не беше там в скритата версия на Geekbench. Не се основаваше на натоварването на процесора, а по-скоро на името на пакета на приложението, което скритата компилация можеше да заблуди. Въпреки че разликата в отделните серии беше минимална, отпусканията на термичното дроселиране блестят в нашия тест за продължителна производителност, показан по-долу.

От нашето тестване изглежда, че това е „характеристика“ на Hydrogen OS от доста време насам и не е добавено към Oxygen OS, докато общността не изгражда, водеща до изданието на Nougat (след два ROM бяха обединени). Това е малко разочароващо да се види, особено в светлината на софтуерните проблеми, които OnePlus имаше този месец след сливането на ROM, от уязвимости на буутлоудъра да се Проблеми със съответствието с GPL. Надяваме се, че докато прахът се утаява след сливането на двата екипа, OnePlus ще се върне към формата и ще продължи да се позиционира като удобна за разработчиците опция.

С "Мини голф" версия на Geekbench в ръка, ние излязохме и започнахме да тестваме и други телефони за бенчмарк измама. За щастие нашите тестове не показват измама от страна на компаниите, които бяха замесени в скандала преди половин десетилетие. HTC, Xiaomi, Huawei, Honor, Google, Sony и други изглежда имат постоянни резултати между обикновената компилация на Geekbench и "Мини голф" надградете върху нашите тестови устройства.

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


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

Исторически Meizu са ​​задавали мащабирането на своя процесор изключително консервативно. Трябва да се отбележи, че те често настройват телефоните си така, че големите ядра рядко да се свързват онлайн, дори когато са в техния „режим на производителност“, което прави водещите процесори (като отличния Exynos 8890), които поставят в своите водещи телефони, действат като процесори от среден клас. Това дойде на върха миналата година, когато Anandtech обвини Meizu за лошото им представяне на JavaScript бенчмарковете на Anandtech на базирания на Mediatek Helio X25 Meizu Pro 6 и отбеляза, че големите ядра останаха офлайн през по-голямата част от теста (когато тестът трябваше да се изпълнява почти изключително на големия ядра). Anandtech забеляза миналата седмица, че софтуерна актуализация е била насочена към Meizu Pro 6, която най-накрая позволява на Meizu да използва тези ядра в най-голяма степен. Старши редактор за смартфони на Anandtech, Мат Хъмрик, отбеляза че „След актуализиране до Flyme OS 5.2.5.0G, PRO 6 работи значително по-добре. Резултатите на Kraken, WebXPRT 2015 и JetStream се подобряват с около 2x-2,5x. Meizu очевидно е коригирал праговата стойност на натоварването, позволявайки нишките да мигрират към ядрата A72 по-често за по-добра производителност."

За съжаление, изглежда, че вместо да подобрят мащабирането на процесора за новите си устройства, за да получат по-добро сравнителни резултати, те изглежда са настроили телефона да превключва към използване на големите ядра, когато определени приложения са бягане.

При отваряне на приложение за сравнителен анализ, нашият Meizu Pro 6 Plus препоръчва да превключите в „Режим на производителност“ (който сам е достатъчно, за да потвърди, че те търсят конкретни имена на пакети), и изглежда, че има съществена разлика. Когато е в стандартния „Режим на баланс“, телефонът последователно постига резултати около 604 и 2220 в едноядрените и многоядрените секции на Geekbench, но в „Режим на производителност“ той отбелязва 1473 и 3906, до голяма степен благодарение на големите ядра, които остават изключени през по-голямата част от теста в „Режим на баланс“ и се включват в „Режим на производителност“. Meizu изглежда заключва малките ядра до максималната им скорост от 1,48 GHz и задава твърд под за две от големите си ядра от 1,46 GHz, когато работят Geekbench, докато е в „Режим на производителност“ (като другите две големи ядра могат да се мащабират свободно и доста агресивно), което не виждаме, когато управление на "Мини голф" изграждане.

Въпреки че възможността да избирате между режим на висока мощност и режим на ниска мощност може да бъде хубава функция, в този случай изглежда, че не е нищо повече от салонен трик. Meizu Pro 6 Plus вижда прилични резултати в „Режим на производителност“ за обикновеното приложение Geekbench, но когато използвате "Мини голф" компилация на Geekbench, тя пада обратно на същото ниво на производителност, каквото има, когато е настроено на „Режим на баланс“. Състоянието на по-висока производителност на Meizu Pro 6 Plus е само за сравнителен анализ, а не за действителна ежедневна употреба.

Едно нещо, което трябва да се отбележи е, че когато тествахме Meizu Pro 6 Plus в „Режим на производителност“ с тайната компилация на Geekbench, големите ядра се появиха онлайн, ако записвахме тактовите честоти с Qualcomm Trepn. Все още не сме определили дали Meizu разпознава, че Trepn работи и включва големите ядра в отчасти поради това или ако просто включва големите ядра поради допълнителното натоварване на процесора, което го прави създава. Въпреки че може да звучи контраинтуитивно, че едно допълнително натоварване във фонов режим (като например, когато поддържахме графиките на производителността включени по време на теста) би нараства според резултатите от бенчмарк, консервативното мащабиране на Meizu може да означава, че допълнителните разходи са били достатъчно, за да го прехвърли ръба и да извика големите ядра в действие, като по този начин подобрява производителността за всички задачи.


Когато възприемчивите OEM адресират обратна връзка...

След нашето тестване се свързахме с OnePlus относно проблемите, които открихме. В отговор, OnePlus бързо обеща да спре да се насочва към приложения за сравнителен анализ с техния бенчмарк измама, но все пак възнамерява да го запази за игри (които също се сравняват). В бъдещо изграждане на OxygenOS този механизъм няма да се задейства от бенчмаркове. OnePlus прие предложението ни да добави и превключвател, така че потребителите да знаят какво се случва под капака и най-малкото трябва да бъде несправедливото и подвеждащо предимство в бенчмарковете поправено. Поради празника на китайската Нова година и изоставането на функциите им обаче може да мине известно време, преди да видим потребителски опции за персонализиране за тази функция за ефективност. Докато коригирането на поведението само по себе си е подобрение, все още е малко разочароващо да се види редовно приложения (като игри), тъй като е патерица за насочване към конкретни приложения, вместо да подобрява действителната производителност мащабиране. Чрез изкуствено повишаване на агресивността на процесора и по този начин на тактовите честоти за конкретни приложения, вместо да подобряват способността на телефоните си да идентифицират кога действително се нуждае от по-висока тактови скорости, OnePlus създава непостоянна производителност за своите телефони, което ще стане по-очевидно само с остаряването на телефона и повече игри, към които OnePlus не е насочен освободен. Внедряването обаче в момента позволява на игрите да се представят по-добре. OnePlus също предостави изявление за тази статия, което можете да прочетете по-долу:

 „За да предоставим на потребителите по-добро потребителско изживяване в ресурсоемки приложения и игри, особено графично интензивни такива, внедрихме определени механизми в общността и компилации на Nougat, за да задействаме процесора да работи повече агресивно. Процесът на задействане за сравняване на приложения няма да присъства в предстоящите компилации на OxygenOS върху OnePlus 3 и OnePlus 3T.

Радваме се да чуем, че OnePlus ще премахнат измамата за бенчмарк от своите телефони. Занапред ще продължим да се опитваме да окажем натиск върху производителите на оригинално оборудване да бъдат по-приятелски настроени към потребителите, когато това е възможно, и ще следим за бъдещи измами от бенчмаркове.

За съжаление, единственият истински отговор на този вид измама е постоянната бдителност. Като общност на ентусиастите на смартфони, трябва да внимаваме за опити за измама на потребителите като този. Интересуват ни не самите резултати от бенчмарка, а по-скоро какво казват бенчмарковете за производителността на телефона. Докато измамата на бенчмарка все още не беше активна на OnePlus 3 когато го прегледахме, една проста софтуерна актуализация беше достатъчна, за да добави тази подвеждаща „функция“ и ясно илюстрира, че проверката на устройствата за измамни показатели при първото им стартиране не е така достатъчно. Проблеми като този могат да бъдат добавени дни, седмици, месеци или дори години след стартирането на устройството, изкуствено надуване на глобалните средни стойности, събрани от бенчмаркове месеци надолу, оказвайки влияние върху крайната база данни резултат. Трябва да се отбележи, че дори и с тези настройки, които производителите трябваше да инвестират време и пари, за да разработят, обикновено виждаме само няколко процентни пункта увеличение в сравнителните резултати (с изключение на няколко странични случая като Meizu, където измамата прикрива много по-големи проблеми). Няколко процентни пункта, което е много по-малко от разликата между най-добре представящите се и най-лошо работещите устройства. Бихме казали обаче, че с устройства, работещи с все по-сходен хардуер, тези допълнителни процентни точки може да са решаващият фактор в класациите за класиране, които потребителите в крайна сметка търсят. По-добрата оптимизация на драйверите и по-интелигентното мащабиране на процесора могат да имат абсолютно огромен ефект върху производителността на устройството, като разликата между резултатът на най-добре представящото се базирано на Qualcomm Snapdragon 820 устройство и най-слабо представящото се (от основен OEM) надвишава 20% на Geekbench. Двадесет процента от оптимизиране на драйвери, вместо няколко процентни пункта от харчене на време и пари за измама на вашите потребители. И това е просто да говорим за усилията за развитие, които могат да повлияят на сравнителните резултати. Много от най-големите предимства на инвестирането в подобряване на софтуера на устройството не винаги се показват на бенчмаркове, като OnePlus предлага отлична реална производителност в своите устройства. Наистина трябва да е ясно къде трябва да се съсредоточат усилията за развитие на компанията в този случай. Ние се обръщаме към повече компании, които мамят с бенчмаркове, когато ги открием, и се надяваме, че те са толкова възприемчиви, колкото OnePlus.


Бихме искали още веднъж да благодарим на екипа на Primate Labs за работата с нас, за да разкрием този проблем. Би било значително по-трудно да се тества правилно за Benchmark Cheating без изданието „Mini Golf“ на Geekbench.