GPUの代わりにCPUをまだ使用しているのはなぜですか?


373

最近では、GPUで多くの計算が行われているように思えます。明らかにグラフィックはそこで行われますが、CUDAなどを使用して、AI、ハッシュアルゴリズム(ビットコインを考える)などもGPUで行われます。CPUを取り除き、GPUを単独で使用できないのはなぜですか?GPUがCPUよりもずっと速くなっているのはなぜですか?


3
どの回答に正しい情報が含まれているかを知るにはどうすればよいですか?他の賛成/反対票が答えるまで待つべきですか?私は答えを受け入れるのが速すぎたと思う:O
ell

14
「誤報」を含まない最近の回答がいくつかあります。彼らは、素晴らしいデザインのStackExchangeの効率的な市場メカニズムにより、票を集めて徐々にトップに上がっています;-)答えを受け入れるまで少し待つことをお勧めします。あなたは非常に慎重にそれをしているように見えます。ところで、これは良い質問です。当たり前のように思えるかもしれませんが、まったくそうではありません。お問い合わせいただきありがとうございます!
エリーケッセルマン

124
「ボーイング747の方が高速で燃費が良いのに、どうして車を運転するのか」と尋ねるようなものでしょうか。
バルテック

7
いいえ、RISCとCISCではないためです。これは他のコンピューターサイエンスの基礎の1つで、少し変装しています。それはだ「なぜ我々はI / Oプロセッサ上に、中央プロセッサから作業をオフロードしますか?」
JdeBP

5
@vartec:バスとタクシーの間には、少し良い類似性があると思います。同じ場所から同じ場所に行きたい人が40人いる場合、バスの方がはるかに効率的です。目的の出発地と目的地が広く散らばっている40人の人がいる場合、1台のタクシーでもバスと同じくらい良いかもしれません。バスのコストを考えると、複数のタクシーがあります。
supercat

回答:


388

TL; DRの答え: GPUはCPUよりもはるかに多くのプロセッサコアを備えていますが、各GPUコアの実行速度はCPUコアよりも大幅に遅く、最新のオペレーティングシステムに必要な機能がないため、日常の処理のほとんどを実行するのに適していませんコンピューティング。ビデオ処理や物理シミュレーションなどの計算集中型の操作に最も適しています。


GPGPUはまだ比較的新しい概念です。GPUは当初、グラフィックスのレンダリングにのみ使用されていました。テクノロジーが進歩するにつれて、CPUに比べてGPUの多数のコアがGPUの計算機能を開発することで活用され、データの種類に関係なく、データの多くの並列ストリームを同時に処理できるようになりました。GPUには数百または数千のストリームプロセッサを搭載できますが、それぞれはCPUコアよりも低速で機能が少なくなります(チューリングが完了し、CPUが実行できるプログラムを実行するようにプログラムできる場合でも)。GPUにない機能には、最新のオペレーティングシステムを実装するために必要な割り込みと仮想メモリが含まれます。

つまり、CPUとGPUはアーキテクチャが大きく異なるため、さまざまなタスクにより適しています。GPUは、多くのストリームで大量のデータを処理し、比較的単純な操作を実行できますが、単一または少数のデータストリームでの重いまたは複雑な処理には不向きです。CPUは、コアごと(1秒あたりの命令数)ではるかに高速であり、1つまたは少数のデータストリームで複雑な操作をより簡単に実行できますが、多くのストリームを同時に効率的に処理することはできません。

その結果、GPUは、ワードプロセッサなどの多くの一般的なコンシューマアプリケーションを含め、並列化のメリットがあまりない、または並列化できないタスクの処理には適していません。さらに、GPUは根本的に異なるアーキテクチャを使用します。GPUが機能するためには、GPU専用のアプリケーションをプログラムする必要があり、GPUをプログラムするにはかなり異なる手法が必要です。これらのさまざまな手法には、新しいプログラミング言語、既存の言語の変更、および多くのストリームプロセッサによって実行される並列操作として計算を表現するのにより適した新しいプログラミングパラダイムが含まれます。GPUのプログラミングに必要な技術の詳細については、ストリーム処理並列計算に関するウィキペディアの記事を参照してください。

最新のGPUは、ベクトル演算と浮動小数点演算を実行でき、最新のカードは倍精度浮動小数点数を操作できます。CUDAやOpenCLなどのフレームワークを使用すると、プログラムをGPU向けに作成できます。GPUの性質により、一連の専用GPUコンピューティングカードが小規模の代わりに使用できる科学計算など、高度に並列化可能な操作に最適です。NVIDIA Tesla Personal Supercomputersのような計算クラスタ。Folding @ homeに精通した最新のGPUを使用する消費者は、GPUクライアントに貢献するためにそれらを使用できます。GPUクライアントは、非常に高速でタンパク質の折りたたみシミュレーションを実行し、プロジェクトにより多くの作業を提供できます(FAQまず、特にGPUに関連するもの)。GPUは、PhysXを使用してビデオゲームの物理シミュレーションを改善し、ビデオのエンコードとデコードを高速化し、その他の計算集約的なタスクを実行できます。GPUが実行に最も適しているのは、これらのタイプのタスクです。

AMDは、従来のx86 CPUコアとGPUを組み合わせたAccelerated Processing Unit(APU)と呼ばれるプロセッサ設計の先駆者です。このアプローチにより、マザーボードに統合されたグラフィックスソリューションよりもはるかに優れたグラフィックパフォーマンスが可能になります(ただし、より高価なディスクリートGPUには匹敵しません)。最新のIntelプロセッサもオンチップ統合グラフィックスを提供しますが、現在、競争力のある統合GPUパフォーマンスは、Intel Iris Pro Graphicsを備えたいくつかのチップに限定されています。技術が進歩し続けるにつれて、これらのかつて分離された部分の収束の度合いが増加することがわかります。AMDの構想CPUとGPUが1つであり、同じタスクでシームレスに連携できる未来

それにもかかわらず、PCオペレーティングシステムおよびアプリケーションによって実行される多くのタスクはCPUにより適しているため、GPUを使用してプログラムを高速化するには多くの作業が必要です。既存のソフトウェアの多くはx86アーキテクチャを使用しており、GPUは異なるプログラミングテクニックを必要とし、オペレーティングシステムに必要ないくつかの重要な機能を欠いているため、日常のコンピューティングでのCPUからGPUへの一般的な移行は非常に困難です。


39
この答えのように、主な理由は、このような並列アーキテクチャに対処するための優れたメインストリームプログラミング言語がないためだと思います。私たちは何十年もマルチスレッドプログラミングを進めるために苦労してきましたが、人々はまだマルチスレッド「悪」と呼んでいます。それにもかかわらず、マルチコアCPUとGPUは現実のものであり、これに対処するには新しいプログラミングパラダイムを考え出す必要があります。
ソレン

Intel は、本質的に大量のx86コアを搭載したチップであるLarabeeアーキテクチャに取り組んでいることに注意してください(あまりにも長い間)。
クリスS

ハードウェアの理由を議論し、APUとこれがどのように変化するかを議論するための素晴らしい答えです。しかし、@ Sorenはソフトウェア側で非常に良いポイントを与えます。実際には、ハードウェアの問題、ソフトウェアの問題、およびCPUが機能するという事実の組み合わせであり、何かが機能することがわかっている場合、それを人々に置き換えるのは困難です。
ニッチデル

3
「このような並列アーキテクチャに対処するための優れたメインストリームプログラミング言語はありません。」-Haskell、OCaml、Scheme、F#、Erlang、およびその他のほとんどの関数型プログラミング言語は、マルチスレッドを非常にうまく処理します。私が言及したものはすべて主流です。
BlueRaja-ダニーPflughoeft

1
@BlueRaja-これらの言語を認識しているため、メインストリームの定義は私の言語と異なる必要があります:
Soren

252

GPUがCPUよりもずっと速くなっているのはなぜですか?

GPUはCPUよりも高速ではありません。CPUとGPUは2つの異なる目標と異なるトレードオフで設計されているため、パフォーマンス特性が異なります。特定のタスクはCPUで高速ですが、他のタスクはGPUで高速に計算されます。CPUは小さなデータセットに対する複雑な操作に優れており、GPUは大きなデータセットに対する簡単な操作に優れています。

GPUは、単一の命令が大きなデータブロック(SIMD /単一命令複数データ)で機能するように設計された専用CPUであり、それらはすべて同じ操作を適用します。データのブロックで作業することは、命令をデコードする際のオーバーヘッドが大幅に削減されるため、一度に1つのセルで作業するよりも確かに効率的ですが、大きなブロックで作業することは、より多くの並列作業単位があるため、より多くのトランジスタを使用することを意味します単一のGPU命令を実装します(物理的なサイズの制約を引き起こし、より多くのエネルギーを使用し、より多くの熱を生成します)。

CPUは、単一のデータに対して単一の命令を可能な限り迅速に実行するように設計されています。単一のデータで作業するだけでよいため、単一の命令を実装するために必要なトランジスタの数ははるかに少なく、CPUはより大きな命令セット、より複雑なALU、より良い分岐予測、より良い仮想化を持つことができますアーキテクチャ、およびより洗練されたキャッシュ/パイプラインスキーム。命令サイクルも高速です。

我々はまだCPUを使用している理由はありません OSが行う必要があるタスクの種類は、すなわち意思決定を行うためのx86のCPUアーキテクチャの王であり、Windowsは、x86用に書かれているので、我々はまだCPUを使用している理由は、 CPUアーキテクチャでより効率的に実行されます。OSは、数百の異なる種類のデータを見て、すべてが互いに依存するさまざまな決定を行う必要があります。この種のジョブは、少なくともSIMDアーキテクチャには容易に並列化できません。

将来、CPUがデータのブロック(SSEなど)を処理する機能を獲得するにつれて、CPUとGPUアーキテクチャ間の収束が見られるようになります。また、製造技術が向上し、チップが小さくなるにつれて、GPUはより複雑な命令を実装できるようになります。


23
これはおそらくここでの最良の答えです。2つのパラダイムの基本的な違いを理解することが重要です。GPUがCPUを追い抜くには、今日のワークロードを考慮すると、基本的にGPUはCPUに変わる必要があります。したがって、質問が答えです。
surfasb

2
これがベストアンサーであるため、+ 1。これと受け入れられた答えはどちらも正しいですが、これはより明確に説明しています。

このスレッドの誰もGPUにデータを送信するオーバーヘッドに言及していないことに驚いています-PCI-Expressバス上の帯域幅が制限されているため、GPUでの並列処理がCPUで実行されるよりも大幅に遅くなります。データの送信、コンテキストの設定、結果の読み取りのオーバーヘッドにより、FFTのサイズを変えるとGPUとCPUのパフォーマンスが大幅に異なる単純なケースが1つあります:stackoverflow.com/a/8687732/303612 CPUでより小さな操作をキャッシュ内で実行でき、メモリ帯域幅は現在のPCI-Eアーキテクチャよりもはるかに優れています
アンドリューバーネットトンプソン博士

1
@ Dr.AndrewBurnett-Thompson:それは質問とは無関係だからです。現在、GPUは補助処理ユニットと見なされているため、GPUとの間でデータを移動する必要があり、費用がかかります。GPUをファーストクラスの処理ユニットとして扱う場合、メインメモリとGPUメモリの間でデータをマーシャリングする必要はありません。
ライライアン

1
楽観的ではなく、帯域幅のオーバーヘッドがゼロではありません。GPUアーキテクチャを備えたプロセッサがショー全体を実行する場合、移動する必要があるものはありません。GPUメモリメインメモリです。転送がないため、そもそも転送のオーバーヘッドはありません。ちなみにこれは仮説ではありません。AMDのAPUは、CPUとGPU間のゼロコピーを可能にする統合メインメモリを備えたHSA(ヘテロジニアスシステムアーキテクチャ)を使用します。
ライライアン

75

GPUの不足:

  1. 仮想メモリ(!!!)
  2. メモリ以外のデバイス(キーボード、プリンター、二次記憶装置など)のアドレス指定手段
  3. 割り込み

これらは、最新のオペレーティングシステムのようなものを実装できるようにするために必要です。

また、(単精度演算性能と比較した場合)倍精度演算では(比較的)遅く、はるかに大きくなります(シリコンのサイズに関して)。古いGPUアーキテクチャは、ほとんどの汎用プログラミングに必要な(関数ポインタを介した)間接呼び出しをサポートしません。最後に、(他の回答が指摘しているように)並列化できないタスクの場合、GPUは同じワークロードを与えられたCPUと比較して損失します。

編集:この応答は2011年に書かれていることに注意してください-GPU技術は常に変化している分野です。これを読んでいるときに物事は非常に異なる可能性があります:P

* NVidiaのQuadroまたはTeslaライン(Fermi世代以降)、AMDのFireProライン(GCN世代以降)など、一部のGPUは倍精度演算で低速ではありません。しかし、これらはほとんどの消費者のマシンにはありません。


@Cicada:そのためのリファレンスはありますか?いずれにせよ、それが真実であっても、その場合、最近のハードウェアでさえうまく機能しません。(たとえば、CPUに比べてパフォーマンスの優位性があまり高くないことと、消費電力の短所はありません)
ビリーONeal

3
はい、あなたが言ったように(CUDA 4.0とsm_20で)Fermiデバイスは、間接ジャンプをサポートします(したがって、C ++仮想メソッド、継承など)。
怒っているレタス

300ドルの2年前のGPUからの544 GigaFLOPSは遅いですか?
ベンフォークト

2
@Ben:そのようなパフォーマンスは、データ並列アプリケーションでのみ得られます。一般的なシーケンシャル操作は、まったく異なる球技です。(それは、そのチップ上のすべての1600コアが並行して実行され、基本的に同じ命令を何度も繰り返し実行している場合のみです。実際のパフォーマンスではなく理論的なパフォーマンスです)
Billy ONeal

@Billy:しかし、それは特定のクラスのアルゴリズムの遅さであり、倍精度演算の遅さではありません(これはあなたが主張しているとおりです)。(また、CPUは通常、ベンチマークスループットも達成しません)
Ben Voigt

37

CPUは、非常に高速になるワーカーのようなものです。GPUは、高速で動作するクローンワーカーのグループのようなものですが、すべてが一斉にまったく同じことを行う必要があります(例外として、一部のクローンをアイドル状態にすることができます)。

仲間の開発者、1人の超高速の男、または実際にはそれほど高速ではないが、同じアクションを同時に実行する必要のある100の高速クローンのうち、どちらを選択しますか?

いくつかのアクションについては、クローンはかなり良いです。例えば、床を掃く-それぞれがその一部を掃引できます。

一部のアクションでは、クローンは悪臭を放ちます。たとえば、週次レポートを作成します。1つを除いてすべてのクローンがアイドル状態になります(そうでない場合は、同じレポートのコピーを100枚だけ取得します)。


4
私も...両方がありますか?
ケビンパンコ

22
@Kevin:はい。ただし、CPU GPUの両方を備えたコンピューターが必要です。そんなことがあったら!
ヨアヒムザウアー

3
非常によく似ています。これを覚えています。
メイヨー

23

GPUは一度に多くの小さなことを行うように設計されており、CPUは一度に1つのことを行うように設計されているためです。ハッシュのようにプロセスを超並列化できる場合、GPUは桁違いに高速になりますが、そうでない場合は高速化されません。

CPUは、GPUよりもはるかに高速にハッシュを計算できますが、CPUがそれを実行するのにかかる時間は、GPUが数百のハッシュの途中にある可能性があります。GPUは多くのことを同時に行うように設計されており、CPUは一度に1つのことを行うように設計されていますが、非常に高速です。

問題は、CPUとGPUは非常に異なる問題に対する非常に異なる解決策であり、多少の重複はありますが、一般にドメイン内のものはドメイン内にとどまるということです。CPUがGPUに置き換わっているのは、GPUがジョブを実行するように設計されておらず、CPUがそうであるという理由だけで、CPUがGPUよりもはるかに優れたジョブを実行しているためです。

ただし、CPUを廃棄してGPUのみを使用することが可能であった場合、名前を変更すると思いませんか?:)


最近のCPUのほとんどは、一度に2つ、4つ、または8つのことを行うように設計されていると思います。
ダニエルグ

@ danielcg25:最新のGPUのほとんどは、256、512、1024の処理を同時に実行するように設計されています(GTX 680には1536個の CUDAコアがあります)。個々のCPUコアは概念的には別個のエンティティですが、GPUには当てはまりません。
-Phoshi

@ danielcg25:私は承知していますが、基本的な(意図的ではあるが)解答の誤解を伴うコメントは、誰かが既にトピックを知らずに読んでいる場合、有害になる可能性があります。その意味での「尻であること」は、信号対雑音比を低下させるため、SEではあまり評価されません。
-Phoshi

私はいくつかの情報を提供していました。最近のほとんどのコンピューターは、実際には一度に2〜8個の処理が可能です。一部のプロセッサはそれ以上のことを実行できます。一度に何百ものことを行うGPUにはまだ近づいていません。
ダニエルック

@ danielcg25:しかし、これは異なる種類の処理です。これが問題です。各CPUコアは効果的に分離され、独自のデータチャンクと独自のプロセスで動作します。各CPUコアは、互いに異なる個別のタスクを実行しますが、直線的にスケールアップすることはありません-オクトコアは、クアッドコアの2倍の有用性はデュアルコアの2倍の有用性はありません 一方、GPUコアは異なるデータ間で同じタスクを実行し、線形にスケーリングします。マルチコアCPUが存在することは明らかですが、これは同じものではありません
フォシ

14

あなたが本当に求めている理由は、我々はCPUにアーキテクチャのようなGPUを使用していませんか?

GPUは、グラフィックカードの特殊なCPUです。汎用CPUは、並列実行や浮動小数点実行の標準に達していないため、GPU非グラフィックス計算を使用できます。

実際には、異なる(よりGPUに近い)CPUアーキテクチャを使用しています。たとえば、Niagaraプロセッサは非常にマルチタスクです。SPARC T3は512の並行スレッドを実行します。


なぜ下票なのか?
jkj

3
最後の行を推測します、それは単に偽だからです。実際、x86専用のメインストリームOSは1つしか考えられません。そして、その1つでもアルファおよびARMプロセッサに移植されており、現時点では市販されていません。
ハビエル

OK。主流のオペレーティングシステムのサポートが新しいアーキテクチャへの変更を妨げることについての私の意見であった最後のセクションを削除しました。答えの範囲にないかもしれません。
jkj

11

私はここで恐ろしく間違えられるかもしれません、そして、主題に関するほとんどまたは全く権威から話しています、しかし、ここに行きます:

  • 各GPU実行ユニット(「コア」)のアドレススペースは、CPUと比較して非常に限られていると思います。

  • GPU実行ユニットは分岐を効率的に処理できません。

  • GPU実行ユニットは、CPUと同じようにハードウェア割り込みをサポートしません。

私はGPU実行ユニットが意図された方法がPlaystation 3の「SPE」のようなものであると常に考えてきました。データ、すすぎ、繰り返します。メインの「CPE」ほどアドレス可能なメモリはありませんが、各「SPE」を特定のシーケンシャルタスク専用にするという考え方です。あるユニットの出力が別のユニットの入力に送られる場合があります。

実行ユニットは、データを「分析」してそのデータが何であるかに基づいて多くの決定を下そうとしている場合、うまく機能しません。

これらの「データのブロック」は、ゲームの状態テーブルの頂点のリスト、ディスクのMPEGデータなど、ストリームの一部にすることができます。

何かがこの「ストリーミング」モデルに適合しない場合、効率的に並列化できないタスクがあり、GPUは必ずしもその最適なソリューションではありません。良い例は、キーボード、ジョイスティック、ネットワーク入力などの「外部イベント」に基づいた処理です。そのモデルに合わないものはあまりありませんが、常にいくつかあります。


分岐予測の最適化に関する良い点-私はそれを考えたことはなかっただろうが、あなたは正しい。
ジミーブレックマッキー

6

これは、クロック速度や目的に関するものではありません。両方とも、すべてではないにしても、ほとんどのタスクを等しく完了することができます。ただし、一部のタスクは他のタスクよりも若干適しています。

たくさんのダムコアを持つのが良いのか、非常にスマートなコアの小さなグループを持つのが良いのかという非常に古い議論がありました。これは簡単に80年代に戻ります。

CPUの内部では、実行可能な多くの計算が可能です。よりスマートなコアは、同時に多くの異なる計算を実行できます(マルチコアのようなものですが、複雑ではありません。命令レベルの並列処理を参照してください)。スマートコアは同時に複数の計算(加算、減算、乗算、除算、メモリ操作)を実行できますが、一度に1つしか実行できません。このため、それらはダンバーコアよりも物理的に大きくなっています(したがって、はるかに高価です)。

ダムコアははるかに小さいため、単一のチップに追加することはできますが、同時に多くの計算を行うことはできません。多くのダムコアといくつかのスマートコアの間には、バランスが取れています。

マルチコアアーキテクチャは、計算を数百のコアに簡単に分割できるため、グラフィックスでうまく機能しますが、コードの品質と、他のコードが1つの計算結果に依存しているかどうかにも依存します。

これは、表示されるよりもはるかに複雑な質問です。詳細については、CPU設計に関する次の記事を参照してください。

最新のマイクロプロセッサ-90分ガイド

http://www.lighterra.com/papers/modernmicroprocessors/


貧しい文法と上記で使用されている一般的なサブパーライティングスタイルで言い訳してください、私はコーヒーを持っていません。かなり複雑な概念であり、含まれているリンクは、さらに理解したい場合に行くべき場所です。私の悪い説明ではない
シルバーファイア

1
あなたのためにそれを修正し、リンクも追加しました。
bwDraco

5

構文上のポイントを1つ説明します。CPUおよびGPUという用語は、アーキテクチャ名ではなく機能名です。

コンピュータがメインプロセッサとしてGPUを使用する場合、アーキテクチャや設計に関係なく、それは「中央処理装置」(CPU)になります。


4

アーキテクチャ空間には、あるプロセッサを「中央」プロセッサ、別のプロセッサを「グラフィック」プロセッサにする魔法のような境界線がないことに留意することが重要です。(まあ、一部のGPUは完全に一般的であるにはあまりにも障害があるかもしれませんが、それらは私たちがここで話しているものではありません。)

違いは、ボードへのインストール方法と、それらに与えられるタスクの1つです。もちろん、メインデータムーバーには汎用プロセッサ(または汎用プロセッサのセット)を使用し、それらを最大限に活用できるように、(グラフィックなどの)特別な並列化された深くパイプライン化されたユニットを使用します。

GPUを非常に高速にするために使用されてきた巧妙なトリックのほとんどは、より高速でより良いCPUを作成しようとする人々によって最初に開発されました。WordやExcel、およびNetscapeと人々がいないだけのために自分のコンピュータを使用する他の多くのものは、グラフィックスの専門チップによって提供される機能を十分に活用それでも実行しないことが判明でも遅いブランチ多くの原因(非常に高価なので、これらのアーキテクチャ上遅い)パイプラインがクリアされます。


1
パイプラインのオーバーヘッドは、上位の回答が欠落している基本的な詳細だと思います。
スティーブ

2

GPUが存在することの全体的なポイントは、CPUをその時に行っていた高価なグラフィックス計算から解放することでした。
それらを単一のプロセッサに再度結合することにより、すべてが開始された場所に戻ります。


はい、1歩先に、2歩後退します。
ランドルフリチャードソン

2

簡単な理由:ほとんどのアプリケーションはマルチスレッド化/ベクトル化されていません。

グラフィックカードは、少なくとも概念上、マルチスレッドに大きく依存しています。

単一のエンジンを搭載した車、ホイールごとに小さなエンジンを搭載した車を比較してください。後者の車では、すべてのエンジンを指揮する必要がありますが、これはシステムプログラミングの観点からは考慮されていません。

しかし、AMDフュージョンでは、処理能力の利用方法が変わります。ベクトル化、1つのスレッドの高速化のいずれかです。


2

まだCPUを使用している理由は、CPUとGPUの両方に独自の利点があるためです。「CPU対GPUの議論」から「CPU-GPUコラボレーティブコンピューティング」への移行に関する決定的かつ包括的な議論を提供するACM Computing Surveys 2015で承認された次の論文を参照してください。

CPU-GPU異種コンピューティング技術の調査


1

簡単に言えば、GPUは車のトレーラーと比較できます。大抵の人が本当に大きなものを買う場合を除いて、大抵の人にとってはトランクで十分です。その後、トレーラーが必要になります。GPUでも同じです。通常は、ほとんどのタスクを実行する通常のCPUで十分です。しかし、多くのスレッドで集中的な計算が必要な場合は、GPUが必要です。


1

gpusは優れたストリームプロセッサです。ストリーム処理は、数字の長い配列を順番に乗算するものと考えることができます。cpusにはストリーム処理機能(SIMD拡張機能と呼ばれます)もありますが、すべてのプログラミングロジックをストリーム処理として実装することはできません。また、コンパイラには、可能な場合はsimd命令を使用するbtyecodeを作成するオプションがあります。

すべてが数字の配列ではありません。写真とビデオは、おそらく音もあります(openclエンコーダーはあちこちにあります)。そのため、gpusは写真、ビデオ、その他類似のものを処理、エンコード、デコードできます。欠点の1つは、ゲームのすべてをgpusにオフロードできないことです。それは、gutterがグラフィックで忙しく、ゲームをプレイする際のシステムのボトルネックになるはずだからです。最適なソリューションは、PCのすべてのコンポーネントを完全に活用することです。そのため、たとえば、nvidiaのphysxエンジンは、デフォルトで、gpuが完全に使用されているときにcpuで計算を行います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.