質問

CUDA のような CPU の取り組みとしての GPU の将来はどうなると思いますか?これらが主流になり、業界で次に採用される流行になると思いますか?Apple は、GPU を使用して CPU タスクを実行するための新しいフレームワークを構築しており、科学分野では Nvidias CUDA プロジェクトで多くの成功を収めています。学生にこの分野に時間を割くことを提案しますか?

役に立ちましたか?

解決

まず第一に、この質問は本当にSOに属するものではないと思います。

私の意見では、GPU はベクトルベースの浮動小数点演算を行う場合には常に非常に興味深い代替手段です。ただし、これは次のようになります。それは主流にはならないでしょう。ほとんどの主流 (デスクトップ) アプリケーションは、浮動小数点計算をほとんど行いません。

すでにゲーム (物理エンジン) や科学計算で注目を集めています。この 2 つのいずれかを「主流」と考えると、GPU が主流になるでしょう。

私はこれら 2 つが主流とは考えていないため、GPU が主流業界で次に採用される流行になると考えています。

学生として、物理学を多用した科学計算に興味があるのであれば、絶対にそれに時間を割くべきです (とにかく、GPU は非常に興味深いハードウェアです)。

他のヒント

科学コンピューティングと並列コンピューティングに興味がある場合は、時間を割いてください。CUDA を考えて GPU を CPU のように見せることは考えないでください。古い GPGPU プログラミング技術よりも直接的な GPU プログラミング方法のみが可能です。

汎用 CPU は、分岐予測、パイプライン処理、スーパースケーラーなどに費やされたすべての作業から、さまざまなタスクを適切に実行する能力を引き出します。これにより、高スループットのメモリを集中的に使用する浮動小数点演算が苦手になる一方で、さまざまなワークロードで優れたパフォーマンスを達成することが可能になります。

GPU はもともと 1 つのことを実行するように設計されており、それを非常にうまく実行します。グラフィック操作は本質的に並列処理です。結果間にデータの依存関係がないため、画面上のすべてのピクセルの色を同時に計算できます。さらに、係数を 0 または 1 に設定することで、必要とされるほぼすべての分岐を実現できるため、必要なアルゴリズムは分岐を処理する必要がありませんでした。したがって、ハードウェアは非常にシンプルになります。分岐予測について心配する必要はなく、プロセッサーのスーパースケーラーを作成する代わりに、チップ上に詰め込めるだけ多くの ALU を追加するだけで済みます。

プログラム可能なテクスチャ シェーダと頂点シェーダにより、GPU は一般的なプログラム可能性への道を獲得しましたが、依然として高スループットの浮動小数点演算用に設計されたハードウェアによって制限されています。より汎用的な計算を可能にするために、おそらく回路がいくつか追加されるでしょうが、それはある程度までです。GPU のグラフィック処理能力を損なうものは、採用されません。結局のところ、GPU 企業は依然としてグラフィックス ビジネスに携わっており、ターゲット市場は依然としてゲーマーやハイエンドのビジュアライゼーションを必要とする人々です。

GPGPU 市場はまだバケツの一滴であり、ある程度まではそうであるでしょう。結局のところ、「見た目がきれいである」ということは、「毎回 100% 保証され、再現可能な結果が得られる」よりも満たすべき基準がはるかに低いのです。

つまり、GPU は CPU のようには実現不可能です。これらは、さまざまな種類のワークロード向けに設計されているだけです。私は、GPU がさまざまな問題を迅速に解決するのに役立つ機能を獲得すると期待していますが、それらは常に変わりません。 グラフィックス 何よりもまず処理ユニット。

抱えている問題と、それを解決するために持っている最も適切なツールを常に一致させることが常に重要です。

長期的には、汎用プロセッサが進化してそれらの機能を引き継ぐため、GPU は存在しなくなるのではないかと思います。 インテルのララビー が最初のステップです。x86 に賭けるのは悪い考えであることは歴史が示しています。

超並列アーキテクチャとベクトル処理の研究は今後も役立ちます。

GPU が CPU に取って代わることは決してありません。CPU は一連の逐次命令を実行し、GPU は非常に特殊なタイプの計算を並行して実行します。これらの GPU は、数値計算とグラフィックスにおいて非常に役立ちます。ただし、ほとんどのプログラムでは、このようなコンピューティングの性質を利用することはできません。

標準の CPU 計算だけでなく、GPU 風の浮動小数点ベクトル計算を含む、Intel と AMD の新しいプロセッサーが間もなく登場する予定です。

それが正しいやり方だと思います。

それを考えると GPU は安価なスーパーコンピューターの作成に利用されている, 、それは物事の自然な進化のようです。すでに多くのコンピューティング能力と研究開発が行われているので、利用可能なテクノロジーを活用してみませんか?

さあ、やってみよう。これはクールなリサーチの材料になるだけでなく、ハイエンドのグラフィック カードを購入して Crysis や Assassin's Creed を詳細なグラフィックでプレイできる正当な理由にもなります ;)

これは、1 つか 2 つのアプリケーションが見つかるものの 1 つですが、すぐに誰かが、これを使ってより一般的に役立つことを超高速で実行する方法を見つけ出す「キラー アプリ」を思いつくでしょう。

浮動小数点値の大きな配列にルーチンを適用するピクセル シェーダー。GIS カバレッジ アプリケーションが登場するかもしれません。あるいは、わかりません。私よりも多くの時間をそれに費やさなければ、あなたは私と同じレベルの洞察力、つまりほんのわずかしか持っていないことになります。

Intel や S3 と同様に、これは非常に大きなことになる可能性があると感じています。ハードウェアに 1 つの小さな調整を追加するか、誰かが頭の上に電球を置くだけで済むかもしれません。

これほど多くの未利用の電力があるのに、どうやって長期間使わないままにしておくのかわかりません。ただし、問題は、これに GPU がどのように使用されるかです。現時点では CUDA が適切であると思われますが、平均的な開発者にとってより親しみやすいものとなる可能性のある他のテクノロジーも登場しつつあります。

Apple は最近 OpenCL を発表しました。これは CUDA をはるかに超えており、しかも非常にシンプルであると主張しています。これについて正確にどう判断すればよいのかはわかりませんが、khronos グループ (OpenGL 標準に取り組んでいる人々) は OpenCL 標準に取り組んでおり、それを OpenGL と高度に相互運用できるようにしようとしています。これは、通常のソフトウェア開発により適したテクノロジーにつながる可能性があります。

これは興味深い主題であり、ついでに言えば、私は CUDA を主な焦点として、平均的な開発者が (可能であれば) GPU のパワーを利用できるようにする最善の方法についての主題で修士論文を始めようとしています。

昔、浮動小数点計算を行うのは非常に困難でした (80386 のような (今日の基準で) 非常にパフォーマンスの悪い CPU では、命令ごとに数千、数百万サイクルのエミュレーションが必要でした)。浮動小数点のパフォーマンスが必要な場合は、FPU (80387 など) を入手できます。古い FPU は CPU の動作にかなり緊密に統合されていましたが、外部にありました。その後、これらは統合され、80486 には FPU が内蔵されました。

昔の FPU は GPU 計算に似ています。AMDのAPUではすでにそれを実現できます。APUとは、GPUを内蔵したCPUのことです。

したがって、あなたの質問に対する実際の答えは、GPU が CPU になるのではなく、CPU に GPU が組み込まれることになると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top