
ゲームをプレイしているときや、そのようなタスクを実行しているときに、GPU がプロセッサの作業の一部を行えるようにしたいと考えています。
私のプロセッサは 4.1 GHz で動作する AMD FX-4200 で、GPU は NVIDIA GeForce GTX 1060 6GB です。
明らかに、私は非常に強力な GPU を持っており、Star Wars Battlefront などのグラフィックをあまり必要としないゲームを実行しているときに、GPU (空き処理スペースがあることを前提とします) にプロセッサの作業の一部を任せたいと思っています。これは可能ですか? 可能であれば、どうすればいいですか?
答え1
CPU と GPU は互換的に使用することはできません。これらは、特定の種類の計算には適し、他の種類の計算には適さないよう特別に設計されています。(すべてに適した単一の処理ユニットを構築することは不可能であるため)
考えてみてください。CPU と GPU が同じ作業を実行できるのであれば、なぜ GPU が存在するのでしょうか。すべての計算を CPU で実行しないのはなぜでしょうか。
GPU が注目されるのは、CPU がグラフィックス処理に不向きだからです。もともと GPU は汎用的な計算をまったく実行できませんでしたが、これは比較的新しいアイデアです。
まとめると、一般的にはCPUからGPUへ、あるいはその逆に作業をオフロードすることはできないこれを行うには、プログラムを特別に設計する必要があります。基本的に、CPUとGPUはまったく異なる方法で動作するため、アルゴリズムはCPUとGPUで別々に実装する必要があります(CPUはSISDGPUはSIMD)。
一部のプログラム、特に一部のビデオ処理ソフトウェアではそれが可能です。また、物理演算を CPU で計算するか、グラフィック カードの PhysX ハードウェアを使用して計算するかを選択できるゲームもあります。ソフトウェアによって明示的に許可されていない限り、どのユニットで計算を実行するかを選択することはできません。
答え2
GPU と CPU がどの程度使用されるかは、ゲーム/プログラムの開発者次第です。開発者は、GPU 側で CPU を大量に使用したり、それ以上使用したりするようにコーディングできます。ユーザー側で、GPU にグラフィックスに関連しないタスクを実行させたり、GPU にさらに多くのワークロードを割り当てたりする方法はありません。
ただし、GPU をオーバークロックして、CPU の処理能力と速度を向上させることができます。