directx 12に移行する際に、amdがnvidiaよりも向上する理由を説明します

目次:
AMDのグラフィックスカードはNvidiaよりもDirectX 12の方がはるかに優れており、前者が使用していたアーキテクチャは新世代のAPIを使用する準備がはるかに整っているということをお読みになったか、聞いたことがあるでしょう。 これらは私たちが日常的に目にする確約ですが、DirectX 12ではAMDはNvidiaよりも本当に優れているのでしょうか? この投稿では、知っておくべきすべてのことを説明しています。
オーバーヘッドはAMDがDirectX 12で強化した原因です
DirectX 12が話題になって以来、次のような比較グラフが表示されています。
これらのグラフィックスは、GeForce GTX 980 TiやRadeon R9 Fury Xなどの2つの同等のグラフィックスカードを比較します。前の画像を見ると、Nvidiaに対してAMDがDirectX 11からDirectX 12に移行すると、パフォーマンスが大幅に向上していることがわかります。新しいAPIで作業を開始すると、同等またはパフォーマンスが低下します。 これを見ると、どのユーザーもAMDカードがNvidiaカードよりもはるかに優れていると思います。
次に、次の画像を見てみましょう。
今回は、DirectX 11およびDirectX 12におけるGeForce GTX 980 TiとRadeon R9 Fury Xのパフォーマンスを比較したグラフです。 DirectX 11では、Nvidiaカードの出力はAMDのほぼ2倍であり、DirectX 12に移行するとパフォーマンスが均一化されることがわかります。 Radeon R9 Fury Xは、DirectX 12で作業するとパフォーマンスが大幅に向上し、GeForce GTX 980 Tiはそれほど向上しないことがわかります。 いずれの場合も、フューリーXの方が有利なため、差は2 FPSに達しないため、DirectX 12での両方のパフォーマンスは同じです。
この時点で、DirectX 12に移行したときにAMDがこのような改善を行った理由を自問する必要があります。 AMDはNvidiaよりもDirectX 12で動作しますか、それともDirectX 11で大きな問題がありますか?
その答えは、AMDがDirectX 11で大きな問題を抱えていることです。これは、カードのパフォーマンスをNvidiaよりも悪くする問題です。 この問題は、カードドライバーがプロセッサを使用すること、「 オーバーヘッド 」またはオーバーロードとして知られている問題に関連しています。
AMDグラフィックスカードは、DirectX 11でプロセッサを非常に非効率的に使用します。この問題をチェックするには、Radeon R7 270XおよびCoreを搭載したGeForce GTX 750 Tiのパフォーマンスを分析する次のビデオを見るだけです。 i7 4790K、次にCore-i3 4130を使用します。ご覧のように、AMDグラフは、はるかに強力でないプロセッサを使用すると、パフォーマンスが大幅に低下します。
ファークライ4
ライズ:ローマの息子
COD Advanced Warfare
これの鍵は、 DirectX 11 の「 コマンドキュー 」またはコマンドリストにあります。非常にシンプルで理解しやすい方法で、AMDグラフィックカードがAPIへのすべての描画呼び出しを受け取り、それらを配置することで要約できます。シングルプロセッサコア 。これは、 プロセッサのシングルスレッドパワーに大きく依存するため、コアあたりのパフォーマンスの低いプロセッサと一緒に作業すると、大きな影響を受けます。 これが、AMDのグラフィックスがAMD FXプロセッサで大きく影響を受けた理由であり、Intelよりもコアあたりの性能がはるかに劣ります。
代わりに、 NvidiaはAPIへの描画呼び出しを受け取り、それらを異なるプロセッサコアに分割します。これにより、負荷が分散され、はるかに効率的な使用が行われ、プロセッサコアに依存する電力が少なくなります。 その結果、DirectX 11では、AMDはNvidiaよりもオーバーヘッドがはるかに大きくなります。
後者の確認は非常に簡単です。同じゲームと同じプロセッサでAMDとNvidiaグラフィックカードを監視するだけで、Nvidia の場合、すべてのコアがよりバランスのとれた方法で機能することがわかります。
このオーバーヘッドの問題はDirectX 12で修正されました。これが、AMDグラフィックカードがDirectX 11からDirectX 12に移行する際の大きなパフォーマンス向上の主な理由です。 次のグラフを見ると、デュアルコアプロセッサから4つのうちの1つに移行しても、DirectX 12のパフォーマンスが失われないことがわかります。
そしてなぜAMDはNvidiaのようにしないのですか?
NvidiaのDirectX 11でのコマンドキューの実装は非常に高価であり、多額の投資と人的資源を必要とします。 AMDは財政状況が悪いため、Nvidiaが投資するのと同じリソースはありません。 さらに、 将来はDirectX 12を通過し 、API自体がはるかに効率的な方法でコマンドキューの管理を担当するため、 このようなオーバーヘッドの問題はありません 。
さらに、 Nvidiaのアプローチには、ドライバーの最適化に大きく依存するという問題があるため、AMDは、重要なゲームが市場に出るたびに、通常、Nvidiaがそのドライバーの新しいバージョンを最初にリリースします。最近これにスタックします。 AMDのアプローチには、ドライバーへの依存度がはるかに少ないという利点があるため、Nvidiaほど緊急に新しいバージョンのカードを必要としません。これが、Nvidiaのグラフィックスカードの劣化が進む理由の1つです。それらがサポートされなくなった時の経過 。
そして、非同期シェーダーはどうですか?
非同期シェーダーについても多くの話がありましたが、これに関しては、実際にはオーバーヘッドがはるかに重要であり、グラフィックスカードのパフォーマンスを決定する場合に非常に重要であると言っておく必要があります 。 AMDよりも実装がはるかに簡単ですが、Nvidiaもそれらをサポートします。これは、Pascalアーキテクチャがより効率的に機能するため、AMDほど非同期シェーダーを必要としないためです。
AMDのグラフィックスには、非同期コンピューティング専用のハードウェアエンジンであるACEが含まれます。これは 、チップ上のスペースを占有し、エネルギーを消費するハードウェアです。そのため、その実装は気まぐれではなく、グラフィックスコアアーキテクチャの主な欠陥が原因です。次はジオメトリー付きのAMDです。 AMDのアーキテクチャは、さまざまなコンピューティングユニットとそれらを構成するコア間でワークロードを分散する際に非常に非効率的です 。 つまり、多くのコアが動作していないため、無駄になります。 ACEと非同期シェーダーが行うことは、失業状態のままになっているこれらの核に「作業を提供」して、それらを利用できるようにすることです。
もう1つの部分では、 MaxwellおよびPascalアーキテクチャに基づくNvidiaグラフィックがあり、これらはジオメトリにおいてはるかに効率的であり、コアの数はAMDグラフィックの数よりもはるかに少ないです。 これにより、Nvidiaアーキテクチャは、AMDの場合のように多くのコアが浪費されるのではなく、作業の分割に関してはるかに効率的になります。 Pascalでの非同期シェーダーの実装は、ソフトウェアを介して行われます 。これは、ハードウェアの実装ではほとんどパフォーマンス上の利点が得られないためですが、チップのサイズとそのエネルギー消費量が低下するためです。
次のグラフは、Mark Time Spy 3D非同期シェーダーを使用したAMDおよびNvidiaのパフォーマンス向上を示しています。
Nvidiaが将来的にハードウェア非同期シェーダーを実装するかどうかは、害を上回る利点に依存します。
Directx 12はWindows 10に同梱されます

新しいDirectX 12は、新しいWindows 10が正式にリリースされるまで届かず、そのバージョンのWindows専用となる可能性があります
Directx 12はパフォーマンスを最大50%向上させます

マイクロソフトは、DirectX 12がビデオゲームのパフォーマンスを最大50%向上させ、モバイルデバイスの消費を削減できることを発表しました
Zotac geforce gtx 580は、directx 12ではパフォーマンスが低下しますが、directx 11ではタイプを保持します

wccftechチームは、Zotac GeForce GTX 580と最新のGeForce 384.76 WHQLドライバーを組み合わせて、DirectX 12でテストしました。