GPGPU の開発に役立つ重要な要素は何なのか、そしてもちろん、受け入れられない制約は何なのか、疑問に思っています。
私の頭に浮かぶのは:
- 主な利点:これらのものの生の力
- 主な制約: メモリ モデル
あなたの見解は?
GPGPU の開発に役立つ重要な要素は何なのか、そしてもちろん、受け入れられない制約は何なのか、疑問に思っています。
私の頭に浮かぶのは:
あなたの見解は?
Ars のインタビューでの Tim Sweeney の発言をどのように解釈するかに注意する必要があります。アプリケーションとハードウェアが相互に成長するにつれて、シングルスレッドのパフォーマンスに適したプラットフォームとスループット指向のコンピューティングに適したプラットフォームの 2 つの別個のプラットフォーム (CPU と GPU) を持つことは、間もなく過去のものになるだろうと彼は言っています。
GPU は、CPU の技術的限界から抜け出し、合理的な解像度とフレームレートでは、レイ トレーシングやフォトン マッピングなどのより自然なアルゴリズムをほぼ不可能にしました。GPU が登場し、プログラミング モデルが大幅に異なり、制限が厳しくなりましたが、そのモデルに合わせて入念にコーディングされたアプリケーションのスループットは、おそらく 2 ~ 3 桁向上しました。2 つのマシン モデルは、コーディング スタイル、言語 (OpenGL、DirectX、シェーダー言語と従来のデスクトップ言語)、およびワークフローが本質的に異なります (そして今も)。これにより、コードの再利用、さらにはアルゴリズム/プログラミング スキルの再利用が非常に困難になり、高密度の並列計算サブストレートを利用したい開発者は、この制限的なプログラミング モデルに縛られます。
最後に、この高密度の計算基板が同様に CPU にプログラム可能になるところまで来ています。これらの超並列アクセラレーターの 1 つの「コア」と (たとえば、G80 の SM 内の実行スレッドは、従来の意味での正確なコアではありません) と最新の x86 デスクトップとの間には、まだかなりのパフォーマンスの差がありますが、これら 2 つのプラットフォームのコンバージェンスは、次の 2 つの要因によって促進されます。
したがって、Tim が言っていたことは、2 つの異なるプラットフォームが、たとえばOpenClが提供するよりもさらに大きな範囲で収束するということです。インタビューからの顕著な引用:
TS: いいえ、あなたがどこに向かっているのか正確にわかります。次の世代のコンソールでは、単一の非汎用チップで構成されたコンソールを持つことができます。それは、過去の CPU アーキテクチャから進化したものであろうと、GPU アーキテクチャから進化したものであろうと、汎用プロセッサである可能性があり、グラフィックス、AI、サウンド、およびこれらすべてのシステムを完全に同種の方法で実行できる可能性があります。これは非常に興味深い見通しです。ツールセットとソフトウェア作成プロセスが大幅に簡素化される可能性があるからです。
現在、Unreal 3 を出荷する過程で、複数のプログラミング言語を使用する必要があります。ピクセル シェーダーの記述には 1 つのプログラミング言語を使用し、ゲームプレイ コードの記述には別のプログラミング言語を使用します。PlayStation 3 では、さらに別のコンパイラを使用して、Cell プロセッサで実行するコードを記述します。したがって、PlayStation 3 は、最終的には特定の課題になります。異なるベンダーから、異なる命令セット、異なるコンパイラ、および異なるパフォーマンス技術を備えた 3 つの完全に異なるプロセッサがあるためです。したがって、多くの複雑さは不必要であり、負荷分散がより困難になります。
たとえば、異なるプログラミング機能を持つ 3 つの異なるチップがある場合、多くの場合、そのうちの 2 つのチップはアイドル状態のままで、もう 1 つのチップは限界に達しています。しかし、アーキテクチャが完全に統一されていれば、チップのどの部分でも任意のタスクをいつでも実行でき、その方法で最高のパフォーマンスのトレードオフを得ることができます。
この記事は、CPU の速度とコア数の増加に伴い、GPU がそれほど必要でなくなることについて興味深いと思いました。
http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars
以前は、並列アーキテクチャと、ほとんどアイドル状態であったため、一般的な目的のプログラミング タスクの側面で使用できる余分なシリコンが興味深いものでした -
参照 - http://en.wikipedia.org/wiki/CUDA
しかし、上記のLouの答えに直面して、それはあまり関係がないかもしれません.
主な利点はギガフロップス、つまり生の電力です。短所には、制限された非直交命令セットとプログラミング モデルが含まれます。
ここに調査用紙があります: http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=907
ウィキペディアの記事はかなり良いスタートです。
Lou Franco は、Tim Sweeney とのインタビューを指しています。これは彼が行った講演のスライドで、詳細が記載されています 。スウィーニー
また、鼻を鳴らすかもしれません: http://gpgpu.org