Обман тестів завдає удару у відповідь: як OnePlus та інших спіймали на гарячому та що вони з цим зробили

OnePlus і Meizu були спіймані на шахрайстві в тестах. XDA досліджує, як це сталося, і що можна зробити, щоб цього більше не повторилося.

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

Ще в 2013 році це було виявлено що Samsung штучно підвищував тактову частоту графічного процесора в певних програмах, викликаючи серію розслідування у шахрайство в еталонних показниках у всьому діапазоні виробників. У той час розслідування виявило, що майже всі виробники, крім 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 ГГц для маленьких ядер і 1,29 ГГц для великих ядер, навіть коли навантаження на ЦП падало до 0%. Це досить дивно, оскільки зазвичай обидва набори ядер падають до 0,31 ГГц на OnePlus 3T, коли немає навантаження. Коли ми вперше побачили це, ми були стурбовані тим, що масштабування процесора OnePlus було просто встановлено трохи дивно, однак після подальшого тестування ми прийшли до висновку, що OnePlus має бути націлений на конкретні програми. Наша гіпотеза полягала в тому, що OnePlus орієнтувався на ці контрольні показники за назвою та перемикав альтернативний режим масштабування ЦП, щоб підвищити результати тестів. Одне з наших головних побоювань полягало в тому, що OnePlus, можливо, встановлював слабші температурні обмеження в цьому режимі, щоб уникнути проблем, які вони мали з OnePlus One, OnePlus X і OnePlus 2, де телефони погано справлялися з додатковими ядрами, що надходили в мережу для багатоядерного розділу Geekbench, і час від часу суттєво знижуючись у результаті (до точки, коли OnePlus X інколи показував нижчі бали в багатоядерному розділі, ніж у одноядерному основний розділ). У нас ви можете знайти сильний троттлінг Огляд OnePlus 2, де ми з’ясували, що пристрій може знизити до 50% свого багатоядерного результату Geekbench 3. Пізніше, коли ми почали порівнювати троттлінг і температуру на різних пристроях, OnePlus 2 став хрестоматійним прикладом того, чого слід уникати виробникам комплектного обладнання.

Ми звернулися до команди за адресою Лабораторії Primate (творці Geekbench), які зіграли важливу роль у викритті першої хвилі шахрайства в еталонних тестах і співпрацювали з ними для подальшого тестування. Ми привезли OnePlus 3T до офісу Primate Labs у Торонто для початкового аналізу. Початкове тестування включало дамп ПЗУ, який виявив, що OnePlus 3T безпосередньо шукав досить багато програм за назвою. Зокрема, OnePlus 3T шукав Geekbench, AnTuTu, Androbench, Quadrant, Vellamo та GFXBench. Оскільки на цей момент у нас були досить чіткі докази того, що OnePlus бере участь у шахрайстві тестів, Primate Labs створила «Міні-гольф Боба» версія Geekbench 4 для нас. Завдяки суттєві зміни між Geekbench 3 і 4, «Міні-гольф» версію довелося перебудувати з нуля спеціально для цього тестування. Ця версія Geekbench 4 розроблена таким чином, щоб уникнути будь-якого визначення тестів, щоб Geekbench міг працювати як звичайний додаток на телефонах, які шахраюють (виходять за рамки перейменування пакетів, яке обманює більшість спроб тестування обман).


Дивовижний приклад

Одразу після відкриття програми різниця стала очевидною. OnePlus 3T працював на частоті 0,31 ГГц, як у більшості програм, а не на 1,29 ГГц для великих ядер і 0,98 ГГц для маленьких ядер, як у звичайному додатку Geekbench. OnePlus робив регулятор ЦП більш агресивним, що призвело до практичного штучного зниження тактової частоти в Geekbench, якого не було в прихованій збірці Geekbench. Він базувався не на навантаженні ЦП, а скоріше на назві пакета програми, яку прихована збірка могла ввести в оману. Незважаючи на те, що різниця в окремих прогонах була мінімальною, послаблення теплового троттлінгу сяяло в нашому тесті тривалої продуктивності, показаному нижче.

З нашого тестування з’ясувалося, що це є «особливістю» Hydrogen OS протягом досить тривалого часу і не було додано до Oxygen OS, доки спільнота не створить збірки, що призвели до випуску Nougat (після два ПЗУ були об'єднані). Це трохи розчаровує, особливо в світлі проблем із програмним забезпеченням, які OnePlus мав цього місяця після злиття ПЗУ від уразливості завантажувача до Проблеми з відповідністю GPL. Ми сподіваємося, що коли пил після злиття двох команд вляжеться, OnePlus повернеться до форми та продовжить позиціонувати себе як варіант, зручний для розробників.

З «Міні-гольф» Взявши в руки версію Geekbench, ми вийшли й почали тестувати й інші телефони на обман тестів. На щастя, наше тестування не показало шахрайства з боку компаній, які були залучені в скандал півдесятка років тому. HTC, Xiaomi, Huawei, Honor, Google, Sony та інші, схоже, мають однакові бали між звичайною збіркою Geekbench і «Міні-гольф» будувати на наших тестових пристроях.

На жаль, ми знайшли можливі докази шахрайства в еталонних показниках, які ми ще не змогли підтвердити від кількох інших компаній, які ми будемо досліджувати далі. Найгіршим прикладом цього є Meizu Pro 6 Plus із процесором Exynos 8890, який перевів обман тестів до іншої крайності.


Жахливий приклад

Meizu історично встановлювала масштабування свого процесора надзвичайно консервативно. Примітно, що вони часто налаштовують свої телефони так, що великі ядра рідко підключаються до Інтернету, навіть коли вони перебувають у «режимі продуктивності», завдяки чому флагманські процесори (як-от відмінний Exynos 8890), які вони встановлюють у свої флагманські телефони, працюють як процесори середнього класу. Це стало актуальним торік, коли Anandtech визнали Meizu за низьку продуктивність у тестах JavaScript Anandtech на Meizu Pro 6 на базі Mediatek Helio X25, і зауважив, що великі ядра залишалися в автономному режимі протягом більшої частини тесту (коли тест повинен був виконуватися майже виключно на великому ядра). Минулого тижня компанія Anandtech помітила, що на Meizu Pro 6 було оновлено програмне забезпечення, яке нарешті дозволило Meizu використовувати ці ядра в повній мірі. Старший редактор відділу смартфонів Anandtech Метт Хамрік, зауважив що «Після оновлення до Flyme OS 5.2.5.0G PRO 6 працює значно краще. Показники Kraken, WebXPRT 2015 і JetStream покращуються приблизно в 2-2,5 рази. Meizu, очевидно, відкоригувала порогове значення навантаження, дозволяючи потокам частіше переходити на ядра A72 для кращої продуктивності».

На жаль, схоже, що замість покращення масштабування ЦП для нових пристроїв для отримання кращого тестів, вони, схоже, налаштували телефон на перехід на використання великих ядер, коли певні програми є біг.

Відкривши програму порівняльного аналізу, наш Meizu Pro 6 Plus рекомендує вам перейти в «Режим продуктивності» (який сам достатньо, щоб підтвердити, що вони шукають конкретні назви пакунків), і, здається, це має суттєву різницю. У стандартному «Режимі балансу» телефон стабільно набирає приблизно 604 і 2220 на одноядерних і багатоядерних розділах Geekbench, але в «Режим продуктивності» набирає 1473 і 3906, в основному завдяки тому, що великі ядра залишаються вимкненими протягом більшої частини тесту в «Режимі балансу» та вмикаються в «Режим продуктивності». Здається, Meizu блокує маленькі ядра на максимальній швидкості 1,48 ГГц і встановлює жорстку підлогу для двох своїх великих ядер 1,46 ГГц під час роботи Geekbench у «Режимі продуктивності» (з двома іншими великими ядрами, які можуть вільно масштабуватися та досить агресивно), чого ми не бачимо, коли запуск «Міні-гольф» будувати.

Хоча можливість вибору між режимом високої потужності та режимом низької потужності може бути приємною функцією, у цьому випадку це виглядає не більш ніж салонним трюком. Meizu Pro 6 Plus має пристойні результати в «Режимі продуктивності» для звичайної програми Geekbench, але під час використання «Міні-гольф» збірки Geekbench, він знову падає на той самий рівень продуктивності, який має, коли для нього встановлено «Режим балансу». Вища продуктивність Meizu Pro 6 Plus призначена лише для порівняльного аналізу, а не для щоденного використання.

Слід зазначити, що коли ми тестували Meizu Pro 6 Plus у «Режимі продуктивності» з секретом збірка Geekbench, великі ядра з’явилися в мережі, якщо ми записували тактову частоту за допомогою Qualcomm Трепн. Ми ще не визначили, чи 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 без версії Geekbench «Mini Golf».