なぜ人々は、より特殊なチップではなくGPUを高性能計算に使用するのですか?


105

私の理解から、人々は一般的なコンピューティングにGPUを使用し始めました。GPUは余分な計算能力の源だからです。また、各操作のCPUほど高速ではありませんが、多くのコアを備えているため、CPUよりも並列処理に適しています。これは、グラフィックス処理用のGPUを備えたコンピューターを既に所有しているが、グラフィックスを必要とせず、より多くの計算能力が必要な場合に意味があります。しかし、私はまた、人々がのGPUを買うことを理解し、具体的グラフィックスを処理するためにそれらを使用する意図で、コンピューティングパワーを追加します。私には、これは次の例えに似ています:

草を刈る必要がありますが、芝刈り機は弱虫です。そこで、寝室に置いてある箱型ファンからケージを取り外し、刃を研ぎます。私はそれを芝刈り機にダクトテープで貼ります、そしてそれは合理的にうまくいくことがわかります。数年後、私は大規模な芝生ケア事業の購買担当者になりました。草刈り用具に使う予算はかなりあります。芝刈り機を買う代わりに、たくさんの箱ファンを買う。繰り返しますが、それらは正常に機能しますが、私が使用することにならない余分な部品(ケージなど)を支払う必要があります。(このアナロジーの目的のために、芝刈り機と箱のファンはほぼ同じ費用がかかると仮定する必要があります)

では、GPUの処理能力はあるがグラフィックのオーバーヘッドはないチップやデバイスの市場がないのはなぜですか?いくつかの可能な説明を考えることができます。正しいものはどれですか?

  • GPUがすでに優れたオプションである場合、そのような代替案は開発するには費用がかかりすぎます(芝刈り機は存在しません。この完全に優れたボックスファンを使用してみませんか?)。
  • 「G」がグラフィックを表すという事実は、意図された使用のみを意味し、チップを他の種類の作業よりもグラフィック処理に適したものにする努力が実際に行われることを意味するものではありません(芝刈り機とボックスファンは、すぐに理解できます;一方を他方のように機能させるために変更する必要はありません)。
  • 現代のGPUは古代の先駆者と同じ名前を持っていますが、最近ではハイエンドのものは特にグラフィックスを処理するように設計されていません(現代のボックスファンは、古いものがそうでなくてもほとんど芝刈り機として機能するように設計されています)。
  • ほとんどすべての問題をグラフィックス処理の言語に翻訳するのは簡単です(非常に速く空気を吹き付けることで草を刈ることができます)。

編集:

私の質問には回答しましたが、いくつかのコメントと回答に基づいて、質問を明確にする必要があると感じています。誰もが自分の計算を買わない理由を私は問いません。明らかにそれはほとんどの場合高価すぎるでしょう。

私は、並列計算を迅速に実行できるデバイスへの需要があるように見えることを単に観察しました。この目的のために設計されたデバイスとは対照的に、最適なそのようなデバイスがグラフィック処理ユニットであると思われる理由を疑問に思いました。


66
彼らこの種のことを専門にしているからです。基本的には同じタイプの数学です。また、nVidiaは、このタイプの超並列数計算処理を実行するためのGPU専用ボードを構築して販売しています。
ヘプタイト

7
チップには特別な「ユニット」が追加されていることに注意してください。AESはCPU上のハードウェア(と思う)で行われます。AVXはハードウェアにも実装されています。しかし、どこで止めますか?チップメーカーはあなたが何を必要とするかを知らず、ほとんどの人は非常に特定のタスクのために設計された独自のチップを持つ能力(技術的または財政的)を持っていません。グラフィックカードは、他の人が言ったように、特定のタスクに適した特殊なアーキテクチャの一種です。これらはすべてに適しているわけではありませんが、特定の特定のタスクに適しているため、そこで使用されます。
DetlevCM

4
より正確な例えは、箱のファンを100メートル幅の農業用コンバインに置き換えます。
ムースボーイ

6
私のPCにはすでにGPUを使用する準備が整っているので、専用のチップを設計して生産すると、数百万の負担になります。
PlasmaHH

19
別の例えを試してください。ボックスファンがあり、ヘリコプターのローターがあるとします。架空の世界では、ボックスファンのアプリケーションには20 mのカーボンファイバーブレードボックスファンが完成し、大量生産が安くなるまで、より高速で動作する徐々に大きくなるファンが必要でした。それから誰かが、20mの箱型ファンは基本的にはヘリコプターのローターであり、その周りにケージがあることに気づきました。それは本当に似ています。
グラハム

回答:


109

それは本当にあなたのすべての説明の組み合わせです。安くて簡単なものがすでに存在し、デザインは純粋なグラフィックスから離れています。


最新のGPUは、主に、追加のグラフィックハードウェア(およびビデオのエンコードとデコードなどの固定機能アクセラレータ)を備えたストリームプロセッサと見なすことができます。最近のGPGPUプログラミングでは、この目的のために特別に設計されたAPI(OpenCL、Nvidia CUDA、AMD APP)を使用しています。

過去10、20年にわたって、GPUは固定機能パイプライン(ほとんどグラフィックのみ)からプログラマブルパイプライン(シェーダーでカスタム命令を記述できる)から、シェーダーコアへの直接アクセスを提供しないOpenCLなどの最新のAPIに進化しました付随するグラフィックパイプライン。

残りのグラフィックビットはマイナーです。それらはカードのコストのごくわずかな部分であるため、除外する方がそれほど安くはないため、追加のデザインのコストが発生します。したがって、これは通常行われません-ほとんどのGPUに相当する計算指向の同等物はありません-最高の層を除き、それらは非常に高価です。

通常の「ゲーミング」GPUは非常に一般的に使用されます。規模の経済性と比較的単純なため、安価で使いやすいからです。グラフィックプログラミングからGPGPUを使用して他のプログラムを高速化することは、かなり簡単です。他のオプションとは異なり、より高速でより高速な製品が利用できるため、ハードウェアのアップグレードも簡単です。


基本的に、選択肢は次のとおりです。

  • 分岐およびシーケンシャルコードに最適な汎用CPU
  • 通常の「ゲーミング」GPU
  • 計算指向のGPU、例えばNvidiaのテスラのRadeon本能 これらは、多くの場合では、すべてのグラフィックス出力をサポートしていませんので、GPUは誤った名称のビットです。ただし、通常のGPUと同様のGPUコアを使用しており、OpenCL / CUDA / APPコードは多かれ少なかれ直接移植可能です。
  • FPGAは、非常に異なるプログラミングモデルを使用し、非常に高価になる傾向があります。これは、参入に対する大きな障壁が存在する場所です。また、ワークロードにもよりますが、GPUよりも必ずしも高速ではありません。
  • ASIC、カスタム設計された回路(ハードウェア)。これは非常に高価であり、極端な規模(少なくとも何千ものユニットを話している)でのみ価値があり、プログラムを変更する必要がないと確信しています。現実の世界ではめったに実現不可能です。また、テクノロジーが進歩するたびに、全体を再設計およびテストする必要があります。CPUやGPUのように新しいプロセッサに交換することはできません。

16
ASICは、コンピューティングが文字通り自分自身で支払うときにも意味があります(暗号マイニング)
ラチェットフリーク

4
実際、FPGAはGPUよりもしばしば劣っています。問題は、FPGAの柔軟性が非常に高いことです。多くのさまざまな操作を実装できます。ただし、計算は一般に数学の形式であり、実際、バルクは加算と乗算の2つの操作にすぎません(減算と除算は上記の変形です)。GPUは、これら2つの操作が非常に優れており、FPGAよりもはるかに優れています。
MSalters

19
FPGAについて詳しく説明する必要があります。「ステップアップ」があるという考えは少し誤解を招く可能性があります。彼らはより一歩一歩です。
ヤック

6
最後の例として、Googleには機械学習用の独自の「Tensor処理ユニット」があります。それらがどの程度カスタマイズされているかは不明ですが、ASICとして記述されています。
mbrig

4
@MSalters GPUを介したFPGAの主なセールスポイントの1つはパフォーマンス/ワットです。数学に関しては、FPGAは固定小数点および整数演算でGPUに匹敵し、浮動小数点演算では遅れています。
ウィルクロフト

32

私の好きな例え:

  • CPU:Polymathの天才。一度に1つまたは2つのことを実行できますが、それらは非常に複雑になる可能性があります。
  • GPU:スキルの低い労働者のトン。それらのそれぞれは非常に大きな問題を行うことはできませんが、大量に多くのことを行うことができます。あなたの質問に、はい、グラフィックスのオーバーヘッドがいくらかありますが、私はそれが限界だと思います。
  • ASIC / FPGA:会社。あなたは、何トンもの低スキルの労働者または数人の天才、または低スキルの労働者と天才の組み合わせを雇うことができます。

使用するものは、コスト感度、タスクを並列化できる程度、およびその他の要因に依存します。市場の状況により、GPUはほとんどの高度な並列アプリケーションに最適な選択肢であり、CPUは電力と単位コストが主な関心事である場合に最適な選択肢です。

あなたの質問に直接:なぜASIC / FPGA上のGPUですか?一般的に費用がかかります。今日のGPUの価格が高騰している場合でも、ニーズに合わせてASICを設計するよりもGPUを使用する方が(一般的に)安価です。@ user912264が指摘しているように、ASIC / FPGAに役立つ特定のタスクがあります。独自のタスクがあり、スケールの恩恵を受ける場合は、ASIC / FPGAを設計する価値があります。実際、この目的専用にFPGAデザインを設計/購入/ライセンスすることができます。これは、たとえば高解像度テレビのピクセルに電力を供給するために行われます。


7
コメントはとにかく答えるためのものではなく、これは私にとって合理的な答えのようです。
ライムントクレーマー

1
@BobtheMogicMooseしかし、ゲノム解析用に設計されたカスタムFPGAを使用する方が、GPUに同等のコードを持つよりも桁違いに速いかもしれません。科学者に座って結果を待ってもらうと、より高速なFPGAが非常に迅速に対価を支払います。
doneal24

FPGAは一般的な開発者にとってもはるかにアクセスしやすくなっています。たとえば、MicrosoftはFPGA(Project BrainWave)を使用しクラウドAIソリューションを提供しています。AWSにもいくつかの製品があります。誰でも自分でビルドすることなく、特殊なタスクのためにいくつかのカスタムFPGAを借りることができます。これは、数年前でも多くのユースケースでは実現できません。
-brichins

ええ、私はarduino raspberry-piに匹敵するFPGAホビーキットさえあると思います。FPGAのプログラミングは、開発されたアーキテクチャよりもはるかにコストがかかると思います。
-BobtheMagicMoose

10

あなたの類推は悪いです。同様に、大規模な芝生の手入れビジネスのために機器を購入する場合、利用可能な良い芝刈り機があると想定します。これはコンピューティングの世界には当てはまりません。GPUはすぐに利用できる最高のツールです。

特殊なチップのR&Dコストとパフォーマンスの向上は、製造を正当化するには高すぎる可能性があります。

そうは言っても、NvidiaがいくつかのGPUを汎用コンピューティング専用に出していることは知っています-ビデオ出力はありませんでした-ケージが既に取り外されたボックスファンを売るようなものです。


9

もちろん、エネルギー効率または計算速度のいずれかのために、特殊なチップを使用できます。ビットコインマイニングの歴史を教えてください:

  • Bitcoinは新しいもので、ギークはCPUを使って採掘しています。
  • ビットコインはいくぶん新しく、GPUを使用するスマートオタクです。
  • ビットコインは現在(ちょっと)有名で、人々はFPGAを購入しています。
  • ビットコインは現在有名です(2013年)。初心者でもASIC(「特定用途向け集積回路」)を購入して効率的にマイニングします。
  • (定期的に)報酬の低下をブロックし、古いASICでさえもう利益を上げません。

いいえ、特化した「巨大な電卓」の代わりにGPUを使用する理由はありません。経済的インセンティブが大きいほど、ハードウェアの専門性が高まります。ただし、一度に数千個を生産していない場合は、設計が非常に難しく、製造が不可能です。それは、チップを設計するために実行可能ではない場合は、のいずれかを購入することができ、それらの最寄りのウォルマートからを。

TL; DRもちろん、より特殊なチップを使用できます。


1
「もちろん、より特殊なチップを使用することもできます」-しかし、ビットコイン(SHA-256)に特化したチップがあり、次にlitecoin(scrypt)に特化したチップがあります。他の問題に対する高性能コンピューティングハードウェアは存在しません。(つまり、現在のハイエンドGPUよりもパフォーマンスが高い)
Agent_L

8

あなたがあなたの類推で説明するのは、まさに起こったことです。ファンをつかんでブレードを刈り取り機として使用しようとすると、研究グループは「ねえ、ここにはかなり素晴らしいマルチコア処理ユニットがあります。汎用計算に使用してみてください! 「。

結果は良好で、ボールは転がり始めました。GPUは、最も要求の厳しい状況を支援するために、グラフィック専用デバイスから汎用計算をサポートするようになりました。

とにかく、コンピューターに期待される最も計算が要求される操作はグラフィックスだからです。ほんの数年前と比べて、今日のゲームの見栄えの驚くべき進歩を見るのに十分です。これは、GPUの開発に多大な労力とお金が費やされたことを意味します。また、GPUを使用して、特定のクラスの汎用計算(極端に並列)を高速化することもできます。

結論として、あなたが提供する最初の説明は最も正確です:

  • GPUがすでに優れたオプションである場合、そのような代替案は開発するには高すぎます。

すでにそこにあるGPUは、誰でも簡単に利用でき、動作しました。


5
もちろん、「私たち」が誰なのかによって、グラフィックスである「最も計算量の多い操作」について意見を異にする必要があります。一般ユーザーの場合、はい、しかし科学と工学のコミュニティでは、グラフィックスよりも多くの要求があります。結局のところ、単一のミッドレンジPCとGPUのコンボを使用して、許容されるグラフィックス(ゲームの場合)を実行できます。重大な問題は、多くの場合、数百または数千のそのようなユニットを組み合わせて、ペタフロップスの範囲のパフォーマンスを実現します。そして、問題は依然として数日または数週間の計算時間を要する場合があります。
jamesqf

私のコンピューターで最も計算が必要な操作は、技術的にはグラフィックですが、構造からの計算は、ほとんどの人(またはGPUデザイナー)が「グラフィック」という言葉を聞いたときに考えるものではありません。
マーク

5

具体的には、GPUは「タスクの並列性」の意味で「コア」ではありません。ほとんどの場合、それは「データ並列処理」の形式です。SIMDは「単一命令複数データ」です。これが意味することは、あなたがこれをしないということです。

for parallel i in range(0,1024): c[i] = a[i] * b[i]

これは、すべて異なるレートで進行する個別のタスクを実行する1024個の命令ポインターがあることを意味します。SIMD、または「ベクターコンピューティング」は、次のように、アレイ全体で一度に命令を実行します。

c = a * b

「ループ」は、命令の外側ではなく、「*」および「=」命令の中にあります。上記は、すべての1024要素すべてに対して、同じすべての要素の同じ命令ポインタでこれを行います。これは、a、b、cの3つの巨大なレジスターを持っているようなものです。SIMDコードは非常に制約されており、過度に「分岐」していない問題に対してのみ有効に機能します。

現実的なケースでは、これらのSIMD値は1024アイテムほど大きくありません。一緒にバインドされたint32のギャングである変数を想像してください。乗算と割り当てを実際の機械命令として考えることができます。

int32_x64 c; int32_x64 b; int32_x64 a; c = b * a;

本物のGPUはSIMDよりも複雑ですが、それが本質です。だからこそ、ランダムなCPUアルゴリズムをGPUに投げて、高速化を期待することはできません。アルゴリズムを分岐させる命令が多いほど、GPUには適切ではなくなります。


5

ここでの他の答えはかなり良いです。私も2セントを投入します。

CPUが非常に普及している理由の1つは、CPUが柔軟であることです。無限のさまざまなタスクのためにそれらを再プログラムできます。最近では、製品を製造する企業にとっては、同じタスクを実行するためのカスタム回路を開発するよりも、小さなCPUやマイクロコントローラーを何かに貼り付けてその機能をプログラムする方が安価で高速です。

他のデバイスと同じデバイスを使用することにより、その同じデバイス(または同様のデバイス)を使用している問題に対する既知の解決策を活用できます。また、プラットフォームが成熟するにつれて、ソリューションは進化し​​、非常に成熟し最適化されます。これらのデバイスでコーディングする人々も専門知識を獲得し、彼らの技術を非常に上手になります。

GPUに代わる新しいデバイスタイプをゼロから作成する場合、最初の採用者でさえ実際に使用方法を理解するのに何年もかかるでしょう。ASICをCPUに接続する場合、そのデバイスへのオフロード計算をどのように最適化しますか?

コンピューターアーキテクチャコミュニティは、このアイデアで数年にわたって賑わってきました(明らかに以前は人気がありましたが、最近ルネッサンスが見られました)。これらの「アクセラレータ」(その用語)には、さまざまな程度の再プログラム可能性があります。問題は、あなたのアクセラレーターが取り組むことができる問題の範囲をどのくらい狭く定義していますか?私は、オペアンプを備えたアナログ回路を使用して微分方程式を計算するアクセラレータの作成に取り組んでいる人たちと話をしました。素晴らしいアイデアですが、非常に狭い範囲です。

作業用の加速器を手に入れた後、経済的な勢力があなたの運命を決定します。市場のinertia性は信じられないほどの力です。何か素晴らしいアイデアがあったとしても、この新しいデバイスを使用するために作業ソリューションをリファクタリングすることは経済的に実現可能ですか?多分そうでないかもしれません。

GPUは実際、特定のタイプの問題に対して恐ろしいため、多くの人々/企業が他のタイプのデバイスで作業しています。しかし、GPUはすでに非常に定着しているので、そのデバイスは経済的に実行可能になりますか?私たちが見ると思います。

編集:私はバスから降りているので、少し答えを広げます。

注意深いケーススタディは、Intel Larrabeeプロジェクトです。ソフトウェアでグラフィックスを実行できる並列処理デバイスとして始まりました。特殊なグラフィックハードウェアはありませんでした。私はプロジェクトで働いていた誰かと話をしましたが、彼らが失敗してキャンセルされたと言った主な理由は(恐ろしい内部政治を除いて)、彼らはコンパイラーにそれのための良いコードを生成させることができなかったからです。もちろん、動作するコードを生成しましたが、製品のポイント全体が最大のパフォーマンスである場合は、かなり最適なコードを生成するコンパイラを使用する方が良いでしょう。これは、新しいデバイスのハードウェアとソフトウェアの両方の深い専門知識が大きな問題であるという以前のコメントに耳を傾けます。

ララビーデザインの一部の要素は、Xeon Phi / Intel MICに組み込まれました。この製品は実際に市場に出ました。科学およびその他のHPCタイプの計算の並列化に完全に焦点を合わせていました。現在は商業的な失敗のようです。Intelで話をした別の人は、GPUとは価格競争力も価格競争力もないということを暗示していました。

FPGAのロジック合成をコンパイラに統合して、FPGAアクセラレータのコードを自動的に生成できるようにしました。彼らはうまく機能しません。

アクセラレータ、またはGPUのその他の代替品にとって本当に肥沃な土壌のように見える場所の1つは、クラウドです。Google、Amazon、Microsoftのようなこれらの大企業に存在する規模の経済は、代替の計算スキームに投資する価値があります。誰かがすでにGoogleのテンソル処理ユニットについて言及しています。Microsoftは、BingおよびAzureインフラストラクチャ全体にFPGAなどを備えています。Amazonと同じ話。規模が時間、お金、エンジニアの涙の投資を相殺できるなら、それは絶対に理にかなっています。

要約すると、専門化は他の多くのこと(経済学、プラットフォームの成熟度、エンジニアリングの専門知識など)と対立します。スペシャライゼーションはパフォーマンスを大幅に改善できますが、デバイスを適用できる範囲が狭くなります。私の答えは多くのネガに焦点を当てていましたが、専門化にも多くの利点があります。それは絶対に追求され調査されるべきであり、私が述べたように、多くのグループが非常に積極的にそれを追求しています。

申し訳ありませんが、もう一度編集してください。最初の前提は間違っていると思います。私は、それが計算能力の余分なソースを探す場合ではなく、機会を認識する人々の場合ではなかったと信じています。グラフィックスプログラミングは非常に線形代数が多く、GPUは行列乗算、ベクトル演算などの一般的な演算を効率的に実行するように設計されています。科学計算にも非常に一般的な演算です。

GPUへの関心は、Intel / HP EPICプロジェクトによって与えられた約束が非常に誇張されていること(90年代後半から2000年代初期)を人々が認識するようになった直後に始まりました。コンパイラの並列化に対する一般的な解決策はありませんでした。「どこで処理能力を増やすか、GPUを試すことができる」と言うのではなく、「並列計算が得意なものがあります。これをより一般的にプログラム可能にすることができます」と思います。関係者の多くは、CrayまたはTeraマシン(Tera MTAには128個のハードウェアスレッドがあります)で実行できる並列Fortranコードをすでに持っていた科学コンピューティングコミュニティにいました。おそらく両方向からの動きがありましたが、私はこの方向からのGPGPUの起源についての言及を聞いただけです。


「アクセラレータ」とは、カスタムメイドのハードウェアまたは低電力コンピューティングノードのスーパークラスターを指しますか?いくつかのサンプルアクセラレータハードウェアへの参照を提供して、詳しく説明してください。
manav mn

申し訳ありませんが、文脈から明らかにしたと思います。アクセラレータは、コプロセッサまたはオフロードカードの総称です。浮動小数点はもともとメインCPUではなくコプロセッサーにあり、アクセラレーターと見なされていました。GPU、DSP、Xeon Phi、FPGA(PCIeカードなどの場合)、アナログ微分方程式について述べたように、仮想化を支援するデバイスがあり、ニューラルネットワークアクセラレータの現在の研究があります。これらはすべてアクセラレータの例です。
NerdPirate

4

ここに画像の説明を入力してください

ASIC(カスタムシリコン)は非常に高速ですが、設計と製造に非常に費用がかかります。ASICは以前は目的に特化しており、CPUはコンピューターを「プログラム」できるようにする1つのアプローチであったため、ソフトウェアで計算タスクを実行できました。初期のCPUにより、人々はフィールドでチップをプログラミングすることにより、莫大なコストなしでASICのパワーを活用することができました。このアプローチは非常に成功したため、現在使用している(非常に)高速なコンピューターを生み出しました。

なぜGPUなのか?

90年代半ばに、3DFXは3Dレンダリングタスクが非常に特殊であるため、カスタムASICの方がCPUよりもはるかに優れたパフォーマンスを発揮することに気付きました。彼らは、3DレンダリングタスクをCPUからこのコプロセッサーにオフロードするコンピューターコプロセッサーを作成し、「GPU」と名付けました。競争と市場の需要により、この分野のイノベーションは、GPUがCPUよりもはるかに高速に計算を実行するようになりました。GPUメーカーは、需要とより多くのお金を稼ぐ方法を見て、開発者がハードウェアを使用できるようにプラットフォームを変更し始めました。しかし、ハードウェアハードウェアは非常に目的に特化していたため、GPUに要求できることには制限があります。ここでなぜ詳細を説明しません。

では、なぜ特定用途向けのシリコンがもっとなかったのでしょうか?なぜグラフィックスだけなのか?

2つの理由:1)価格。GPUには良い市場があり、それを正当化することはできましたが、当時であっても大きなリスクでした。3DFXが利益を上げることができるかどうかは、誰も本当に知りませんでした(結局、彼らは実際にはできず、機能しなくなりました)。現在でも、GPU市場の規模では、競合他社は実際に3社しかありません。2)CPUは、命令拡張機能を備えた「カスタムシリコン」のニーズを実際に満たしていました。MMXに戻って考えてみてください-3DFXが高速化するにつれて、これは実際にはCPUのグラフィックスを加速するIntelの試みでした。それ以来、x86命令セットは、これらのカスタム拡張機能をすべて備えた非常に大規模なものに成長しました。これらの拡張機能の多くは(MMXのように)当時は理にかなっていましたが、現在はプロセッサのほとんどが無駄になっています。ただし、既存のソフトウェアが破損するため、削除できません。それ' s実際にはARMのセールスポイントの1つ-ARMは必要最低限​​の命令セットです。命令拡張機能はそれほど多くありませんが、これによりシリコンのサイズが小さくなり、製造コストが安くなります。

カスタムシリコンのコストを削減できれば、多くのお金を稼ぐことができるように思えます。誰もこれに取り組んでいないのですか?

FPGAと呼ばれる技術があります-フィールドプログラマブルゲートアレイは、コンピューティングの初期から存在しています。それは本質的に、ソフトウェアを使用して「現場」で設計できるマイクロチップです。それは非常にクールな技術ですが、チップをプログラム可能にするために必要なすべての構造は、大量のシリコンを占有し、チップをはるかに低いクロック速度で実行します。チップ上に十分なシリコンがあり、タスクを効果的に並列化できる場合、FPGAはCPUよりも高速です。しかし、彼らはあなたがそれらに置くことができるロジックの量に制限されています。最も高価なFPGAを除くすべては、初期のビットコインマイニングではGPUよりも低速でしたが、ASICの対応するものはGPUマイニングの収益性を事実上終了しました。他の暗号通貨は、並列化できない特定のアルゴリズムを使用しているため、FPGAとASIC

FPGAの主なリミッターはシリコンサイズです。どのくらいのロジックをチップに収めることができますか?2つ目はクロック速度です。これは、FPGAのホットスポット、リーク、クロストークなどの最適化が難しいためです。新しい製造方法はこれらの問題を最小限に抑え、インテルはアルテラと協力して、エンジニアがサーバーのコプロセッサとして「カスタムシリコン」の利点を活用できるFPGAを提供しています。だから、ある意味で来ています。

FPGAがCPUやGPUに取って代わりますか?

おそらくいつでもすぐではありません。最新のCPUとGPUは大規模で、シリコンは熱性能と電気性能に合わせて高度に調整されています。カスタムASICと同じ方法でFPGAを最適化することはできません。いくつかの画期的なテクノロジーを除けば、CPUはおそらくFPGAおよびGPUコプロセッサーを備えたコンピューターのコアのままです。


1
これらの拡張機能の多くは(MMXのように)当時は理にかなっていましたが、現在はプロセッサのほとんどが無駄になっています。 3Dレンダリングは、これまで SIMDための唯一のユースケースから。MMXの「重み」のほとんどは実行単位であり、SSE2、AVX2、AVX512などのより広いベクトルで共有できます。これらは、CPUでの高品質のビデオエンコーディングや、高性能コンピューティングを含む他の多くのタスクに頻繁に使用されます。しかし、memchr、strlen、その他多くのライブラリの実装も。例えば、一度に複数の要素の配列をフィルタリングする
Peter Cordes

3

実際、高速コンピューティング専用のボードがあります。たとえば、ザイリンクスにはFPGAを使用する178 PCI-eボードのリストがあり、これらのボードの約3分の1は1つまたは複数の強力なFPGAチップと多くのボードDDRメモリ。高性能コンピューティングタスクを目的とした高性能DSPボード()もあります。

GPUボードの人気は、より幅広い顧客グループを目指していることに起因すると思います。Nvidia CUDAで遊ぶために特別なハードウェアに投資する必要はありません。そのため、特別なハードウェアを必要とするタスクを行うまでに、Nvidia GPUはそれらのプログラミング方法を既に知っているという点で競争力があります。


2

あなたの質問に対する答えは、高性能計算の定義方法に依存すると思います。

一般に、高性能計算は計算時間に関連しています。その場合、高性能コンピューティングクラスターのリンクを共有したいと思います

リンクはGPUの使用の理由で指定されます。グリッドコンピューティングの計算を行うためのグラフィックカード(またはGPU)の使用は、CPUの使用よりもはるかに経済的ですが、精度は劣ります。


2
ハイエンドGPGPUはdouble、単精度の32ビットだけでなく、64ビットの精度でも優れたスループットを備えていますfloat。(一部の通常のGPUは、ハードウェアでをスキップしますdouble)。主要ベンダーはすべて、IEEE FP数学をサポートしています(非正規化されている場合でも)。したがって、精度とパフォーマンスを犠牲にする必要がない限り、精度の損失はありません。たとえば、一部のハードウェアでスループットがさらに向上する16ビット半精度FP(およびもちろんメモリ帯域幅の半分)です。CPUの高性能コードは、多くの場合32ビットfloatを使用して、SIMDベクトルあたり2倍の要素と半分のメモリ帯域幅を取得します。
ピーター

1
@PeterCordes 8ビットの浮動小数点にまで低下する近似計算の作業を見てきましたが、多くのGPUがハードウェアでそれをサポートしているとは思いません。
JAB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.