Benchmark-Betrug schlägt zurück: Wie OnePlus und andere auf frischer Tat ertappt wurden und was sie dagegen unternommen haben

Vor einigen Jahren gab es einen erheblichen Aufruhr, als zahlreiche große Hersteller beim Betrügen von Benchmarks ertappt wurden. OEMs aller Größen (einschließlich Samsung, HTC, Sony und LG) nahmen an diesem Wettrüsten teil, um zu versuchen, Benutzer zu täuschen, ohne erwischt zu werden, aber zum Glück hörten sie schließlich nach einigen offenen Diskussionen mit Branchenexperten und Journalisten auf, ihre Benchmark zu betrügen.

Bereits 2013 stellte sich heraus, dass das Samsung seine GPU-Taktraten in bestimmten Anwendungen künstlich steigerte, was eine Reihe von Untersuchungen zum Benchmark-Cheating bei allen Herstellern auslöste. Zu diesem Zeitpunkt ergab die Untersuchung, dass fast alle Hersteller mit Ausnahme von Google / Motorola Benchmark-Betrug betrieben. Sie alle investierten Zeit und Geld in Versuche, ein bisschen mehr Leistung aus ihren Telefonen in Benchmarks herauszuholen, auf eine Weise, die sich nicht positiv auf den alltäglichen Gebrauch auswirkte, um die Benutzer zu täuschen, dass ihre Telefone schneller seien als sie tatsächlich waren. Diese Entwicklungsbemühungen erstreckten sich über die gesamte Bandbreite, von der Festlegung von Taktraten, über die Erzwingung der Taktraten auf ihre maximalen Einstellungen bis hin zur Erstellung von speziellen Zuständen mit höherer Leistung und speziellen Taktraten, die nur beim Benchmarking zur Verfügung standen paar Prozentpunkte mehr Benchmark.

Es gab erhebliche Empörung, als festgestellt wurde, dass diese Versuche, Benchmarks zu betrügen, dem eigentlichen Ziel der Benchmarks zuwiderliefen. Die meisten Benchmarks geben keine Auskunft über die theoretische Höchstleistung eines Telefons unter Laborbedingungen, die im täglichen Gebrauch nicht reproduzierbar sind, sondern dienen als Referenz für Vergleiche zwischen Telefonen in der Praxis. Nach einigem öffentlichen Schimpfen (und einigen privaten Gesprächen) von Technologiepublikationen, Branchenführern und der breiten Öffentlichkeit bekamen die meisten Hersteller die Nachricht, dass Benchmark-Betrug einfach nicht akzeptabel war, und hörten infolgedessen auf. Die meisten der wenigen, die an diesem Punkt nicht aufhörten, hörten bald danach auf, da es wesentliche Änderungen an der Anzahl der durchgeführten Benchmarks gab, um das Betrügen durch Benchmarks zu unterbinden (indem der Nutzen davon verringert wurde). Viele Benchmarks wurden verlängert, damit die thermische Drosselung durch Maximierung der Taktraten sofort sichtbar wird.

Als wir John Poole, den Erfinder von Geekbench, interviewten, ging es um das Thema Benchmark-Betrug und darum, was Unternehmen wie Primate Labs tun können, um dies zu verhindern. Vor allem die Primate Labs haben Geekbench 4 deutlich länger gemacht als Geekbench 3, um die Auswirkungen von Benchmark-Betrug zu reduzieren. Die Vorteile reduzieren, um sicherzustellen, dass sich die Entwicklungskosten von Benchmark-Betrug nicht lohnen.

„Das Problem ist, dass sobald wir diese großen Laufzeiten haben, wenn Sie anfangen, Dinge zu spielen, indem Sie Ihre Taktraten erhöhen oder Gouverneure oder ähnliches deaktivieren, Sie anfangen werden, echte Gefahren in das Telefon zu stecken. ... Wenn Sie es spielen wollen ... werden Sie nicht so viel davon haben. Sie könnten immer noch ein paar Prozent bekommen, aber ist es das wirklich wert? ”- John Poole


Was ist passiert

Leider müssen wir berichten, dass einige OEMs wieder angefangen haben zu schummeln, was bedeutet, dass wir wieder auf der Hut sein sollten. Zum Glück reagieren die Hersteller zunehmend auf solche Probleme, und wenn die richtige Aufmerksamkeit darauf gelenkt wird, kann dies schnell behoben werden. Es ist ein bisschen schockierend zu sehen, wie Hersteller das Benchmark-Cheaten im Lichte der negativen Auswirkungen des letzten Versuchs implementieren (wobei einige Benchmarks Betrugsgeräte vollständig von ihren Leistungslisten ausschließen). Mit dieser Gegenreaktion im Gegensatz zu den geringen Leistungsgewinnen durch Benchmark-Betrug (wobei die meisten Versuche letztes Mal zu einer Steigerung der Punktzahl um weniger als 5% führten) hatten wir wirklich gehofft, dass dies alles hinter uns liegen würde.

Der Zeitpunkt für diesen Versuch ist besonders ungünstig, da vor ein paar Monaten das Betrügen von Benchmarks die Welt der Enthusiasten verließ und in die Öffentlichkeit trat, als Volkswagen und Fiat Chrysler beim Betrügen ihrer Emissionsbenchmarks erwischt wurden. Beide Unternehmen implementierten eine Software, um zu erkennen, wann ihre Dieselfahrzeuge einem Emissionstest unterzogen wurden, und ließen sie in einen emissionsarmen Modus wechseln, bei dem der Kraftstoffverbrauch sank, um im Wettbewerb mit Benzinfahrzeugen hinsichtlich der Kraftstoffeffizienz zu bestehen und gleichzeitig die gesetzlichen Grenzwerte einzuhalten für Emissionsprüfungen. Bisher hat der Skandal dazu geführt, dass Bußgelder in Milliardenhöhe, Rückrufkosten in Milliardenhöhe und Gebühren verhängt wurden - sicherlich nicht die Art von Vergeltung, die OEMs je für das Aufblähen ihrer Benchmark-Scores sehen würden, die nur für Benutzervergleiche gedacht sind und für die sie nicht verwendet werden Messen von behördlichen Anforderungen.

Bei der Untersuchung, wie Qualcomm auf dem damals neuen Qualcomm Snapdragon 821 schnellere App-Öffnungsgeschwindigkeiten erzielt, haben wir auf dem OnePlus 3T etwas Merkwürdiges festgestellt, das wir unter anderen Snapdragon 821-Geräten nicht auf dem Xiaomi Mi Note 2 oder Google Pixel XL reproduzieren konnten. Unser Chefredakteur Mario Serrafero verwendete Qualcomm Trepn und den Snapdragon Performance Visualizer, um zu überwachen, wie Qualcomm die CPU-Taktrate beim Öffnen von Apps „steigert“, und bemerkte, dass bestimmte Apps auf dem OnePlus 3T nicht auf ihre Leistung zurückfielen normale Leerlaufdrehzahlen nach dem Öffnen. Als Faustregel gilt, dass wir es vermeiden, Benchmarks mit geöffneten Leistungsüberwachungstools zu testen, wenn dies möglich ist. Dies ist auf den zusätzlichen Leistungsaufwand zurückzuführen (insbesondere bei Geräten ohne Snapdragon, bei denen es sich nicht um offizielle Desktop-Tools handelt). In diesem Fall haben sie uns jedoch geholfen merkwürdiges Verhalten, das wir sonst wahrscheinlich übersehen hätten.

Beim Aufrufen bestimmter Benchmarking-Apps bleiben die Kerne des OnePlus 3T bei den kleinen Kernen über 0, 98 GHz und bei den großen Kernen über 1, 29 GHz, selbst wenn die CPU-Auslastung auf 0% abfällt. Dies ist ziemlich seltsam, da normalerweise beide Kerne auf dem OnePlus 3T auf 0, 31 GHz abfallen, wenn keine Last vorhanden ist. Als wir das zum ersten Mal sahen, waren wir besorgt, dass die CPU-Skalierung von OnePlus einfach etwas seltsam eingestellt war. Bei weiteren Tests kamen wir jedoch zu dem Schluss, dass OnePlus auf bestimmte Anwendungen abzielen muss. Unsere Hypothese war, dass OnePlus diese Benchmarks namentlich anvisierte und in einen alternativen CPU-Skalierungsmodus eintrat, um ihre Benchmark-Scores zu steigern. Eines unserer Hauptprobleme war, dass OnePlus in diesem Modus möglicherweise geringere thermische Einschränkungen festlegte, um die Probleme mit OnePlus One, OnePlus X und OnePlus 2 zu vermeiden, bei denen die Telefone die zusätzlichen Kerne handhabten, die für die Multi- Core-Bereich von Geekbench schlecht und gelegentlich stark gedrosselt (bis zu dem Punkt, an dem der OnePlus X im Multi-Core-Bereich manchmal schlechter abschneidet als im Single-Core-Bereich). In unserem OnePlus 2-Test haben wir festgestellt, dass das Gerät bis zu 50% seiner Geekbench 3-Multi-Core-Punkte einbüßen kann. Als wir später begannen, Drosselung und Thermik geräteübergreifend zu vergleichen, wurde der OnePlus 2 zu einem Lehrbuchbeispiel dafür, was OEMs vermeiden sollten.

Wir haben uns an das Team von Primate Labs (die Macher von Geekbench) gewandt, die maßgeblich an der Enthüllung der ersten Welle des Benchmark-Betrugs beteiligt waren, und mit ihnen zusammengearbeitet, um weitere Tests durchzuführen. Wir haben einen OnePlus 3T zur ersten Analyse in das Büro von Primate Labs in Toronto gebracht. Zu den ersten Tests gehörte ein ROM-Dump, bei dem festgestellt wurde, dass das OnePlus 3T direkt nach etlichen namentlichen Apps suchte. Vor allem suchte der OnePlus 3T nach Geekbench, AnTuTu, Androbench, Quadrant, Vellamo und GFXBench. Da wir zu diesem Zeitpunkt ziemlich klare Beweise dafür hatten, dass OnePlus Benchmark-Betrug betrieben hat, bauten Primate Labs eine „Bob's Mini Golf Putt“ -Version von Geekbench 4 für uns. Aufgrund der wesentlichen Änderungen zwischen Geekbench 3 und 4 musste die „Mini Golf“ -Version speziell für diesen Test von Grund auf neu aufgebaut werden. Diese Version von Geekbench 4 wurde entwickelt, um jegliche Benchmark-Erkennung zu vermeiden, damit Geekbench als normale Anwendung auf Telefonen ausgeführt werden kann, die betrügen (über die Paketumbenennung hinaus, die die meisten Versuche, Benchmark-Betrug zu verhindern, hinaus).


Ein überraschendes Beispiel

Unmittelbar nach dem Öffnen der App wurde der Unterschied deutlich. Das OnePlus 3T war im Leerlauf bei 0, 31 GHz, wie es in den meisten Apps der Fall ist, und nicht bei 1, 29 GHz für die großen Kerne und 0, 98 GHz für die kleinen Kerne, wie es in der normalen Geekbench-App der Fall ist. OnePlus hat den CPU-Regler aggressiver gemacht, was in Geekbench zu einer praktischen Grundeinstellung für künstliche Taktraten führte, die es im verborgenen Geekbench-Build nicht gab. Es basierte nicht auf der CPU-Auslastung, sondern auf dem Paketnamen der App, den der versteckte Build täuschen könnte. Während der Unterschied in den einzelnen Läufen minimal war, glänzen die thermischen Drosselungsrelaxationen in unserem unten gezeigten Dauertest.

Aus unseren Tests geht hervor, dass dies seit einiger Zeit eine „Funktion“ von Hydrogen OS ist und erst dann zu Oxygen OS hinzugefügt wurde, wenn sich die Community im Vorfeld der Nougat-Veröffentlichung (nachdem die beiden ROMs zusammengeführt wurden) zusammengeschlossen hat. Es ist etwas enttäuschend zu sehen, insbesondere angesichts der Softwareprobleme, die OnePlus in diesem Monat nach dem Zusammenführen der ROMs hatte, von Bootloader-Schwachstellen bis hin zu GPL-Konformitätsproblemen. Wir sind zuversichtlich, dass OnePlus nach dem Zusammenschluss der beiden Teams wieder in Form kommt und sich weiterhin als entwicklerfreundliche Option positioniert.

Mit der "Mini Golf" -Version von Geekbench in der Hand gingen wir hinaus und testeten auch andere Telefone auf Benchmark-Betrug. Zum Glück zeigen unsere Tests, dass die Unternehmen, die vor einem halben Jahrzehnt in den Skandal verwickelt waren, nicht betrogen haben. HTC, Xiaomi, Huawei, Honour, Google, Sony und andere scheinen konsistente Ergebnisse zwischen dem regulären Geekbench-Build und dem Mini Golf- Build auf unseren Testgeräten zu haben.

Leider haben wir Hinweise auf Benchmark-Betrug gefunden, die wir von einigen anderen Unternehmen noch nicht bestätigen konnten und die wir weiter untersuchen werden. Das schlimmste Beispiel dafür war das Meizu Pro 6 Plus mit Exynos 8890, das den Benchmark-Betrug zu einem weiteren Extrem machte.


Ein schreckliches Beispiel

Meizu hat die CPU-Skalierung historisch äußerst konservativ eingestellt. Insbesondere richten sie ihre Telefone häufig so ein, dass die großen Kerne selbst im „Leistungsmodus“ selten online gehen, sodass die Flaggschiff-Prozessoren (wie das hervorragende Exynos 8890), die sie in ihre Flaggschiff-Telefone einbauen, wie Midrange-Prozessoren wirken. Dies hat sich letztes Jahr bemerkbar gemacht, als Anandtech Meizu wegen seiner schlechten Leistung bei den JavaScript-Benchmarks von Anandtech für das auf Mediatek Helio X25 basierende Meizu Pro 6 ausrief und feststellte, dass die großen Kerne während des größten Teils des Tests offline blieben (wenn der Test hätte ausfallen sollen) fast ausschließlich auf den großen Kernen laufen). Anandtech stellte letzte Woche fest, dass ein Software-Update auf das Meizu Pro 6 übertragen wurde, das es dem Meizu endlich ermöglichte, diese Kerne in vollem Umfang zu nutzen. Anandtechs Senior Editor für Smartphones, Matt Humrick, bemerkte: „Nach der Aktualisierung auf Flyme OS 5.2.5.0G ist die Leistung des PRO 6 erheblich besser. Die Kraken-, WebXPRT 2015- und JetStream-Werte verbessern sich um etwa das 2-fache bis 2, 5-fache. Anscheinend hat Meizu den Lastschwellenwert angepasst, sodass Threads häufiger auf die A72-Cores migrieren können, um eine bessere Leistung zu erzielen. “

Leider scheint es so zu sein, dass sie, anstatt die CPU-Skalierung für ihre neuen Geräte zu verbessern, um bessere Benchmark-Ergebnisse zu erzielen, das Telefon so eingestellt haben, dass es die großen Kerne verwendet, wenn bestimmte Apps ausgeführt werden.

Beim Öffnen einer Benchmarking-App empfiehlt unser Meizu Pro 6 Plus, in den „Leistungsmodus“ zu wechseln (dies allein genügt, um zu bestätigen, dass nach bestimmten Paketnamen gesucht wird), und dies scheint einen wesentlichen Unterschied zu bewirken. Im Standard-Balance-Modus erreicht das Telefon in den Single- und Multi-Core-Bereichen von Geekbench durchweg rund 604 und 2220 Punkte, im Performance-Modus jedoch 1473 und 3906 Punkte, was vor allem darauf zurückzuführen ist, dass die großen Kerne für die meisten ausbleiben des Tests im „Balance-Modus“ und Einschalten im „Performance-Modus“. Meizu scheint die kleinen Kerne auf ihre maximale Geschwindigkeit von 1, 48 GHz zu beschränken und einen festen Boden für zwei ihrer großen Kerne von 1, 46 GHz festzulegen, wenn Geekbench im „Leistungsmodus“ ausgeführt wird (wobei die anderen beiden großen Kerne frei skaliert werden dürfen) und ziemlich aggressiv), was wir beim Ausführen des Builds „Mini Golf“ nicht sehen.

Die Wahl zwischen einem High-Power-Modus und einem Low-Power-Modus ist zwar eine nette Funktion, in diesem Fall scheint es jedoch nichts weiter als ein Trick für den Salon zu sein. Das Meizu Pro 6 Plus erzielt im „Leistungsmodus“ für die reguläre Geekbench-App gute Ergebnisse. Wenn es jedoch die Geekbench-Version „Mini Golf“ verwendet, sinkt die Leistung wieder auf das Niveau, auf das es eingestellt ist "Balance-Modus". Der höhere Leistungsstatus des Meizu Pro 6 Plus dient nur dem Benchmarking und nicht dem tatsächlichen täglichen Gebrauch.

Als wir das Meizu Pro 6 Plus im Performance-Modus mit dem geheimen Build von Geekbench getestet haben, sind die großen Kerne online gegangen, wenn wir die Taktraten mit Qualcomm Trepn aufgezeichnet haben. Wir haben noch nicht festgestellt, ob das Meizu erkennt, dass Trepn ausgeführt wird und die großen Kerne teilweise aufgrund dessen einschaltet, oder ob es einfach die großen Kerne aufgrund der zusätzlichen CPU-Last einschaltet, die es erzeugt. Eine zusätzliche Belastung des Hintergrunds (z. B. bei eingeschalteten Leistungsdiagrammen während des Tests) kann die Ergebnisse eines Benchmarks möglicherweise beeinträchtigen. Die konservative Skalierung von Meizu kann jedoch bedeuten, dass der zusätzliche Aufwand ausreicht, um den Test zu beschleunigen den Rand, und rufen Sie die großen Kerne in Aktion, um so die Leistung für alle Aufgaben zu verbessern.


Wenn empfangene OEMs Feedback geben ...

Nach unseren Tests haben wir OnePlus bezüglich der festgestellten Probleme kontaktiert. Als Reaktion darauf versprach OnePlus, das Targeting von Benchmarking-Apps mit Benchmarking-Betrug nicht mehr durchzuführen, beabsichtigt jedoch, es für Spiele (die ebenfalls ein Benchmarking erhalten) beizubehalten. In einem zukünftigen Build von OxygenOS wird dieser Mechanismus nicht durch Benchmarks ausgelöst . OnePlus hat auch unseren Vorschlag erhalten, ein Toggle hinzuzufügen, damit die Benutzer wissen, was unter der Haube vor sich geht, und zumindest der unfaire und irreführende Vorteil bei Benchmarks korrigiert werden sollte. Aufgrund der chinesischen Neujahrsfeiertage und ihres Funktionsrückstands kann es jedoch eine Weile dauern, bis wir Optionen zur benutzerbezogenen Anpassung für diese Leistungsfunktion sehen. Obwohl das Korrigieren des Verhaltens allein eine Verbesserung darstellt, ist es dennoch ein wenig enttäuschend, dies in regulären Anwendungen (wie Spielen) zu sehen, da es eine Krücke ist, auf bestimmte Apps abzuzielen, anstatt die tatsächliche Leistungsskalierung zu verbessern. Indem OnePlus die Aggressivität des Prozessors und damit die Taktraten für bestimmte Apps künstlich steigert, anstatt die Fähigkeit des Telefons zu verbessern, zu erkennen, wann tatsächlich höhere Taktraten erforderlich sind, wird eine inkonsistente Leistung für das Telefon erzielt, die sich erst am Telefon bemerkbar macht wird älter und es werden mehr Spiele veröffentlicht, auf die OnePlus nicht abzielt. Die Implementierung ermöglicht derzeit jedoch eine bessere Leistung der Spiele. OnePlus hat auch eine Erklärung zu diesem Artikel abgegeben, die Sie unten lesen können:

'Um Benutzern eine bessere Benutzererfahrung in ressourcenintensiven Apps und Spielen zu bieten, insbesondere in grafisch intensiven, haben wir bestimmte Mechanismen in der Community implementiert und Nougat-Builds, um den Prozessor zu einer aggressiveren Ausführung zu veranlassen. Der Auslöseprozess für das Benchmarking von Apps wird in zukünftigen OxygenOS-Versionen von OnePlus 3 und OnePlus 3T nicht verfügbar sein. '

Wir freuen uns zu hören, dass OnePlus den Benchmark-Betrug von seinen Handys entfernen wird. In Zukunft werden wir weiterhin versuchen, die OEMs unter Druck zu setzen, wann immer möglich verbraucherfreundlicher zu sein, und wir werden nach künftigen Benchmark-Betrügereien Ausschau halten.

Leider ist die einzig wahre Antwort auf diese Art von Betrug ständige Wachsamkeit . Als Community für Smartphone-Enthusiasten müssen wir unsere Augen nach Versuchen richten, Benutzer wie diese zu täuschen. Wir interessieren uns nicht für die Benchmark-Scores selbst, sondern für das, was die Benchmarks über die Leistung des Telefons aussagen. Während der Benchmark-Betrug beim OnePlus 3 noch nicht aktiv war, reichte ein einfaches Software-Update aus, um diese irreführende „Funktion“ hinzuzufügen, und zeigt deutlich, dass es nicht ausreicht, die Geräte beim ersten Start auf Benchmark-Betrug zu überprüfen. Probleme wie dieses können Tage, Wochen, Monate oder sogar Jahre nach dem Start des Geräts hinzugefügt werden. Dadurch werden die globalen Durchschnittswerte, die von Benchmarks monatelang gesammelt wurden, künstlich aufgebläht, was sich auf das endgültige Datenbankergebnis auswirkt. Es sollte beachtet werden, dass selbst mit diesen Optimierungen, für deren Entwicklung die Hersteller Zeit und Geld investieren mussten, die Benchmark-Scores in der Regel nur um ein paar Prozentpunkte zunehmen (mit Ausnahme einiger Randfälle wie Meizu, bei denen das Betrügen viel größer ausfällt) Probleme). Ein paar Prozentpunkte, was viel kleiner ist als der Abstand zwischen den leistungsstärksten und den leistungsschwächsten Geräten. Wir würden jedoch argumentieren, dass bei Geräten mit immer ähnlicher werdender Hardware diese zusätzlichen Prozentpunkte der entscheidende Faktor in den Ranglisten sein könnten, nach denen die Benutzer letztendlich suchen. Bessere Treiberoptimierung und intelligentere CPU-Skalierung können die Geräteleistung massiv beeinträchtigen, da die Differenz zwischen dem Wert des auf Qualcomm Snapdragon 820 basierenden Geräts mit der schlechtesten Leistung (von einem großen OEM) bei Geekbench 20% übersteigt. Zwanzig Prozent durch Treiberoptimierung, anstatt ein paar Prozentpunkte durch Zeit- und Geldaufwand, um Ihre Benutzer zu täuschen. Dabei geht es nur um die Entwicklungsanstrengungen, die sich auf die Benchmark-Scores auswirken können. Viele der größten Vorteile einer Investition in die Verbesserung der Software eines Geräts lassen sich nicht immer anhand von Benchmarks beurteilen, da OnePlus eine hervorragende Leistung in der Praxis für seine Geräte bietet. Es sollte wirklich klar sein, wo sich die Entwicklungsbemühungen eines Unternehmens in diesem Fall konzentrieren sollten. Wir wenden uns an mehr Unternehmen, die Benchmarks betrügen, sobald wir sie finden, und wir hoffen, dass sie genauso empfänglich sind wie OnePlus.


Wir möchten dem Team von Primate Labs noch einmal dafür danken, dass sie mit uns zusammengearbeitet haben, um dieses Problem aufzudecken. Es wäre wesentlich schwieriger gewesen, das Benchmark-Cheating ohne die "Mini Golf" -Edition von Geekbench richtig zu testen.