パフォーマンスの最適化を可能にする他のデバイスドライバーとGPUドライバーの違いは何ですか?


12

大手2社のGPUメーカーが、随所でパフォーマンスを少し向上させる更新されたドライバーを絶えずリリースしているようです。彼らが同じゲームのためにいるとき、私はそれが時間をかけて追加すると確信しています。

それを念頭に置いて、特定のアプリやWindowsのバージョンなどのAMDまたはIntelがCPUドライバーを微調整するという話を聞いたことがないのはなぜですか?


1
VTCに関して:これは曖昧ではありません。GPU(およびCPU)ドライバーを使用して、何を調整するのか、およびその理由については特定の理由があります。
ベンリチャーズ

1
CPUベンダーはリリースアップデートを行います。たとえば、downloadcenter.intel.com
…(

@derobert-興味深いことに、明らかにインテルにはPentiumの大失敗を繰り返すつもりはありません。ただし、これらの更新はプロセッサマイクロコード用であり、「CPUドライバー」ではありません。マイクロコードは、カーネルお​​よび.exeファイルのマシンコードよりも低いレベルで実行されます。
おがくず

@sawdust CPUマイクロコード(少なくとも一部)は、CPUが受信するx86命令を、実行する実際の操作に変換する役割を担います。そのため、実際にはグラフィックスドライバーにいくらか似ています。もちろん、インテルは気に多くのことを自分のアップデートは、おそらくほとんどバグ修正されているので、NVIDIAはよりも正確性についての詳細。
derobert

回答:


13

まず、特定のCPUのパフォーマンスを向上させたり、効率を向上させたりするドライバーパッチがリリースされる場合があります。しかし、明らかに、あなたはこの質問をしているのです。なぜなら、それはそれほど一般的でないからです。ただし、CPUドライバーの最適化の概念は似ています。

GPUは非常に複雑な回路です。CPU上で非常に長い時間がかかる特定のタスクをオフロードするために存在します。彼らはデータのセットと、このデータをどうするかについての指示を受け取ります。GPUは、管理しやすい方法でデータを並べ、指示を解釈して何をすべきかを指示できる必要があります。次に、データに対して一連の数学演算を実行する必要があります。その後、データを再度並べ替え、完了したら結果をオペレーティングシステムに送り返す必要があります。これは、コンピューターグラフィックスパイプラインの非常に単純な説明です。プログラムでデータを準備する前に実行する必要がある複数の手順があります。

現在、GPUは命令セットを受け入れ、ハードウェアに非常に複雑な数学演算を実装する必要があるため、このパイプラインではより高速または低速で実行されることがわかっている特定のものがあります。デバイスのドライバーを作成することの一部は、デバイスに送信されるデータと命令を解釈し、デバイスがそれを理解できるように変換することです。ドライバーがこれを実行している場合、タスクが可能な限り最短の時間をとるように、データをデバイスに送信する方法を決定できます。ただし、通常、ドライバーは、サービスを提供しているプログラムが何をしているのかについてあまり多くの情報を持っていません。プログラムから受け取るのは、API呼び出し(「線を描く」、「点を色付けする」、「三角形を網掛けする」など)だけです。ですから、それができる仮定はあまり良くありません。

AMDまたはnVidiaが特定のゲームのパフォーマンス改善を含むドライバー更新プログラムをリリースすると、これは、ドライバーがどのゲームがグラフィックスハードウェアを呼び出しているかを検出し、ゲームの方法について知られている一連のハードコードされた仮定を持つことを意味します実装されました。ゲームには多くのテクスチャ画像があり、それらをすばやくメモリに入れたり出したりする必要があるか、特定の照明効果を生成するためにオンザフライで多くの色をブレンドする必要があります。通常、ゲームが行うことは、これらの計算を実行する方法を記述する小さなプログラム(「シェーダー」と呼ばれる)を実装することであり、GPUに送信されて実行されます。ドライバーがゲームでのハードウェアの使用方法を知っている場合、ドライバーはデータを整理し、スループットと効率を向上させる方法で目的のタスクを実行する命令セットを選択できます。

ただし、製品の出荷後、GPUの一部でバグが見つかる場合があります。チップが設計されたときに検証で見落とされたのは十分にあいまいかもしれませんが、それがヒットする特定のゲームでバグや望ましくない動作(またはクラッシュさえ)を引き起こすことがわかります。その場合、ドライバーはこのバグのある状態を検出し、CPU側に計算をオフロードするか、この状態にならないようにデータをGPUに供給する方法を変更することで回避します。これらも、ドライバーの更新という形でリリースされます。

したがって、基本的には、ハードウェア自体のパフォーマンスを変更するのではなく、ハードウェアの使用方法を変更するだけなので、同じデータセットでより効率的かつ迅速に動作できます。


ゲームの実装方法を理解しているドライバーエンジニアについて、これは、一部のゲームのNvidiaスプラッシュスクリーンが単なる広告以上のものであるかどうかを疑問に思います。
ルイス

2
@Louis彼らは単なる広告ではありません。NVidiaは特定のゲームスタジオとの特別な関係を維持し、NVidiaグラフィックハードウェアのゲームコードを最適化するために開発者を支援するためです。AMDもこれを行います(ゲームにAMDのロゴが表示される場合があります)が、NVidiaはこれまでずっとはるかに大きな存在感を示してきました。
ベンリチャーズ

これをもう一度読んで、私はそれが素晴らしい答えであり、チェックマークがどこにあるのかを見ます。すべての答えが彼らの説明で教えられていたらいいのにと思う。
ルイ

別の報奨金の例としてこれを統合しますか(より多くの数字)?
ルイ

10

「CPUドライバー」はめったに存在せず、ロード可能なモジュールとしては確かに存在しません。マルチコア制御または割り込み処理のいくつかのバリエーションには、時折「CPUドライバー」が必要になります(AMDデュアルコアでは、完全に利用するにはWinXPドライバーが必要です)。それ以外の場合、ほとんどのOSはCPUに直接アクセスするように構成および構築されます。問題が発生し、深刻な場合は、カーネルコードにパッチが適用され、カーネルアップデートがリリースされます。

GPUは単なる周辺機器ではありません。それらはコプロセッサーに進化しました。「GPUドライバー」は、デバイスへのアクセスを提供するだけでなく、ドライバーにパッケージ化されたGPUの処理アルゴリズム(グラフィックスサブプログラム)を含みます。これらの「ドライバー」のサイズは景品/手がかりです。改善されているのはこれらのアルゴリズム/サブプログラムです。


2
これは、私のカードのドライバーダウンロードが200MBを超えている理由を説明しています。
ルイス

これらのドライバーには200 MB相当のコードがあるとは本当に思いません。これらすべてのアルゴリズムに関して、それがほんの一握りのMBを超えていたら、私は驚くでしょう。>。>
user541686

1
@Mehrdad好奇心からNividaのドライバー用に7-zipでインストーラーEXEを開きました。Display.Driverフォルダーのサイズは147 MB​​、31 MBのexeが1つあり、660 KBを超えるファイルはすべてDLLです。
スコットチェンバレン

@Scott:そのexeはほぼ確実に、実際のコードを含むより多くのファイルのアーカイブです。実際のファイルはせいぜい数メガバイトであると期待しています...それらに含まれる可能性のあるリソースを法として、コードではありません。
user541686

0

それはドライバーだけでなく、GPUそのものです。GPUは、さまざまな種類の計算(FFTなど)とメモリ操作に特化しています。汎用CPUよりも、ほとんどのタスクで並行して動作し、より効果的にすることができます。

実行中のプログラムの知識があれば、このプログラムのメモリ操作または計算プロセスを最適化できます。GPUは、計算方法やメモリ操作の実行方法が非常に多様であるため、完璧なファームウェアまたはドライバーを作成する必要があります。;)改善の余地は十分にあります。

他のデバイスのほとんどは、その使用法では汎用性がありません。PCのほとんどのハードウェアは、仕様に従って実行し、プロトコルに従う必要があるため、ドライバーを最適化する必要はありません。

A、CPUを忘れました。> _ <CPUを最適化できます。ほとんどの新しいCPUモデルにはプログラム可能なファームウェアが搭載されていますが、パフォーマンスの向上は努力する価値はありません。ハードウェアビルドプロセスのエラーを修正するためにのみ使用されます。


「ほとんどの新しいCPUモデルには、プログラム可能なファームウェアが含まれています」と説明してください。
ティム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.