2016-10-07 14 views
0

大量の操作Xを大量のアイテムに対して実行Y. 各操作Xはかなり簡単で、基本的にはANDおよびORロジックの束を評価しています。Cudafyで未知のサイズの配列を返します

各Func(X、Y)は当然非常に速いですが、XとYの完全な組み合わせは操作全体に長時間を要します。

PLinqを使用すると、はるかに高速になりますが、まだ比較的遅いです。

GPUでこれを動作させるために、私はさまざまなフレームワーク(Alea、Cudafy、GPULinq)を研究していましたが、GPUがすべての操作に適していないことがわかりました。

主な問題は、GPUカーネルでは、いくつかの点で、整数配列の交叉または和集合を実行していることです。これにより、未知の量の値が得られます。おそらく2 *長さの組み合わせで、または交差点で0。

私はいつも2 *長さを使用してこれを回避することができましたが、長さ自体も定数ではありません。

どのようにGPUフレームワーク内で可変サイズのint配列を返すことができますか?

答えて

0

それは構文を使用するだけの場合がありません:

ダブル[] X = gpu.allocate(変数または数値に基づいて、アレイのサイズ)。

を入力し、[Cudafy]メソッドから戻します。

+0

GPUで実行されているコードでこれを実行できません。サイズを事前に知っていなければならず、それを割り当ててからGPUに渡す必要があります。 – Telavian

関連する問題