Benchmark-cheating slaat terug: hoe OnePlus en anderen op heterdaad werden betrapt en wat ze eraan hebben gedaan

click fraud protection

OnePlus en Meizu zijn betrapt op het bedriegen van benchmarks. XDA onderzoekt hoe het heeft kunnen gebeuren en wat er kan worden gedaan om te voorkomen dat het opnieuw gebeurt.

Een paar jaar geleden was er veel opschudding toen talloze grote fabrikanten betrapt werden op het frauderen met benchmarks. OEM's van alle soorten en maten (inclusief Samsung, HTC, Sony, en LG) namen deel aan deze wapenwedloop waarin ze probeerden gebruikers voor de gek te houden zonder betrapt te worden, maar gelukkig stopten ze uiteindelijk met het valsspelen van hun benchmark na enkele openhartige discussies met deskundigen uit de industrie en journalisten.

In 2013 was dat zo ontdekt dat Samsung de GPU-kloksnelheden in bepaalde toepassingen kunstmatig verhoogde, wat leidde tot een reeks onderzoeken tot benchmarkfraude bij het hele scala aan fabrikanten. Uit het onderzoek bleek destijds dat bijna alle fabrikanten, behalve Google/Motorola, zich schuldig maakten aan benchmarkfraude. Ze investeerden allemaal tijd en geld in pogingen om wat extra prestaties uit hun telefoons te halen in benchmarks, op een manier die zou geen enkel positief effect hebben op het dagelijks gebruik, in een poging gebruikers te laten denken dat hun telefoons sneller waren dan ze in werkelijkheid waren waren. Deze ontwikkelingsinspanningen besloegen het hele spectrum, van het instellen van kloksnelheidsvloeren tot het dwingen van de kloksnelheden tot hun maximale instellingen, tot zelfs het creëren van speciale hogere energietoestanden en speciale kloksnelheden die alleen beschikbaar waren bij benchmarking, waarbij deze inspanningen vaak resulteerden in een stijging van slechts een paar procentpunten maatstaf.

Er was grote verontwaardiging toen dit werd ontdekt, omdat deze pogingen tot bedrog met benchmarks in strijd waren met het punt van de benchmarks zelf. De meeste benchmarks zijn er niet om u de theoretische maximale prestaties van een telefoon te vertellen in laboratoriumomstandigheden die dat niet zijn reproduceerbaar in het dagelijks gebruik, maar ze zijn er eerder om u een referentiepunt te geven voor vergelijkingen in de echte wereld tussen telefoons. Na een beetje publiekelijk uitschelden (en enkele privégesprekken) van technologiepublicaties, marktleiders en de bij het grote publiek kregen de meeste fabrikanten de boodschap dat het bedrog met benchmarks eenvoudigweg niet acceptabel was, en stopten ze als gevolg daarvan resultaat. De meeste van de weinige die op dat punt niet stopten, stopten kort daarna, omdat er substantiële veranderingen waren aangebracht naar hoeveel benchmarks er draaien, in een poging om bedrog met benchmarks te ontmoedigen (door het voordeel van Het). Veel benchmarks zijn langer gemaakt, zodat de thermische beperking als gevolg van het maximaliseren van de kloksnelheden onmiddellijk duidelijk zou worden.

Wanneer we geïnterviewd John Poole, de maker van Geekbench, kwam het onderwerp benchmark-fraude tegen en wat bedrijven als Primate Labs kunnen doen om dit te voorkomen. Vooral Primate Labs heeft Geekbench 4 een stuk langer gemaakt dan Geekbench 3, deels om de effecten van benchmarkfraude te verminderen. Het verminderen van de voordelen om ervoor te zorgen dat de ontwikkeling De kosten van benchmarkfraude zijn het niet waard.

"Het probleem is dat zodra we deze lange looptijden hebben, je dingen gaat gamen door je klok op te voeren snelheden of het uitschakelen van gouverneurs of iets dergelijks, je gaat echt echt gevaar in de telefoon... Als je gaat gamen... daar haal je niet zoveel uit. Je krijgt misschien nog steeds een paar procent, maar is het het echt waard?" - John Poole


Wat is er gebeurd

Helaas moeten we melden dat sommige OEM's weer zijn begonnen met vals spelen, wat betekent dat we opnieuw op onze hoede moeten zijn. Gelukkig zijn fabrikanten steeds alerter geworden op dit soort problemen, en als er de juiste aandacht op wordt gevestigd, kan dit snel worden opgelost. Het is een beetje schokkend om te zien dat fabrikanten valsspelen met benchmarks implementeren, gezien de hevige reacties de laatste keer dat het werd geprobeerd (waarbij sommige benchmarks cheat-apparaten volledig uitsluiten van hun prestaties lijsten). Met die tegenslag die contrasteert met hoe klein de prestatiewinst als gevolg van benchmark-valsspelen doorgaans is (bij de meeste van de pogingen die de vorige keer resulteerden in een scorestijging van minder dan 5%), hadden we echt gehoopt dat dit allemaal achter de rug zou zijn ons.

De timing van deze poging is bijzonder ongelegen, aangezien een paar maanden geleden het valsspelen van benchmarks de wereld van louter een puur bestaan ​​verliet De bezorgdheid van enthousiastelingen werd gewekt en de publieke sfeer betrad toen Volkswagen en Fiat Chrysler beiden betrapt werden op het bedriegen van hun uitstoot benchmarks. Beide bedrijven implementeerden software om te detecteren wanneer hun dieselauto's aan emissietests werden onderworpen, en lieten ze overschakelen naar een modus met lage emissies die hun brandstofverbruik zagen dalen, in een poging om te concurreren met benzineauto's op het gebied van brandstofefficiëntie en toch binnen de wettelijke limieten voor emissies te blijven testen. Tot nu toe heeft het schandaal geresulteerd in miljarden aan boetes, tientallen miljarden aan terugroepingskosten en aanklachten – zeker niet het soort vergelding OEM's zouden ooit hun benchmarkscores willen opdrijven, die puur bedoeld zijn voor gebruikersvergelijkingen en niet worden gebruikt voor het meten van enige regelgeving vereisten.

Terwijl onderzoeken hoe Qualcomm snellere app-openingssnelheden bereikt op de toen nieuwe Qualcomm Snapdragon 821 merkten we iets vreemds op OnePlus 3T die we niet konden reproduceren op de Xiaomi Mi Note 2 of de Google Pixel XL, onder andere Snapdragon 821-apparaten. Onze hoofdredacteur, Mario Serrafero, gebruikte Qualcomm Trepn en de Snapdragon Performance Visualizer om te monitoren hoe Qualcomm de CPU ‘een boost geeft’ kloksnelheid bij het openen van apps, en merkte dat bepaalde apps op de OnePlus 3T daarna niet terugvielen naar hun normale stationaire snelheden opening. Als algemene vuistregel vermijden we het testen van benchmarks met tools voor prestatiemonitoring waar mogelijk open vanwege de extra prestatieoverhead die ze met zich meebrengen (vooral op niet-Snapdragon-apparaten waar er geen officiële desktoptools zijn), maar bij dit incident hielpen ze ons vreemd gedrag op te merken dat we waarschijnlijk zouden hebben gemist anders.

Bij het invoeren van bepaalde benchmarking-apps bleven de kernen van de OnePlus 3T boven de 0,98 GHz voor de kleine kernen en 1,29 GHz voor de grote kernen, zelfs als de CPU-belasting tot 0% daalde. Dit is nogal vreemd, omdat normaal gesproken beide sets cores op de OnePlus 3T dalen naar 0,31 GHz als er geen belasting is. Toen we dit voor het eerst zagen, waren we bang dat de CPU-schaling van OnePlus gewoon een beetje vreemd was ingesteld, Bij verder testen kwamen we echter tot de conclusie dat OnePlus zich specifiek moest richten toepassingen. Onze hypothese was dat OnePlus deze benchmarks bij naam targette en een alternatieve CPU-schaalmodus inschakelde om hun benchmarkscores op te krikken. Een van onze grootste zorgen was dat OnePlus in deze modus mogelijk lossere thermische beperkingen instelde om de problemen die ze hadden met de OnePlus te voorkomen Eén, OnePlus X en OnePlus 2, waar de telefoons slecht omgingen met de extra cores die online kwamen voor het multi-core gedeelte van Geekbench, en af en toe aanzienlijk terugschroeven als resultaat (tot het punt waarop de OnePlus X soms lager scoorde in de multi-core sectie dan in de single kerngedeelte). U kunt zware throttling vinden in onze OnePlus 2 recensie, waar we ontdekten dat het apparaat tot 50% van zijn Geekbench 3 multi-core score kon verliezen. Later, toen we de throttling en thermiek tussen apparaten begonnen te vergelijken, bleek de OnePlus 2 werd een schoolvoorbeeld van wat OEM’s moeten vermijden.

We hebben contact opgenomen met het team van Primatenlaboratoria (de makers van Geekbench), die een belangrijke rol speelden bij het blootleggen van de eerste golf van bedrog met benchmarks, en met hen samenwerkten voor verdere tests. We brachten een OnePlus 3T naar het kantoor van Primate Labs in Toronto voor een eerste analyse. De eerste tests omvatten een ROM-dump waaruit bleek dat de OnePlus 3T direct op zoek was naar een flink aantal apps op naam. Het meest opvallend was dat de OnePlus 3T op zoek was naar Geekbench, AnTuTu, Androbench, Quadrant, Vellamo en GFXBench. Omdat we op dit punt vrij duidelijk bewijs hadden dat OnePlus zich bezighield met vals spelen van benchmarks, heeft Primate Labs een “Bob’s minigolfputt” versie van Geekbench 4 voor ons. Dankzij de substantiële veranderingen tussen Geekbench 3 en 4, de "Minigolf" speciaal voor deze tests moest de versie van de grond af aan opnieuw worden opgebouwd. Deze versie van Geekbench 4 is ontworpen om elke benchmarkdetectie te vermijden, zodat Geekbench normaal kan werken applicatie op telefoons die vals spelen (die verder gaat dan het hernoemen van pakketten waardoor de meeste pogingen tot benchmarking voor de gek worden gehouden bedriegen).


Een verrassend voorbeeld

Direct bij het openen van de app was het verschil duidelijk. De OnePlus 3T draaide inactief op 0,31 GHz, zoals in de meeste apps, in plaats van op 1,29 GHz voor de grote kernen en 0,98 GHz voor de kleine kernen, zoals in de gewone Geekbench-app. OnePlus maakte de CPU-gouverneur agressiever, wat resulteerde in een praktische kunstmatige kloksnelheidsvloer in Geekbench die er niet was in de verborgen Geekbench-build. Het was niet gebaseerd op de CPU-werklast, maar eerder op de pakketnaam van de app, wat de verborgen build voor de gek kon houden. Hoewel het verschil in individuele runs minimaal was, schitteren de thermische throttling-relaxaties in onze aanhoudende prestatietest, zoals hieronder weergegeven.

Uit onze tests blijkt dat dit al een tijdje een “functie” van Hydrogen OS is en pas aan Oxygen OS werd toegevoegd toen de community zich opbouwde in de aanloop naar de Nougat-release (na de twee ROM's zijn samengevoegd). Het is een beetje teleurstellend om te zien, vooral in het licht van de softwareproblemen die OnePlus deze maand heeft gehad na het samenvoegen van de ROM's, van kwetsbaarheden in de bootloader naar Problemen met naleving van de GPL. We hebben goede hoop dat OnePlus, nu het stof is neergedaald na de fusie van de twee teams, weer in vorm zal komen en zichzelf zal blijven positioneren als een ontwikkelaarsvriendelijke optie.

Met de "Minigolf" versie van Geekbench in de hand, gingen we erop uit en begonnen ook andere telefoons te testen op benchmark-cheating. Gelukkig blijkt uit onze tests dat er geen bedrog is gepleegd door de bedrijven die een half decennium geleden bij het schandaal betrokken waren. HTC, Xiaomi, Huawei, Honor, Google, Sony en anderen lijken consistente scores te hebben tussen de reguliere Geekbench-build en de "Minigolf" bouwen op onze testapparatuur.

Helaas hebben we bij een aantal andere bedrijven mogelijk bewijs van bedrog met benchmarks gevonden, dat we nog niet hebben kunnen bevestigen. We zullen dit verder onderzoeken. Het ergste voorbeeld hiervan was de door Exynos 8890 aangedreven Meizu Pro 6 Plus, die het bedrog van de benchmark naar een ander uiterste tilde.


Een verschrikkelijk voorbeeld

Meizu heeft de CPU-schaling historisch gezien uiterst conservatief ingesteld. Opvallend is dat ze hun telefoons vaak zo instellen dat de grote kernen zelden online komen, zelfs niet in hun ‘prestatiemodus’, waardoor de vlaggenschipprocessors (zoals de uitstekende Exynos 8890) die ze in hun vlaggenschiptelefoons stoppen, fungeren als midrange-processors. Dit kwam vorig jaar tot een hoogtepunt toen Anandtech riep Meizu uit vanwege hun slechte prestaties op de JavaScript-benchmarks van Anandtech op de op Mediatek Helio X25 gebaseerde Meizu Pro 6, en merkte op dat de grote kernen het grootste deel van de test offline bleven (terwijl de test vrijwel uitsluitend op de grote kernen had moeten draaien). kernen). Anandtech merkte vorige week op dat er een software-update naar de Meizu Pro 6 was gepusht, waardoor de Meizu deze kernen eindelijk ten volle kon gebruiken. Matt Humrick, senior smartphoneredacteur van Anandtech, merkte op Dat "Na de update naar Flyme OS 5.2.5.0G presteert de PRO 6 aanzienlijk beter. De Kraken-, WebXPRT 2015- en JetStream-scores verbeteren met ongeveer 2x-2,5x. Meizu heeft blijkbaar de drempelwaarde voor de belasting aangepast, waardoor threads vaker naar de A72-kernen kunnen migreren voor betere prestaties."

Helaas lijkt het erop dat in plaats van het verbeteren van de CPU-schaling voor hun nieuwe apparaten beter te verkrijgen benchmarkscores lijken ze de telefoon te hebben ingesteld om over te schakelen naar het gebruik van de grote kernen wanneer bepaalde apps dat zijn rennen.

Bij het openen van een benchmarking-app raadt onze Meizu Pro 6 Plus aan dat je overschakelt naar de “Performance Mode” (die alleen is voldoende om te bevestigen dat ze naar specifieke pakketnamen zoeken), en het lijkt een substantieel verschil te maken. In de standaard “Balance Mode” scoort de telefoon consequent rond de 604 en 2220 op de single-core en multi-core secties van Geekbench, maar in In de ‘Prestatiemodus’ scoort hij 1473 en 3906, grotendeels dankzij de grote kernen die het grootste deel van de test uitgeschakeld blijven in de ‘Balansmodus’ en aangaan in “Prestatiemodus”. Meizu lijkt de kleine kernen te vergrendelen op hun maximale snelheid van 1,48 GHz, en een harde vloer te leggen voor twee van hun grote kernen van 1,46 GHz tijdens het hardlopen Geekbench in de ‘Performance-modus’ (waarbij de andere twee grote kernen vrij en behoorlijk agressief kunnen schalen), wat we niet zien wanneer het runnen van de "Minigolf" bouwen.

Hoewel het een leuke functie kan zijn om te kunnen kiezen tussen een modus met hoog vermogen en een modus met laag vermogen, lijkt het in dit geval niets meer dan een melkstaltruc. De Meizu Pro 6 Plus ziet behoorlijke scores in ‘Performance Mode’ voor de reguliere Geekbench-app, maar bij gebruik van de "Minigolf" build van Geekbench, het daalt meteen terug naar hetzelfde prestatieniveau als wanneer het is ingesteld op de "Balansmodus". De hogere prestatiestatus van de Meizu Pro 6 Plus is alleen bedoeld voor benchmarking, niet voor feitelijk dagelijks gebruik.

Een ding om op te merken is dat toen we de Meizu Pro 6 Plus in de “Performance Mode” testten met het geheim build van Geekbench, de grote cores kwamen online als we de kloksnelheden met Qualcomm aan het opnemen waren Trepn. We hebben nog niet vastgesteld of de Meizu herkent dat Trepn draait en de grote kernen inschakelt gedeeltelijk daardoor, of als het simpelweg de grote kernen aanzet vanwege de extra CPU-belasting die het veroorzaakt creëert. Hoewel het misschien contra-intuïtief klinkt dat een extra belasting op de achtergrond (zoals wanneer we prestatiegrafieken aanhielden tijdens de test) toename de resultaten van een benchmark, de conservatieve schaalvergroting van Meizu, zou kunnen betekenen dat er extra overhead was genoeg om het over de rand te duwen en de grote kernen in actie te brengen, waardoor de prestaties voor iedereen worden verbeterd taken.


Wanneer ontvankelijke OEM's feedback geven...

Na onze tests hebben we contact opgenomen met OnePlus over de problemen die we hebben aangetroffen. In antwoord, OnePlus beloofde snel te stoppen met het targeten van benchmarking-apps met hun benchmark-cheating, maar is nog steeds van plan dit te behouden voor games (die ook worden gebenchmarkt). In een toekomstige versie van OxygenOS zal dit mechanisme niet worden geactiveerd door benchmarks. OnePlus heeft gehoor gegeven aan onze suggestie om ook een schakelaar toe te voegen, zodat gebruikers weten wat er aan de hand is onder de motorkap, en op zijn minst zou het oneerlijke en misleidende voordeel in benchmarks moeten zijn gecorrigeerd. Vanwege de Chinese Nieuwjaarsvakantie en de achterstand in de functies kan het echter een tijdje duren voordat we gebruikersgerichte aanpassingsopties voor deze prestatiefunctie zien. Hoewel het corrigeren van het gedrag alleen al een verbetering is, is het nog steeds een beetje teleurstellend om regelmatig te zien applicaties (zoals games), omdat het een hulpmiddel is om specifieke apps te targeten, in plaats van de daadwerkelijke prestaties te verbeteren schaalvergroting. Door de agressiviteit van de processor kunstmatig te verhogen, en dus de kloksnelheden voor specifieke apps, in plaats van het vermogen van hun telefoons te verbeteren om te identificeren wanneer deze daadwerkelijk hogere kloksnelheden zorgt OnePlus voor inconsistente prestaties voor hun telefoons, wat alleen maar duidelijker zal worden naarmate de telefoon ouder wordt en er meer games verschijnen waar OnePlus zich niet op richt uitgegeven. Door de implementatie kunnen games momenteel echter beter presteren. OnePlus heeft bij dit artikel ook een verklaring afgegeven, deze kun je hieronder lezen:

 'Om gebruikers een betere gebruikerservaring te geven in resource-intensieve apps en games, vooral grafisch intensief degenen, we hebben bepaalde mechanismen in de gemeenschap geïmplementeerd en Nougat is gebouwd om de processor ertoe aan te zetten meer te draaien agressief. Het triggerproces voor het benchmarken van apps zal niet aanwezig zijn in de komende OxygenOS-versies van de OnePlus 3 en OnePlus 3T.'

We zijn blij om te horen dat OnePlus de benchmark-fraude van hun telefoons zal verwijderen. In de toekomst zullen we blijven proberen OEM's onder druk te zetten om waar mogelijk consumentvriendelijker te zijn, en zullen we alert zijn op toekomstige fraude met benchmarks.

Helaas is voortdurende waakzaamheid het enige echte antwoord op dit soort bedrog. Als gemeenschap van smartphoneliefhebbers moeten we onze ogen uitkijken voor pogingen om gebruikers op deze manier te misleiden. Het zijn niet de benchmarkscores zelf waarin we geïnteresseerd zijn, maar eerder wat de benchmarks zeggen over de prestaties van de telefoon. Hoewel het bedrog van de benchmark nog niet actief was op de OnePlus 3 Toen we het beoordeelden, was een eenvoudige software-update voldoende om deze misleidende “functie” toe te voegen, en illustreert duidelijk dat het controleren van de apparaten op benchmarkfraude wanneer ze voor het eerst worden gelanceerd, dat niet is genoeg. Dit soort problemen kunnen dagen, weken, maanden of zelfs jaren na de lancering van het apparaat kunstmatig worden toegevoegd het opblazen van de mondiale gemiddelden die maanden later door benchmarks zijn verzameld, waardoor de uiteindelijke database wordt beïnvloed resultaat. Opgemerkt moet worden dat zelfs met deze aanpassingen fabrikanten tijd en geld moesten investeren in de ontwikkeling, we zien doorgaans slechts een stijging van een paar procentpunten in de benchmarkscores (met uitzondering van een paar randgevallen zoals Meizu, waar het bedrog veel grotere problemen verdoezelt). Een paar procentpunten, wat veel kleiner is dan de kloof tussen de best presterende en slechtst presterende apparaten. We zouden echter kunnen betogen dat, nu apparaten met steeds meer vergelijkbare hardware draaien, die extra procentpunten de doorslaggevende factor kunnen zijn in de ranglijsten die gebruikers uiteindelijk opzoeken. Betere stuurprogramma-optimalisatie en slimmere CPU-schaling kunnen een absoluut enorm effect hebben op de apparaatprestaties, met het verschil tussen de score van het best presterende op Qualcomm Snapdragon 820 gebaseerde apparaat en het slechtst presterende apparaat (van een grote OEM) van meer dan 20% op Geekbench. Twintig procent uit driveroptimalisatie, in plaats van een paar procentpunten uit het besteden van tijd en geld aan het misleiden van uw gebruikers. En dan hebben we het alleen nog maar over de ontwikkelingsinspanningen die de benchmarkscores kunnen beïnvloeden. Veel van de grootste voordelen van investeren in het verbeteren van de software van een apparaat verschijnen niet altijd in benchmarks, waarbij OnePlus uitstekende prestaties in de echte wereld biedt op hun apparaten. Het zou echt duidelijk moeten zijn waar de ontwikkelingsinspanningen van een bedrijf in dit geval op gericht moeten zijn. We nemen contact op met meer bedrijven die vals spelen met benchmarks zoals we die tegenkomen, en we hopen dat ze net zo ontvankelijk zijn als OnePlus.


We willen het team van Primate Labs nogmaals bedanken voor hun samenwerking om dit probleem op te lossen. Het zou aanzienlijk moeilijker zijn geweest om goed te testen op Benchmark Cheating zonder de “Mini Golf” -editie van Geekbench.