ベンチマークの不正行為の逆襲:OnePlusと他の人がどのように赤字をつかんだか、そして彼らがそれについて何をしたか

数年前、多くの大手メーカーがベンチマークで不正行為をしているのを目にしたとき、かなりの騒動がありました。 あらゆる規模のOEM(Samsung、HTC、Sony、LGを含む)は、捕まることなくユーザーをだまそうとするこの軍拡競争に参加しましたが、ありがたいことに、業界の専門家やジャーナリストとの率直な議論の後、ベンチマークの不正行為をやめました。

2013年に、サムスンが特定のアプリケーションでGPUクロック速度を人為的に高めていたことを発見し、全メーカーのベンチマーク不正に関する一連の調査を引き起こしました。 当時の調査では、Google / Motorolaを除くほぼすべてのメーカーがベンチマークの不正行為を行っていました。 彼らは皆、ベンチマークで携帯電話のパフォーマンスを少し高めようとする試みに時間とお金を費やしていました。実際よりも これらの開発努力は、クロック速度の下限の設定からクロック速度の最大設定への強制、ベンチマーク時にのみ利用可能な特別な高電力状態と特別なクロック速度の作成まで、全範囲を実行しました。ベンチマークでカップルポイントの増加。

ベンチマークの不正行為のこれらの試みは、ベンチマーク自体のポイントに反していたため、発見されたとき、かなりの怒りがありました。 ほとんどのベンチマークは、日々の使用では再現できないラボ条件での電話機の理論上の最大パフォーマンスを示すためのものではありませんが、実際の電話機間の比較の基準点を提供するためのものです。 技術出版物、業界のリーダー、および一般大衆からの少しの世論批判(およびいくつかのプライベートな会話)の後、ほとんどのメーカーはベンチマークの不正行為は単に受け入れられないというメッセージを受け取り、結果として停止しました。 その時点で止まらなかった少数の大部分は、ベンチマークの不正行為を防ぐためにベンチマークの実行数に大幅な変更が加えられたため、すぐに停止しました(その利点を減らします)。 多くのベンチマークは、クロック速度を最大化することによるサーマルスロットリングがすぐに明らかになるように、より長く作成されました。

Geekbenchの作成者であるJohn Pooleにインタビューしたとき、ベンチマーク不正のトピックと、Primate Labsのような企業がそれを防ぐためにできることは浮上しました。 特に、Primate Labsはベンチマークの不正行為の影響を減らすために、Geekbench 4をGeekbench 3よりもかなり長くしました。 ベンチマークチートの開発コストが価値がないことを確実にするために利益を減らす。

「問題は、クロックスピードを上げたり、ガバナーなどを無効にしてゲームを開始した場合に、これらの大きなランタイムを取得すると、電話に実際の本当の危険をもたらし始めることです。 …ゲームをするつもりなら…それほど多くは得られません。 あなたはまだ数パーセントを得るかもしれませんが、それは本当に価値がありますか?」–ジョン・プール


どうした

残念ながら、一部のOEMが再び不正行為を開始したことを報告する必要があります。つまり、もう一度目を光らせてください。 ありがたいことに、メーカーはこのような問題にますます敏感になっており、それに適切な注意を向けることで、これを迅速に修正できます。 バックラッシュが前回試行されたときの悪さを考慮して、メーカーがベンチマークの不正行為を実装しているのを見ると、少し衝撃的です(一部のベンチマークでは、パフォーマンスリストから不正行為デバイスを完全に除外しています)。 ベンチマークの不正行為によるパフォーマンスの向上が通常どれほど小さいかとは対照的にそのバックラッシュで(前回の試行のほとんどで5%未満のスコア増加でした)、これがすべて私たちの背後にあることを本当に期待していました。

数ヶ月前にベンチマークの不正行為が純粋に熱狂的な関心事である世界を去り、フォルクスワーゲンとフィアットクライスラーの両方が排出ベンチマークで不正行為を見つけたときに、この試みのタイミングは特に不適切です。 両社は、ディーゼル車が排出ガス試験を受けていることを検出するソフトウェアを実装し、規制の制限内にとどまりながら燃費の点でガソリン車と競争しようとして、燃費が低下する低排出モードに切り替えました。エミッション試験用。 これまでのところ、スキャンダルにより罰金が数十億、リコール費用が数百億、請求が発生しました。OEMがベンチマークスコアを膨らませるために見た報復の種類は確かにありません。規制要件の測定。

Qualcommが当時の新しいQualcomm Snapdragon 821でアプリをより高速に開く方法を調査中に、OnePlus 3TでXiaomi Mi Note 2やGoogle Pixel XLなどのSnapdragon 821デバイスで再現できない奇妙なことに気づきました。 編集長のマリオ・セラフェロは、Qualcomm TrepnとSnapdragon Performance Visualizerを使用して、アプリを開いたときにQualcommがCPUクロック速度を「ブースト」する方法を監視し、OnePlus 3Tの特定のアプリが元に戻らないことに気付きました開封後の通常のアイドリング速度。 一般的な経験則として、パフォーマンス監視ツールを使用してベンチマークをテストすることは避けます(特に公式デスクトップツールがないSnapdragon以外のデバイスの場合)。ただし、このインシデントでは役立ちました。そうしないと見落としがちな奇妙な動作に注意してください。

特定のベンチマークアプリに入ると、CPU負荷が0%に低下した場合でも、OnePlus 3Tのコアは小さなコアでは0.98 GHzを超え、大きなコアでは1.29 GHzを超えたままになります。 これは非常に奇妙です。通常、負荷がない場合、OnePlus 3Tではコアの両方のセットが0.31 GHzに低下します。 これを最初に見て、OnePlusのCPUスケーリングが少し奇妙に設定されているのではないかと心配しましたが、さらにテストすると、OnePlusは特定のアプリケーションをターゲットにしなければならないという結論に達しました。 私たちの仮説は、OnePlusはこれらのベンチマークを名前でターゲットにしており、ベンチマークスコアを上げるために代替のCPUスケーリングモードに入っていたというものでした。 主な懸念の1つは、OnePlus One、OnePlus X、およびOnePlus 2で発生した問題を回避するために、OnePlusがこのモードでより緩やかな温度制限を設定する可能性があることでした。 Geekbenchのコアセクションが不十分であり、結果として実質的にスロットルが低下することがあります(OnePlus Xが、シングルコアセクションよりもマルチコアセクションでスコアが低い場合があります)。 OnePlus 2のレビューで激しい調整を見つけることができます。そこでは、Geekbench 3マルチコアスコアの最大50%をデバイスが削減できることがわかりました。 その後、デバイス間でスロットルと温度の比較を開始したときに、OnePlus 2はOEMが避けるべきものの教科書の例になりました。

Primate Labs(Geekbenchの作成者)のチームに連絡を取りました。チームはベンチマークの不正行為の最初の波を暴露し、さらなるテストのために協力しました。 OnePlus 3TをトロントのPrimate Labsのオフィスに持ち込み、初期分析を行いました。 最初のテストには、OnePlus 3Tが名前でかなりの数のアプリを直接探していることが判明したROMダンプが含まれていました。 最も注目すべきは、OnePlus 3TがGeekbench、AnTuTu、Androbench、Quadrant、Vellamo、およびGFXBenchを探していたことです。 この時点までに、OnePlusがベンチマークの不正行為を行っているというかなり明確な証拠があったため、Primate LabsはGeekbench 4の「ボブのミニゴルフパット」バージョンを作成しました。 Geekbench 3と4の間の大幅な変更のおかげで、このテスト専用に「ミニゴルフ」バージョンをゼロから再構築する必要がありました。 Geekbench 4のこのバージョンは、Geekbenchが不正な電話で通常のアプリケーションとして実行できるようにするために、ベンチマーク検出を回避するように設計されています(ベンチマークの不正行為のほとんどの試行を欺くパッケージ名の変更を超えて)。


驚くべき例

アプリを開いた直後、違いは明らかでした。 OnePlus 3Tは、通常のGeekbenchアプリのように、ビッグコアでは1.29 GHz、小さなコアでは0.98 GHzではなく、0.31 GHzでほとんどのアプリでアイドル状態でした。 OnePlusは、CPUガバナーをより攻撃的にし、Geekbenchの実際の人工的なクロックスピードフロアを非表示のGeekbenchビルドにはありませんでした。 CPUのワークロードに基づいているのではなく、アプリのパッケージ名に基づいているため、非表示のビルドはだまされます。 個々の実行の違いはごくわずかでしたが、下に示すように、持続的なパフォーマンステストでは熱スロットル緩和が輝いています。

私たちのテストから、これはかなり長い間、水素OSの「機能」であり、コミュニティがNougatリリース(2つのROMがマージされた後)を構築するまでOxygen OSに追加されなかったようです。 特に、ブートローダの脆弱性からGPL準拠の問題まで、ROMの統合後に今月OnePlusが抱えていたソフトウェアの問題に照らして見ると、少し残念です。 2つのチームが合併した後、埃が落ち着くと、OnePlusはフォームに戻り、開発者にとって使いやすいオプションとしての地位を維持することを期待しています。

Geekbenchの「ミニゴルフ」バージョンを手に入れて、ベンチマークチートのために他の携帯電話のテストも始めました。 ありがたいことに、私たちのテストでは、半年前のスキャンダルに関与した企業による不正行為は示されていません。 HTC、Xiaomi、Huawei、Honor、Google、Sonyなどは、テストデバイスでの通常のGeekbenchビルドと「ミニゴルフ」ビルドの間で一貫したスコアを持っているようです。

残念ながら、ベンチマーク不正行為の可能性のある証拠を見つけましたが、他のいくつかの企業からはまだ確認できていないため、さらに調査します。 これの非常に最悪の例は、Exynos 8890搭載のMeizu Pro 6 Plusで、ベンチマークの不正行為を別の極端なものにしました。


恐ろしい例

Meizuは歴史的にCPUスケーリングを非常に保守的に設定しています。 特に、「パフォーマンスモード」であっても、大きなコアがめったにオンラインにならないように電話機をセットアップすることが多く、フラッグシップ携帯電話に搭載されたフラッグシッププロセッサ(優秀なExynos 8890など)がミッドレンジプロセッサのように動作します。 これは昨年、AnandtechがMediatek Helio X25ベースのMeizu Pro 6でのAnandtechのJavaScriptベンチマークでのパフォーマンスの低さからMeizuを呼び出し、ほとんどのテストで大きなコアがオフラインのままであったことに注目したときに頭に浮かびました。ほぼ排他的に大きなコアで実行されます)。 Anandtechは先週、ソフトウェアアップデートがMeizu Pro 6にプッシュされたことにより、Meizuがこれらのコアを最大限に使用できるようになったことに気付きました。 AnandtechのSmartphoneシニアエディターであるMatt Humrickは、 「Flyme OS 5.2.5.0Gにアップデートした後、PRO 6のパフォーマンスは大幅に向上しました。 Kraken、WebXPRT 2015、およびJetStreamのスコアは約2倍から2.5倍向上しています。 Meizuは明らかに負荷しきい値を調整し、スレッドをより頻繁にA72コアに移行してパフォーマンスを向上させました。」

残念ながら、新しいデバイスのCPUスケーリングを改善してベンチマークスコアを向上させるのではなく、特定のアプリの実行時にビッグコアの使用に切り替えるように電話を設定しているようです。

Meizu Pro 6 Plusは、ベンチマークアプリを開いたら、「パフォーマンスモード」(特定のパッケージ名を探していることを確認するだけで十分です)に切り替えることをお勧めします。 標準の「バランスモード」では、電話機はGeekbenchのシングルコアおよびマルチコアセクションで一貫して604および2220を獲得しますが、「パフォーマンスモード」では1473および3906を獲得します。 「バランスモード」でのテスト、および「パフォーマンスモード」でのオン。 Meizuは、「パフォーマンスモード」でGeekbenchを実行しているときに、他の2つの大きなコアを自由にスケーリングできるように、小さなコアを最大速度1.48 GHzにロックし、1.46 GHzの2つの大きなコアにハードフロアを設定します、および非常に積極的に)、 「ミニゴルフ」ビルドを実行するときに表示されません。

高電力モードと低電力モードのいずれかを選択できるのは便利な機能ですが、この場合、それは単なるパーラートリックにすぎません。 Meizu Pro 6 Plusは、通常のGeekbenchアプリの「パフォーマンスモード」でまともなスコアを確認しますが、Geekbenchの「ミニゴルフ」ビルドを使用すると、設定したときと同じレベルのパフォーマンスに戻ります。 「バランスモード」。 Meizu Pro 6 Plusのパフォーマンス状態は、実際の日々の使用ではなく、ベンチマークのためのものです。

注意点の1つは、Geekbenchのシークレットビルドで「パフォーマンスモード」でMeizu Pro 6 Plusをテストしたときに、Qualcomm Trepnでクロック速度を記録している場合、大きなコアがオンラインになったことです。 MeizuがTrepnが実行されていることを認識していて、それが原因で大きなコアをオンにしているのか、それとも単に追加のCPU負荷が原因でビッグコアをオンにしているのかはまだわかりません。 バックグラウンドでの追加の負荷(テスト中にパフォーマンスグラフを保持した場合など)がベンチマークの結果を増加させることは直感に反するように聞こえるかもしれませんが、Meizuの控えめなスケーリングは、余分なオーバーヘッドがそれを押し上げるのに十分であることを意味する可能性がありますビッグコアを実行することで、すべてのタスクのパフォーマンスが向上します。


受容的なOEMがフィードバックに対応する場合…

テストに続いて、発見した問題についてOnePlusに連絡しました。 これに対応して、 OnePlusは、ベンチマークチートでベンチマークアプリのターゲットを停止することを迅速に約束しましたが、ゲーム(ベンチマークも取得)でそれを保持する予定です。 OxygenOSの将来のビルドでは、このメカニズムはベンチマークによってトリガーされません 。 OnePlusはトグルを追加するという提案を受け入れており、ユーザーがボンネットの下で何が起こっているのかを知ることができ、少なくともベンチマークでの不公平で誤解を招く利点を修正する必要があります。 ただし、旧正月の祝日と機能のバックログのため、このパフォーマンス機能のユーザー向けのカスタマイズオプションが表示されるまでにはしばらく時間がかかる場合があります。 動作だけを修正することは改善されますが、実際のパフォーマンススケーリングを改善する代わりに、特定のアプリをターゲットとする松葉杖であるため、通常のアプリケーション(ゲームなど)で見るのはまだ少し残念です。 プロセッサのアグレッシブを人為的にブーストすることにより、特定のアプリのクロック速度を向上させるのではなく、実際に高いクロック速度が必要なタイミングを特定する電話の能力を向上させるのではなく、OnePlusは電話の一貫性のないパフォーマンスを作成します。 OnePlusが対象としていない古いゲームやより多くのゲームがリリースされます。 ただし、現在の実装では、ゲームのパフォーマンスが向上しています。 OnePlusはこの記事の声明も提供しました。これは以下で読むことができます。

「リソースを集中的に使用するアプリやゲーム、特にグラフィックを集中的に使用するゲームでユーザーに優れたユーザーエクスペリエンスを提供するために、特定のメカニズムをコミュニティに実装し、Nougatビルドはプロセッサーをより積極的に実行するようにトリガーします。 アプリのベンチマークのトリガープロセスは、OnePlus 3およびOnePlus 3Tの今後のOxygenOSビルドには含まれません。

OnePlusが携帯電話からベンチマークの不正行為を取り除いてくれることを嬉しく思います。 今後は、可能な限りOEMに消費者に優しいよう圧力をかけ続け、今後のベンチマークの不正行為に目を光らせています。

残念ながら、このタイプの詐欺に対する唯一の本当の答えは、絶え間ない警戒です。 スマートフォン愛好家のコミュニティとして、このようなユーザーを欺く試みに目を光らせておく必要があります。 私たちが興味を持っているのはベンチマークのスコアそのものではなく、電話のパフォーマンスについてベンチマークが言っていることです。 確認した時点でOnePlus 3でベンチマークチートはまだアクティブではありませんでしたが、この誤解を招くような「機能」を追加するには単純なソフトウェアアップデートで十分であり、最初の起動時にベンチマークチートのデバイスをチェックするだけでは不十分であることを明確に示しています。 このような問題は、デバイスが発売されてから数日、数週間、数か月、さらには数年後に追加され、ベンチマークによって収集されたグローバル平均を数か月先まで人為的に膨らませ、最終的なデータベース結果に影響を与えます。 メーカーが開発のために時間とお金を投資しなければならなかったこれらの微調整があっても、 通常、ベンチマークスコアは数パーセントポイント増加するだけです (Meizuのような、不正行為がはるかに多くをカバーしているフリンジケースを除く)問題)。 数パーセントポイント。これは、最高のパフォーマンスのデバイスと最低のパフォーマンスのデバイスとの間のギャップよりもはるかに小さくなります。 ただし、同様のハードウェアを実行しているデバイスでは、これらの余分なパーセンテージポイントが、ユーザーが最終的に検索するランキングチャートの決定要因になる可能性があると主張します。 より優れたドライバー最適化とよりスマートなCPUスケーリングは、デバイスのパフォーマンスに非常に大きな影響を与える可能性があり、最高のパフォーマンスを発揮するQualcomm Snapdragon 820ベースのデバイスのスコアと、Geekbenchで20%を超える最悪のパフォーマンス(主要OEMのデバイス)のスコアが異なります。 ユーザーを欺くために時間とお金を費やすことによる数パーセントのポイントではなく、ドライバーの最適化による20パーセント。 これは、ベンチマークスコアに影響を与える可能性のある開発努力についての話です。 デバイスのソフトウェアの改善に投資することの最大の利点の多くは、ベンチマークに常に現れるとは限らず、OnePlusはデバイスで優れた実世界のパフォーマンスを提供します。 この場合、企業の開発努力の焦点をどこに置くべきかは明確にすべきです。 ベンチマークをごまかしている会社を見つけて、それをごまかしている企業を増やしています。OnePlusと同じくらい受け入れられることを願っています。


この問題を発見するために協力してくれたPrimate Labsのチームに改めて感謝したいと思います。 Geekbenchの「ミニゴルフ」エディションなしでは、ベンチマークの不正行為を適切にテストすることはかなり困難でした。