21

私が得たい答えはもともとこれらの2つの質問からのものであるため、質問は部分的にプログラミングに関連しているだけです。

CPUコア数が非常に少ないのはなぜですか(GPUと比較して)?CPU、GPUのみ、またはCPUのみの代わりにGPUを使用しないのはなぜですか?(GPUは特殊であり、CPUはマルチタスクなどに特化していることを私は知っています)。また、メモリ(ホストとGPU)の制限に加えて、精度とキャッシュ機能があることも知っています。ただし、ハードウェアの比較に関しては、ハイエンドからハイエンドのCPU/GPU比較GPUの方がはるかにパフォーマンスが高くなります。

だから私の質問は:OSやアプリケーションなどにCPUの代わりにGPUを使用できますか?

私がこの質問をしている理由は、現在のコンピューターが2つのメインメモリとキャッシングシステム(CPU / GPU)を備えた2つのメインプロセッシングユニット(CPU / GPU)を使用している理由を知りたいからです。プログラマーが希望します。

4

4 に答える 4

16

現在のGPUには、OSなどにとって一般的に重要であると考えられている(実際には重要な)最新のCPUの機能の多くが欠けています。

たとえば、OSは通常、仮想メモリとページングを使用してプロセスを管理していました。ページングにより、OSは、他のすべてのプロセスから(ほぼ)完全に分離された独自のアドレス空間を各プロセスに与えることができます。少なくとも公開されている情報に基づくと、ほとんどのGPUはページングをまったくサポートしていません(または少なくともOSが必要とする方法ではサポートしていません)。

GPUは、CPUよりもはるかに低いクロック速度でも動作します。したがって、驚異的並列問題に対してのみ高性能を提供します。CPUは通常、シングルスレッドコードに対してはるかに高いパフォーマンスを提供します。OSのコードのほとんどは高度に並列化されていません。実際、並列化するのは非常に困難です(たとえば、Linuxには、1つのスレッドだけがほとんどのカーネルコードを実行するようにするためのジャイアントロックがありました。いつでも)。この種のタスクの場合、GPUがメリットを提供する可能性はほとんどありません。

プログラミングの観点からは、GPUは(せいぜい)混合された祝福です。人々は、GPUのプログラミングを中途半端なものにするために、プログラミングモデルに何年も費やしてきました。それでも、CPUプログラミングよりも(一般的に)はるかに困難です。比較的些細なことでもGPUでうまく機能させるのは難しいので、オペレーティングシステムのように大きくて複雑なものをGPUで実行しようと試みることは想像できません。

于 2012-06-12T22:32:46.187 に答える
14

GPUは、グラフィックス関連の処理(明らかに)用に設計されています。これは、本質的に、並列処理(複数のタスク/計算を一度に実行する)の恩恵を受けるものです。これは、おそらくご存知のように通常2〜8コアの最新のCPUとは異なり、GPUには数百のコアがあることを意味します。これは、レイトレーシングなど、3Dゲームやその他のグラフィックスを多用するアクティビティで遭遇する可能性のあるものを処理するのに非常に適していることを意味します。

一方、CPUが直面するタスクは通常、3Dシーンのレンダリングほど並列処理の恩恵を受けないため、CPUのコア数は比較的限られています。実際、CPUにコアが多すぎると、CPUが通常実行するタスクの性質と、多数のコアを利用するために多くのプログラムが作成されないという事実のために、実際にマシンのパフォーマンスが低下する可能性があります。 。これは、インターネットブラウジングやその他のほとんどのデスクトップタスクでは、いくつかの強力なコアを備えたCPUが、多数の小さなコアを備えたGPUよりもジョブに適していることを意味します。

もう1つの注意点は、コアが多いほど、通常、必要な電力が増えることを意味します。これは、256コアの電話またはラップトップは、製造上の課題とコストは言うまでもなく、電力と熱の観点からはかなり実用的ではないことを意味します。

于 2012-06-12T22:33:08.680 に答える
2

通常、オペレーティングシステムは、その構造を見ると非常に単純です。ただし、それらを並列化しても速度はそれほど向上せず、生のクロック速度のみが向上します。

GPUには、OSが必要とするパーツと命令セットからの多くの命令が欠けているだけであり、それは洗練された問題です。仮想化機能(Intel VT-xまたはAMDのAMD-v)について考えてみてください。

GPUコアは愚かなアリのようなものですが、CPUは、いわば複雑な人間のようなものです。このため、どちらもエネルギー消費量が異なり、生成される熱量も大きく異なります。

詳細については、この広範なスーパーユーザーの回答を参照してください。

于 2015-07-05T14:03:23.500 に答える
1

誰もこれにお金と時間を費やすことはないからです。そのような一部の愛好家を除いて: http: //gerigeri.uw.hu/DawnOS/history.html(現在はここ:http://users.atw.hu/gerigeri/DawnOS/history.html

DawnはGPUで動作するようになりました。新しいOpenCL対応エミュレーターを使用すると、Dawnは起動し、グラフィックカード、GPU、およびIGP(OpenCL 1.0を使用)で動作します。Dawnは、グラフィックチップ上で完全に起動して動作する最初で唯一のオペレーティングシステムです。

于 2019-10-22T06:25:57.627 に答える