GPUでの実行から恩恵を受けた汎用アルゴリズムの例?[閉まっている]


10

CPUよりもGPUで1桁速く実行できることが証明されている(非グラフィック関連の意味の)汎用アルゴリズムの例を探しています。これらの例を使用して、GPUに実装できる他のアルゴリズムについて創造的に考えます。


文字列連結、スリープソート
ジョブ

回答:


10

すぐにいくつかのことが頭に浮かびます:

専用のビットコインクライアントは、GPUを使用して暗号化ハッシュを実行するように作成されました。通常、GPUクライアントのパフォーマンスは、一般的な4コアシステムのSMP CPUクライアントよりも10倍以上優れています。ビットコインは、並列に計算できる多数の無関係な暗号化ハッシュの計算に依存しています。

ホームプロジェクト@折りたたみ申し出それらの分子動力学シミュレーションのためのGPUクライアント。これらの計算は、さまざまな環境や条件における原子間の個々の結合に対して実行されます。計算は比較的簡単ですが、ほんの数ナノ秒のアクティビティをシミュレートするには、各結合で何十億回も計算する必要があります。

GPUコンピューティングの支持者が使用する人気のある「おもちゃ」の例は、n体問題です。

これらの共通点は、それらが恥ずかしいほど並列していることです。つまり、問題は、大きなデータセットに対して何度も実行される少数の離散計算に分解できます。これは、GPUが得意とする種類の計算です。

以前の計算結果に依存する複雑な計算は、GPUにはあまり適していません。


複数のBOINCクライアントがGPUをサポートしています。SETI @ Homeは別のものです。
Brian Knoblauch、2011

確かに。そのようなプロジェクトはたくさんありますが、プロジェクトの包括的なリストにしたくありませんでした。プロジェクトの共通点を指摘するだけです。
greyfade

8

ビデオとオーディオのトランスコーディングはその良い例です。これは、あるファイル形式から別のファイル形式への変換です。たとえば、MPEG-2からH.26​​4です。

ビデオトランスコーディングは3Dグラフィックとは関係ありません。頂点およびピクセルシェーダーを使用してビデオをエンコードすることはできません。


OPは非グラフィック関連の例を求めています。
kiamlaluno

6
@kiamlalunoビデオのトランスコーディングはグラフィックスとは関係なく、オーディオのトランスコーディングはほとんどの場合関係ありません。これは、あるファイル形式から別のファイル形式への変換です。たとえば、MPEG-2からH.26​​4です。グラフィックスを表示する必要はありません。
Thomas Owens

2
@kiamlaluno:ビデオのトランスコーディングは3Dグラフィックとは関係ありません。頂点およびピクセルシェーダーを使用してビデオをエンコードすることはできません。
DeadMG

3

GPUを使用してビットコインをマイニングすることは非常に人気があります。

...ピアツーピアの電子キャッシュシステム。ビットコインの作成と転送は、オープンソースの暗号プロトコルに基づいており、中央当局によって管理されていません。各ビットコインは、小数点以下8桁に細分され、satoshisと呼ばれる1億単位を形成します。ビットコインは、仲介金融機関がなくても、コンピューターまたはスマートフォンを介して転送できます。

ビットコイン取引の処理は、ビットコインマイナーと呼ばれるサーバーによって保護されています。これらのサーバーはインターネットベースのネットワークを介して通信し、定期的に更新およびアーカイブされる元帳にそれらを追加することによってトランザクションを確認します。トランザクションのアーカイブに加えて、新しい元帳の更新ごとに、新しく作成されたビットコインがいくつか作成されます...

別のアプリケーションは、Black-Scholesなどのモデルを使用したリアルタイム取引の金融市場です。

...オプションを利用するための重要な要件は、オプションの公正価値を計算することです。この価格問題を効率的に解決する方法を見つけることは、30年以上にわたって活発な研究分野であり、現在の金融工学の焦点であり続けています。ファイナンス関連の問題に適用される計算が増えるにつれて、これらのアルゴリズムを最新のアーキテクチャに実装する効率的な方法を見つけることがますます重要になっています。

この章では、GPUを使用してオプションを効率的に価格設定する方法について説明します。評価は、ブラックショールズモデルとラティスモデルという2つの異なる価格モデルを使用して行います。これらのアプローチはどちらもGPUにうまく対応しており、GPUの方が最新のCPUよりもかなり高速です。どちらにもGPUへの直接的なマッピングがありますが、計算の相互依存性のため、ラティスモデルの実装には追加の作業が必要です...


2

ConwayのGame of Lifeは、優れた学術的な例です。

...ゲームオブライフの宇宙は、正方形のセルの無限の2次元直交グリッドであり、それぞれが生きているか死んでいるかの2つの可能な状態の1つにあります。すべてのセルは、隣接する8つのセル(水平、垂直、または斜めに隣接するセル)と相互作用します。時間の各ステップで、次の遷移が発生します。

  1. 人口が少ないために発生したかのように、生存細胞が2つ未満の生存細胞は死にます。
  2. 2つまたは3つの生きている隣人を持つ生きている細胞は、次の世代まで生き続けます。
  3. 過密状態のように、3つ以上のライブネイバーを持つライブセルはすべて死にます。
  4. ちょうど3つの生きている隣人がいる死んだ細胞は、まるで生殖のように生きている細胞になります。

初期パターンはシステムのシードを構成します。第1世代は、上記のルールをシードのすべてのセルに同時に適用することによって作成されます。誕生と死は同時に発生します。これが発生する個別の瞬間は、ティックと呼ばれることもあります(つまり、各世代は、前のもの)。ルールは繰り返し適用されて、次の世代を作成します...


1

同時に実行できる多くの数学を必要とする問題。私が以前使用していた場所では、GPUを使用して2つの行列を追加/減算/乗算して、遺伝的相関を計算したいと考えていました。私がGPUについて初めて聞いたのは、金融ソフトウェア会社がモデリングの一部(モンテカルロなど)を実行するために使用していたということでした。これはコードブレークに役立ちます。

ほとんどの通常のプログラムは数個の並行プロセスを実行するだけでよいため、GPUは、CPUコアが2つあれば十分な、より定期的なプログラミングの問題にはあまり役立ちません。(私たちが現在持っているよりも非常に速いメモリ/ディスクとは異なるかもしれません)


-3

たぶん私は非常に数学/科学/工学の計算に特化しているかもしれませんが、頭に浮かぶのはFFTアルゴリズムです。

私は以前にこのFFTベンチマークが投げられるのを見ました、そしてそれは数年前ですがそれが何であるかについてはうまくいったと思います:http : //www.sharcnet.ca/~merz/CUDA_benchFFT

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