OnePlus i Meizu zostały przyłapane na oszukiwaniu w benchmarkach. XDA bada, jak do tego doszło i co można zrobić, aby zapobiec ponownemu wystąpieniu takiej sytuacji.
Kilka lat temu doszło do sporego zamieszania, gdy wielu dużych producentów zostało przyłapanych na oszukiwaniu w benchmarkach. Producenci OEM wszystkich rozmiarów (w tym SAMSUNG, HTC, Sonyi LG) wzięły udział w tym wyścigu zbrojeń, próbując oszukać użytkowników bez przyłapania, ale na szczęście w końcu zaprzestali oszukiwania swoich benchmarków po kilku szczerych dyskusjach z eksperci branżowi i dziennikarze.
W 2013 roku tak było odkryty że Samsung sztucznie zwiększał taktowanie procesora graficznego w niektórych aplikacjach, wywołując serię dochodzenia do oszukiwania w benchmarkach wśród całej gamy producentów. W tamtym czasie dochodzenie wykazało, że prawie wszyscy producenci, z wyjątkiem Google i Motoroli, oszukiwali w benchmarkach. Wszyscy inwestowali czas i pieniądze, próbując zwiększyć wydajność swoich telefonów w testach porównawczych w sposób, który nie miałoby żadnego pozytywnego wpływu na codzienne użytkowanie, próbując oszukać użytkowników, aby myśleli, że ich telefony są szybsze niż w rzeczywistości był. Te wysiłki rozwojowe obejmowały całą gamę, od ustawiania minimalnych prędkości zegara, przez wymuszanie prędkości zegara do maksymalnych ustawień, a nawet tworzenie specjalnych, wyższych częstotliwości stany zasilania i specjalne częstotliwości taktowania, które były dostępne tylko podczas testów porównawczych, a wysiłki te często skutkowały wzrostem zaledwie o kilka punktów procentowych reper.
Kiedy to odkryto, wywołało to ogromne oburzenie, ponieważ próby oszukiwania testów porównawczych były sprzeczne z samym założeniem samych testów porównawczych. Większość testów porównawczych nie pozwala określić teoretycznej maksymalnej wydajności telefonu w warunkach laboratoryjnych, w których takie nie są odtwarzalne w codziennym użytkowaniu, ale raczej mają na celu zapewnienie punktu odniesienia dla porównań w świecie rzeczywistym pomiędzy telefony. Po krótkich publicznych krytykach (i kilku prywatnych rozmowach) ze strony publikacji technologicznych, liderów branży i ogółu społeczeństwa, większość producentów otrzymała komunikat, że oszukiwanie w benchmarkach jest po prostu niedopuszczalne, i zaprzestała ich stosowania wynik. Większość z tych nielicznych, które nie zatrzymały się w tym momencie, zatrzymała się wkrótce potem, ponieważ wprowadzono istotne zmiany do liczby uruchomionych testów porównawczych, próbując zniechęcić do oszukiwania w testach porównawczych (poprzez zmniejszenie korzyści z To). Wiele testów porównawczych zostało wydłużonych, aby dławienie termiczne wynikające z maksymalizacji częstotliwości zegara stało się natychmiast widoczne.
Kiedy my wywiad John Poole, twórca Geekbench, pojawił się temat oszukiwania w benchmarkach i tego, co firmy takie jak Primate Labs mogą zrobić, aby temu zapobiec. W szczególności firma Primate Labs wydłużyła Geekbench 4 nieco dłużej niż Geekbench 3, częściowo po to, aby zmniejszyć skutki oszukiwania w testach porównawczych. Ograniczanie świadczeń w celu zapewnienia rozwoju koszty oszukiwania w benchmarkach nie są tego warte.
„Problem polega na tym, że gdy mamy już tak duże czasy działania, zaczynasz grać, zwiększając swój zegar prędkości lub wyłączanie gubernatorów lub coś w tym stylu, zaczniesz stwarzać rzeczywiste, realne niebezpieczeństwo telefon... Jeśli masz zamiar w to grać... nie wyciągniesz z tego zbyt wiele. Nadal możesz zyskać kilka procent, ale czy naprawdę warto?” – John Poole
Co się stało
Niestety musimy zgłosić, że niektórzy producenci OEM ponownie zaczęli oszukiwać, co oznacza, że powinniśmy jeszcze raz zwrócić uwagę. Na szczęście producenci coraz częściej reagują na takie problemy, a przy zwróceniu na nie odpowiedniej uwagi można je szybko naprawić. To trochę szokujące, że producenci wdrażają oszukiwanie w testach porównawczych w świetle tego, jak duży był odzew przy ostatniej próbie (niektóre testy porównawcze całkowicie wykluczały urządzenia oszukujące z ich działania listy). Biorąc pod uwagę tę reakcję kontrastującą z tym, jak niewielki jest zazwyczaj wzrost wydajności w wyniku oszukiwania w testach porównawczych (w większości prób, które ostatnim razem zakończyły się wynikiem mniejszym niż 5%), naprawdę mieliśmy nadzieję, że to wszystko będzie już za nami nas.
Moment tej próby jest szczególnie nieodpowiedni, ponieważ kilka miesięcy temu oszukiwanie w benchmarkach sprawiło, że świat stał się wyłącznie zaniepokojenie entuzjastów i weszło do sfery publicznej, gdy Volkswagen i Fiat Chrysler zostały przyłapane na oszukiwaniu w zakresie emisji spalin punkty odniesienia. Obie firmy wdrożyły oprogramowanie wykrywające, kiedy ich samochody z silnikiem Diesla poddawane są testom emisji, i kazały im przełączyć się w tryb niskiej emisji w wyniku czego spadło zużycie paliwa, próbując konkurować z samochodami benzynowymi pod względem zużycia paliwa, jednocześnie utrzymując się w granicach regulacyjnych dotyczących emisji testy. Jak dotąd skandal doprowadził do wielomiliardowych grzywien, dziesiątek miliardów kosztów wycofania z rynku i postawienia zarzutów – z pewnością nie jest to rodzaj zemsty Producenci OEM kiedykolwiek zgodziliby się na zawyżanie wyników swoich testów porównawczych, które służą wyłącznie porównaniom użytkowników i nie są wykorzystywane do pomiaru jakichkolwiek przepisów wymagania.
Chwila badanie, w jaki sposób Qualcomm osiąga większą prędkość otwierania aplikacji na wówczas nowym Qualcomm Snapdragon 821 zauważyliśmy coś dziwnego na OnePlusa 3T których nie mogliśmy odtworzyć na Xiaomi Mi Uwaga 2 albo Google Pixel XL, wśród innych urządzeń ze Snapdragonem 821. Nasz redaktor naczelny, Mario Serrafero, korzystał z Qualcomm Trepn i Snapdragon Performance Visualizer do monitorowania, w jaki sposób Qualcomm „zwiększa” procesor prędkość zegara podczas otwierania aplikacji i zauważyłem, że niektóre aplikacje w OnePlus 3T nie wracały do normalnych prędkości na biegu jałowym po otwarcie. Ogólną zasadą jest to, że jeśli to możliwe, unikamy testowania testów porównawczych z otwartymi narzędziami do monitorowania wydajności ze względu na dodatkowe koszty związane z wydajnością. (szczególnie w urządzeniach innych niż Snapdragon, gdzie nie ma oficjalnych narzędzi komputerowych), jednakże w tym przypadku pomogły nam one zauważyć pewne dziwne zachowanie, które prawdopodobnie byśmy przeoczyli W przeciwnym razie.
Po wejściu do niektórych aplikacji testowych rdzenie OnePlus 3T utrzymywały się powyżej 0,98 GHz dla małych rdzeni i 1,29 GHz dla dużych rdzeni, nawet gdy obciążenie procesora spadło do 0%. Jest to dość dziwne, ponieważ normalnie oba zestawy rdzeni spadają do 0,31 GHz w OnePlus 3T, gdy nie ma obciążenia. Widząc to po raz pierwszy, martwiliśmy się, że skalowanie procesora OnePlus zostało po prostu nieco dziwnie ustawione, jednak po dalszych testach doszliśmy do wniosku, że OnePlus musi być ukierunkowany na konkretny cel Aplikacje. Nasza hipoteza była taka, że OnePlus celował w te testy z nazwy i przechodził w alternatywny tryb skalowania procesora, aby poprawić wyniki testów. Jedną z naszych głównych obaw było to, że OnePlus prawdopodobnie ustawiał luźniejsze ograniczenia termiczne w tym trybie, aby uniknąć problemów, jakie mieli z OnePlus One, OnePlus X i OnePlus 2, w których telefony słabo radziły sobie z dodatkowymi rdzeniami przychodzącymi do sieci w sekcji wielordzeniowej Geekbench, oraz w rezultacie czasami znacznie się ogranicza (do tego stopnia, że OnePlus X czasami osiągał gorsze wyniki w sekcji wielordzeniowej niż w wersji jednordzeniowej) część podstawowa). W naszym przypadku możesz znaleźć silne dławienie Recenzja OnePlusa 2, gdzie odkryliśmy, że urządzenie może stracić nawet 50% wyniku wielordzeniowego w Geekbench 3. Później, kiedy zaczęliśmy porównywać dławienie i termikę na różnych urządzeniach, problem OnePlusa 2 stał się podręcznikowym przykładem tego, czego producenci OEM powinni unikać.
Skontaktowaliśmy się z zespołem ds Laboratoria Prymasów (twórcy Geekbench), którzy odegrali kluczową rolę w ujawnieniu pierwszej fali oszustw związanych z benchmarkami i nawiązali z nimi współpracę w celu dalszych testów. Przywieźliśmy OnePlus 3T do biura Primate Labs w Toronto w celu wstępnej analizy. Wstępne testy obejmowały zrzut pamięci ROM, który wykazał, że OnePlus 3T bezpośrednio szukał kilku aplikacji według nazwy. Co najważniejsze, OnePlus 3T szukał Geekbench, AnTuTu, Androbench, Quadrant, Vellamo i GFXBench. Ponieważ w tym momencie mieliśmy dość wyraźne dowody na to, że OnePlus oszukiwał w testach porównawczych, Primate Labs stworzyło „Putt Boba do minigolfa” wersja Geekbench 4 dla nas. Dzięki do istotne zmiany pomiędzy Geekbench 3 i 4, "Mini golf" wersja musiała zostać przebudowana od podstaw specjalnie na potrzeby tych testów. Ta wersja Geekbench 4 została zaprojektowana tak, aby uniknąć wykrycia jakichkolwiek testów porównawczych, aby umożliwić Geekbench normalne działanie aplikacja na telefony, które oszukują (wykraczając poza zmianę nazwy pakietu, która oszukuje większość prób testu porównawczego oszukiwanie).
Zaskakujący przykład
Od razu po otwarciu aplikacji różnica była wyraźna. OnePlus 3T na biegu jałowym pracował z częstotliwością 0,31 GHz, tak jak ma to miejsce w większości aplikacji, a nie 1,29 GHz dla dużych rdzeni i 0,98 GHz dla małych rdzeni, jak ma to miejsce w zwykłej aplikacji Geekbench. OnePlus sprawił, że gubernator procesora był bardziej agresywny, co skutkowało praktycznym sztucznym podniesieniem prędkości zegara w Geekbench, którego nie było w ukrytej wersji Geekbench. Nie opierało się to na obciążeniu procesora, ale raczej na nazwie pakietu aplikacji, którą ukryta kompilacja mogła oszukać. Chociaż różnica w poszczególnych przebiegach była minimalna, w naszym teście ciągłej wydajności, pokazanym poniżej, widać relaksację dławienia termicznego.
Z naszych testów wynika, że jest to „funkcja” Hydrogen OS już od dłuższego czasu i nie została dodana do Oxygen OS, dopóki społeczność nie zbuduje się przed wydaniem Nougata (po wydaniu dwa ROMy zostały połączone). To trochę rozczarowujące, szczególnie w świetle problemów z oprogramowaniem, które OnePlus miał w tym miesiącu po połączeniu ROM-ów, od luki w bootloaderze Do Problemy ze zgodnością z GPL. Mamy nadzieję, że gdy opadnie kurz po połączeniu obu zespołów, OnePlus powróci do formy i nadal będzie pozycjonować się jako opcja przyjazna programistom.
Z "Mini golf" wersję Geekbench, wyszliśmy i zaczęliśmy testować inne telefony również pod kątem oszukiwania w benchmarkach. Na szczęście nasze testy nie wykazały oszukiwania przez firmy, które pół dekady temu były zamieszane w skandal. HTC, Xiaomi, Huawei, Honor, Google, Sony i inne wydają się mieć spójne wyniki między zwykłą wersją Geekbench a wersją "Mini golf" opierać się na naszych urządzeniach testowych.
Niestety, znaleźliśmy możliwe dowody na oszukiwanie w testach porównawczych, których nie udało nam się jeszcze potwierdzić w przypadku kilku innych firm, co będziemy badać dalej. Najgorszym tego przykładem był Meizu Pro 6 Plus z procesorem Exynos 8890, który doprowadził do jeszcze większej skrajności w zakresie oszukiwania w testach porównawczych.
Straszny przykład
Meizu historycznie ustawiało skalowanie procesora niezwykle konserwatywnie. Warto zauważyć, że często konfigurują swoje telefony tak, aby duże rdzenie rzadko były dostępne online, nawet w „trybie wydajności”, co sprawia, że flagowe procesory (takie jak doskonały Exynosa 8890), które umieszczają w swoich flagowych telefonach, zachowują się jak procesory średniotonowe. Doszło do tego w zeszłym roku, kiedy Anandtech wezwał Meizu do krytyki za słabą wydajność w testach JavaScript Anandtech na Meizu Pro 6 opartym na Mediatek Helio X25 oraz zauważył, że duże rdzenie pozostawały w trybie offline przez większość testu (kiedy test powinien był działać prawie wyłącznie na dużym rdzenie). W zeszłym tygodniu Anandtech zauważył, że do Meizu Pro 6 wprowadzono aktualizację oprogramowania, która w końcu pozwoliła Meizu w pełni wykorzystać te rdzenie. Starszy redaktor Anandtech ds. smartfonów, Matt Humrick, zauważył To „Po aktualizacji do Flyme OS 5.2.5.0G PRO 6 działa znacznie lepiej. Wyniki Krakena, WebXPRT 2015 i JetStream poprawiają się o około 2x-2,5x. Meizu najwyraźniej dostosował wartość progu obciążenia, umożliwiając częstszą migrację wątków do rdzeni A72 w celu uzyskania lepszej wydajności.
Niestety okazuje się, że zamiast poprawiać skalowanie procesora, w nowych urządzeniach uzyskuje się lepsze wyniki testów porównawczych, wygląda na to, że telefon został ustawiony tak, aby przełączał się na korzystanie z dużych rdzeni, gdy niektóre aplikacje tak robią działanie.
Po otwarciu aplikacji do testów porównawczych nasz Meizu Pro 6 Plus zaleca przejście do „Trybu wydajności” (który sam wystarczy, aby potwierdzić, że szukają konkretnych nazw pakietów) i wydaje się, że robi to zasadniczą różnicę. W standardowym „trybie równowagi” telefon konsekwentnie osiąga wyniki w okolicach 604 i 2220 w sekcjach jedno- i wielordzeniowych Geekbench, ale w „Tryb wydajności” uzyskał wyniki 1473 i 3906, głównie dzięki temu, że duże rdzenie pozostawały wyłączone przez większość testu w „Trybie równowagi” i włączały się "Tryb wydajności". Wydaje się, że Meizu blokuje małe rdzenie do ich maksymalnej prędkości 1,48 GHz i ustawia twardą podłogę dla dwóch z ich dużych rdzeni 1,46 GHz podczas pracy Geekbench w „trybie wydajności” (pozostałe dwa duże rdzenie mogą swobodnie i dość agresywnie skalować), czego nie widzimy, gdy prowadzenie "Mini golf" zbudować.
Chociaż możliwość wyboru pomiędzy trybem dużej mocy a trybem niskiego zużycia energii może być przyjemną funkcją, w tym przypadku wydaje się być niczym więcej niż sztuczką salonową. Meizu Pro 6 Plus osiąga przyzwoite wyniki w „Trybie wydajności” w zwykłej aplikacji Geekbench, ale podczas korzystania z "Mini golf" kompilacji Geekbench, wydajność spada do tego samego poziomu, jaki miał po ustawieniu „Trybu równowagi”. Wyższy stan wydajności Meizu Pro 6 Plus służy wyłącznie do celów porównawczych, a nie do codziennego użytku.
Warto zauważyć, że kiedy testowaliśmy Meizu Pro 6 Plus w „trybie wydajności” z sekretem kompilacji Geekbench, duże rdzenie były dostępne online, jeśli rejestrowaliśmy prędkości zegara za pomocą Qualcomm Trepn. Nie ustaliliśmy jeszcze, czy Meizu rozpoznaje, że Trepn działa i włącza duże rdzenie w częściowo z tego powodu lub po prostu włącza duże rdzenie ze względu na dodatkowe obciążenie procesora tworzy. Chociaż może to wydawać się sprzeczne z intuicją, że dodatkowe obciążenie w tle (na przykład gdy podczas testu mieliśmy włączone wykresy wydajności) zwiększyć wyniki testu porównawczego, konserwatywne skalowanie Meizu może oznaczać, że dodatkowe obciążenie było wystarczy, aby popchnąć go do granic możliwości i pobudzić do działania duże rdzenie, poprawiając w ten sposób wydajność dla wszystkich zadania.
Kiedy otwarci producenci OEM zwracają się do opinii...
Po naszych testach skontaktowaliśmy się z OnePlus w sprawie znalezionych problemów. W odpowiedzi, OnePlus szybko obiecał zaprzestać atakowania aplikacji testujących testy porównawcze za pomocą oszukiwania w testach porównawczych, ale nadal zamierza zachować to dla gier (które również są poddawane testom porównawczym). W przyszłej wersji OxygenOS mechanizm ten nie będzie uruchamiany przez testy porównawcze. OnePlus przyjął naszą sugestię, aby dodać również przełącznik, aby użytkownicy wiedzieli, co się dzieje pod maską, a przynajmniej nieuczciwa i wprowadzająca w błąd przewaga w benchmarkach poprawione. Jednak ze względu na święto chińskiego Nowego Roku i zaległości w zakresie funkcji może minąć trochę czasu, zanim zobaczymy dostępne dla użytkowników opcje dostosowywania tej funkcji wydajności. Chociaż samo korygowanie zachowania stanowi poprawę, regularne obserwowanie tego zachowania jest nadal nieco rozczarowujące aplikacje (takie jak gry), ponieważ ukierunkowanie na określone aplikacje jest podstawą, zamiast poprawiać rzeczywistą wydajność skalowanie. Sztucznie zwiększając agresywność procesora, a co za tym idzie taktowanie określonych aplikacji, zamiast poprawiać zdolność telefonów do identyfikowania, kiedy faktycznie potrzebuje wyższej taktowania, OnePlus powoduje niespójną wydajność swoich telefonów, co stanie się bardziej widoczne, gdy telefon będzie starszy i pojawi się więcej gier, na które OnePlus nie był ukierunkowany. wydany. Jednak obecnie wdrożenie pozwala na lepszą wydajność gier. OnePlus udostępnił także oświadczenie do tego artykułu, które można przeczytać poniżej:
„Aby zapewnić użytkownikom lepsze wrażenia z korzystania z aplikacji i gier wymagających dużej ilości zasobów, szczególnie wymagających graficznie te, wdrożyliśmy pewne mechanizmy w społeczności i kompilacje Nougata, aby zmusić procesor do większej pracy agresywnie. Proces wyzwalania aplikacji porównawczych nie będzie dostępny w nadchodzących kompilacjach OxygenOS na OnePlus 3 i OnePlus 3T.
Miło nam słyszeć, że OnePlus będzie usuwać oszukiwanie w testach porównawczych ze swoich telefonów. W przyszłości będziemy w dalszym ciągu wywierać presję na producentów OEM, aby byli bardziej przyjaźni dla konsumenta, gdy tylko będzie to możliwe, i będziemy zwracać uwagę na przyszłe oszustwa w testach porównawczych.
Niestety jedyną prawdziwą odpowiedzią na tego typu oszustwa jest ciągła czujność. Jako społeczność entuzjastów smartfonów musimy uważać na próby oszukiwania użytkowników w ten sposób. Interesują nas nie same wyniki testów porównawczych, ale to, co te testy mówią o wydajności telefonu. Chociaż oszukiwanie w benchmarkach nie było jeszcze aktywne na platformie OnePlusa 3 kiedy to sprawdziliśmy, wystarczyła prosta aktualizacja oprogramowania, aby dodać tę wprowadzającą w błąd „funkcję” i wyraźnie pokazuje, że sprawdzanie urządzeń pod kątem oszukiwania w testach porównawczych przy pierwszym uruchomieniu tak nie jest wystarczająco. Problemy takie jak ten można sztucznie dodawać dni, tygodnie, miesiące, a nawet lata po uruchomieniu urządzenia zawyżanie średnich globalnych zebranych przez benchmarki w kolejnych miesiącach, co wpływa na ostateczną bazę danych wynik. Należy zauważyć, że nawet przy tych ulepszeniach, które producenci musieli inwestować czas i pieniądze w rozwój, zazwyczaj obserwujemy jedynie kilka punktów procentowych wzrostu wyników testów porównawczych (z wyjątkiem kilku marginalnych przypadków, takich jak Meizu, gdzie oszustwo ukrywa znacznie większe problemy). Kilka punktów procentowych, czyli znacznie mniej niż różnica między urządzeniami o najlepszej i najgorszej wydajności. Twierdzilibyśmy jednak, że w przypadku urządzeń wyposażonych w coraz podobny sprzęt te dodatkowe punkty procentowe mogą być decydującym czynnikiem w rankingach, które ostatecznie przeglądają użytkownicy. Lepsza optymalizacja sterowników i inteligentniejsze skalowanie procesora mogą mieć absolutnie ogromny wpływ na wydajność urządzenia, z różnicą pomiędzy wynik najwydajniejszego urządzenia opartego na Qualcomm Snapdragon 820 i najgorzej działającego urządzenia (od głównego producenta OEM) przekraczający 20% Geekbench. Dwadzieścia procent z optymalizacji sterowników, a nie kilka punktów procentowych z poświęcania czasu i pieniędzy na oszukiwanie użytkowników. A to tylko mowa o wysiłkach rozwojowych, które mogą mieć wpływ na wyniki testów porównawczych. Wiele z największych korzyści z inwestowania w ulepszanie oprogramowania urządzenia nie zawsze pojawiają się w benchmarkach, a OnePlus oferuje doskonałą wydajność w rzeczywistych warunkach na swoich urządzeniach. Naprawdę powinno być jasno określone, gdzie w tym przypadku powinny skupiać się wysiłki rozwojowe firmy. Kontaktujemy się z większą liczbą firm, które oszukują w testach porównawczych, gdy je znajdziemy, i mamy nadzieję, że okażą się tak samo otwarci jak OnePlus.
Chcielibyśmy jeszcze raz podziękować zespołowi Primate Labs za współpracę przy odkryciu tego problemu. Prawidłowe przetestowanie oszukiwania w testach porównawczych byłoby znacznie trudniejsze bez wersji Geekbench „Mini Golf”.