パスワードを忘れた? アカウント作成
16536072 story
グラフィック

ブラウザーの実行ファイル名によって最適化を行う AMD の GPU ドライバー 46

ストーリー by headless
最適 部門より
Yandex のエンジニアが Yandex Browser のパフォーマンスと安定性の問題を調べていたところ、AMD の GPU ドライバーの挙動がブラウザーの実行ファイル名によって変わることを発見したそうだ (Neowin の記事Habr の記事)。

発見のきっかけとなったのは、Lenovo のノート PC に搭載されたタッチパッドでウェブページをスクロールする際、Yandex Browser ではひどくカクカクした動作になるのに対し、Google Chrome や Microsoft Edge では滑らかな動作がみられたことだ。Chrome も Yandex も Chromium ベースであり、タッチパッドイベントの処理もオープンソースの Chromium と違いはみられないという。そのため、何か他の部分に問題があると考えて調査を進め、実行ファイル名を「browser.exe」から「chrome.exe」に変えると問題が解消することを発見する。

ゲームアプリでは実行ファイル名によって GPU ドライバーが最適化を行うことが知られているが、Yandex は AMD の GPU ドライバーがブラウザーアプリでも実行ファイル名によって最適化を行うという仮説を立てて実験。Chromium のサンドボックス機能を利用して「GetModuleFilenameA/GetModuleFilenameW」関数と「GetModuleFilenameExA/GetModuleFilenameExW」関数が返す実行ファイル名をbrowser.exe」から「chrome.exe」に変更してテストを実行したところ、GPU プロセスのクラッシュ回数は 5.5 分の 1 に減り、メモリ使用量は 8% 減少したという。ウェブページの読み込みやユーザーインターフェイスの反応もわずかに向上したそうだ。

この結果を受けて Yandex は AMD に「browser.exe」を最適化対象の実行ファイル名リストに加えるよう要請する一方、Windows 版の Yandex Browser バージョン 22.9.0 以降では GPU プロセスで「chrome.exe」のふりをするよう変更したとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 設定 - システム - ディスプレイ - グラフィック
    アプリのカスタム オプション

    例えば、ゲームではdGPUを、ウェブブラウザではiGPUを使うといった設定を行える。

  • by Anonymous Coward on 2023年03月19日 10時33分 (#4429306)

    挙動を変えるのはあまりよろしくない手法よね。
    記事にあるように他のソフトウェアが成り済ませるし。
    とはいえ、他に方法が無かったんだろうな多分。

    • by Anonymous Coward on 2023年03月19日 22時12分 (#4429514)

      AMDのGPUドライバーってのが 「AMD Software: Adrenaline Edition」のことだとしたら、騒ぐまでもなく設計通りの挙動。
      ブラウザ、ゲームやグラフィックスアプリケーションなどを、パス・プロセス名のほかウインドウ名・ハッシュなどで認識してチューニングを切り変えている模様。

      古いバージョンだと、例えば"game.exe"という名前のフリーのゲームなら、Unityだろうがツクールだろうがひとまとめだった。
      最近の版は個別で認識しているから、ファイル名・パスだけ見ているわけではなさそう。
      だから、ファイル名を偽装するようなことをしても、後で弾かれる可能性もある。

      # GPUプロセスがクラッシュしまくるのは、アプリケーション/シェーダーの作りが根本的に悪いと思うんだけれどねぇ…

      親コメント
    • by Anonymous Coward

      詳しく知らないのだけどゲームへの最適化もファイル名でやってるのだろうか
      ベンチマークソフトもファイル名変えたら挙動が変わるのだろうか

    • by Anonymous Coward

      browser.exeだと、他のアプリケーションと被る可能性があるし、実行ファイル名で判別は良くないですね。

    • by Anonymous Coward

      FEATURE_BROWSER_EMULATIONみたいな

    • by Anonymous Coward

      マインスイーパーやソリティアで、GPUフル稼働して消費電力が爆上げになるのは困るし、
      ある程度しょうがないんじゃないでしょうか

      • by Anonymous Coward

        でも今回の場合とは逆にただのメモ帳ソフトが最適化対象として登録されているファイル名と偶然被っちゃってGPUフル稼働消費電力爆上げになってしまうみたいな可能性もあるんじゃなかろうか。

    • by Anonymous Coward

      Windowsセキュリティのランサムウェアの防止が、実行ファイル名しか指定できないので困る。
      バッチファイルとかのスクリプトで何か処理しようとして引っかかり、
      処理の間だけOFFにして処理が終わるとONにするようなことを頻繁にやってる。

  • by Anonymous Coward on 2023年03月19日 10時41分 (#4429309)

    (以下はあくまで思考実験です)

    キモはYandex。言わずとしれたロシアの企業だし、Wikipediaによれば「ヤンデックスはロシアによる国家管理を受け入れた」という曰く付きの存在。

    一方、AMDに限らずGPUはいまや戦略物資の一端を担っているので、そのメーカーは米国政府とはツーカーの仲。

    よって昨今の国政情勢に鑑み、米国政府の意を受けて、AMDがYandexに嫌がらせをしている?

    • by Anonymous Coward

      Yandexを排除したいんじゃなくて、ブラウザ向け最適化のターゲットにマイナーブラウザが含まれていないだけでは。

      • by Anonymous Coward

        タイトルが「陰謀論的に読み解く」で「(以下はあくまで思考実験です)」とわざわざ断っているのにマジレス

        • by Anonymous Coward

          陰謀脳論の人の予防線に見えた。ネタだったならごめんね。

        • by Anonymous Coward

          ゲスの勘繰りって書いてくれればよかったのに

    • 最適化対象となっているブラウザはバックドア的な機構が有るため小細工不要だが
      無いブラウザはドライバレベルでバックドア的機構を適用するので動作が遅くなるんだよ

    • by Anonymous Coward

      ところで、別の思考実験の時にリサ・スーは米国政府とケンエンの仲とか考えたりしませんでしたか?

  • by Anonymous Coward on 2023年03月19日 11時03分 (#4429315)

    つまるのところ、ユーザー数からいって、最適化していなさそうな(憶測)Linux版Chromeではカクカクするんだろうか。
    あとFirefoxは最適化の対象なのだろうか。

    • by Anonymous Coward

      汝持たざる者よ 尻に拡張子が付いてから物を言うのだな

      だったりして

  • by Anonymous Coward on 2023年03月19日 11時12分 (#4429317)

    AndroidのFirefox上で動画を流すとコメントがカクつくものの、UAをiOSのSafariに偽装すると何故か滑らかに流れるようになる

    #記事の内容とは別になりますが、ブラウザによって挙動を変えるという話で思い出したので

    • by Anonymous Coward

      AndroidのFirefox上で動画を流すとコメントがカクつくものの、UAをiOSのSafariに偽装すると何故か滑らかに流れるようになる

      iOSはWebmに対応していないからサーバ側でUAで判断して代わりに.mp4が提供されるんだけどハードウェアデコード的にはMP4のほうが手厚いからかと。

      • by ogino (1668) on 2023年03月19日 13時30分 (#4429358) 日記

        詳しくないけど WebM も MP4 もコンテナの名前なので、ハードウェアデコード云々に関係する動画コーデックとは直接には対応しないはず。

        MP4 だったらコーデックは MPEG-1/2 から H-264/265、AV1 までなんでもありじゃないかな。WebM だったら普通は VP8 か VP9 だと思うけど、AV1 の可能性もあるのかな。

        親コメント
      • by Anonymous Coward

        やっぱWebMなんて要らんかったんや…

      • by Anonymous Coward

        ニコニコってWebm使ってましたっけ

        YouTubeでは1440p以上がWebmなので長らくSafariで再生できなかったと聞きましたが(今はMac版のみ対応したとか)

      • by Anonymous Coward

        「コメント」のカクつきだからデコードが直接関与する部分とは違う気がする。
        Androidはスペックの差異が広くて下位向けに調整されてるみたいな感じかと思った。

    • by Anonymous Coward

      WindowsのFirefoxでニコニコの動画再生をずっと行っているとそのうちウィンドウが真っ白になる

      タスクマネージャーでFirefoxのGPUプロセスを見ると、共有GPUメモリが141GBとかの搭載メモリ量よりはるかに多いありえない数値になっている。これはタスクマネージャーの表示がバグっているだけで、about:processesでは1GBとか普通の表示なので実際にはそこまで消費していないようだが無関係とも思えない

      タスクマネージャーからGPUプロセスを殺すと復帰する

      というのがずっと続いてる

      • by Anonymous Coward

        仮想メモリがあるし、メモリ圧縮も有るから実際にバグで開放漏れが出来てるのかもよ。

        • by Anonymous Coward

          GPUメモリのスワップや圧縮ってできるんでしたっけ? 何らかのリソースリークが起きている可能性は否定しない(というか高確率でありそうだ)けど、タスクマネージャーの表示がそのまま正しいわけでもないと思うよ

      • by Anonymous Coward

        Firefoxは昔からブラウザゲームやっててもメモリ使用量がうなぎ上りなのよね
        メモリ管理は下手くそな印象がある

  • by Anonymous Coward on 2023年03月19日 12時39分 (#4429342)

    こんなのかな?

    NVIDIAのベンチマーク不正に対応した3DMark03アップデート
    https://srad.jp/story/03/05/24/0931215/ [srad.jp]

    Tridentにもベンチマーク不正疑惑
    https://srad.jp/submission/11086/ [srad.jp]

    スマホでも
    ベンチマーク最適化、多くの端末メーカーが採用
    https://mobile.srad.jp/story/13/10/05/1720253/ [mobile.srad.jp]

    • by Anonymous Coward

      Chromeってベンチマークアプリだったのか?

      • by Anonymous Coward

        ファイル名によって処理を変えた類似した話ってだけ

        • by Anonymous Coward

          こういうのはドライバ側が最適化モードを用意していても、アプリ側がそれを使ってくれないなら、ドライバ側が切り替え対象のリストを持つのもしょうがないよね。

    • by Anonymous Coward

      Intel 740も忘れてはいけない。
      https://ascii.jp/elem/000/000/666/666972/3/ [ascii.jp]

      CPUでは逆にソフトウェア側の方でインテルのハードウェアを認識すると高い数字が出るように不正
      インテルがAMDを妨害するためにベンチマークテストを操作したとする集団訴訟で、CPUを購入した全ユーザー(イリノイ州除く)に対してインテルが15ドルを支払う事に

  • by Anonymous Coward on 2023年03月19日 13時21分 (#4429356)

    画像でもjpgをwebpに変えて配信したり
    動画でもmp4をwebmに変えて配信したり
    所によってはハードウェアチェックしてav1にってとこも

  • by Anonymous Coward on 2023年03月19日 19時06分 (#4429450)

    普通にアプリケーション名で最適化やチューニングをしてますって言えばいいのであって、
    最適化はしてるけどやり方は教えないとか、ゲームだけやっってるっぽい説明とか、その辺を見直せばいいだけではないかなと。

    しかし本当にファイル名だけ(ファイルサイズとかディレクトリも見ない?)なのだとしたら、
    問題起きそうですよね。

    やたら電池の減りが早くなるとか、逆に省エネモードで動いてしまうとか。

    • by Anonymous Coward

      ロジックとターゲットを公開するとYandexみたくハックするやつが出てくるからだめ。
      問題が置きそうというのはたしかにそうだがめったに起きない。リスクとメリットでいうと圧倒的にメリットが勝ってる。
      この手の最適化は新しいものではないからね。

    • by Anonymous Coward

      > 普通にアプリケーション名で最適化やチューニングをしてますって言えばいいのであって、
       
      言ってるけど読んでないやつが因縁付けてるだけ。

typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...