1

次のようなツリーに対して再帰を実行する単純なカーネルを作成しました。

struct item {
    int data;
    item *rnext, *lnext;
} *items[NUM_ITEMS];

そのため、自分自身を指すツリー項目の配列を opencl カーネルに渡したいのですが、SVM がそうするのに最適な方法のようです (opencl 2.0 を数えても問題ありません)。

私の質問は、カーネルが整数のトリプルなどを受け取るように、boost::compute でそれを行う方法です。

ありがとう!

4

1 に答える 1

1

Boost.Computeは、 boost::compute::svm_*関数を使用して共有仮想メモリをサポートします。

アプリケーションの場合、SVM メモリの領域をsvm_alloc()で割り当て、入力データを入力してから、通常のkernel::set_arg()関数 (オーバーロードを持つ) を使用してカーネルに渡すだけで済みます。 SVM メモリ オブジェクトの場合)。

于 2015-05-28T02:53:46.020 に答える