問題タブ [thrust]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
756 参照

cuda - 推力::min_elementはfloat4device_vectorでは機能しませんが、host_vectorでは機能します

ThrustとCUDAを使用して、配列内の最小数を見つけようとしています。
次のデバイスの例は0で返されます:

ただし、このホストバージョンは完全に機能します。

コンパレータタイプ:

そのthrust::sortが同じ述語で機能することを追加したかっただけです。

0 投票する
2 に答える
3265 参照

cuda - 推力を使用してint2配列から平均を計算する方法

ポイント(x、y)を含む特定の配列の平均を計算しようとしています。
推力を使用して、(x、y)点として表される平均点を見つけることは可能ですか?thrust::device_vector<int>また、各セルにポイントの絶対位置が含まれている場合、配列をaとして表すこともできi*numColumns + jます。つまり、平均数が平均セルを表すかどうかはわかりません。
ありがとう!

0 投票する
1 に答える
2558 参照

cuda - スラストを使用して CPU メモリから GPU にコピーするためのより良い高速な方法はありますか?

最近はスラストを多用しています。スラストを使用するには、常に CPU メモリから GPU メモリにデータをコピーする必要があることに気付きました。
次の例を見てみましょう。

コンストラクターがどのように機能するかはよくわかりませんhost_vectorが、からの初期データを*foo2回コピーしているようです-1回は初期化時にhost_vectorに、もう1回device_vectorは初期化時に。中間データのコピーを作成せずに CPU から GPU にコピーするより良い方法はありますか? ラッパーとして使用できることはわかってdevice_ptrいますが、それでも問題は解決しません。
ありがとう!

0 投票する
1 に答える
1333 参照

c - Thrust::reduce_by_key のパフォーマンスとキーの繰り返しが少ない

たまにしか繰り返されない多くの異なるキーを使用して、配列のキー付きリダクションを行う必要があります。

thrust::reduce_by_keyほとんどの操作は実際にはある配列から別の配列にコピーするだけなので、(または他のセグメント化された削減方法)を使用することは、ここでは最速のオプションではありません。

この問題に対するより良いアプローチは何でしょうか?

0 投票する
1 に答える
645 参照

cuda - スラスト::バイナリ_プレディケートに静的メンバーを追加する方法は?

静的メンバーを次のタイプに追加しようとしています。

しかし、私はエラーが発生し続けます:

私の推測では、CUDA はこのメンバーを参照できません。どうすれば修正できますか?

0 投票する
1 に答える
7570 参照

cuda - Thrust: ホスト配列から device_vector を作成する方法は?

ホスト上のライブラリから配列へのポインタとしてデータを取得します。このデータをデバイスに保持する device_vector を作成するにはどうすればよいですか?

0 投票する
1 に答える
792 参照

cuda - zip_iterator 値を使用すると、sort_by_key の問題が発生する

cuda で sort_by_key() を使用して zip_iterator を使用しようとしていますが、ソート中に zip_iterator 内の値が並べ替えられません (データの位置は元と同じままです)。

コード例:

このコードが行うことを期待しているのは、fooVec と barVec の順序を維持しながら、keyVec の値に基づいて並べ替えることです (これは適切に行われます)。これは sort_by_key の機能ではありませんか? sort_by_key は zip_iterator で動作しますか? zip_iterator からデータをセットアップ/プルするときに何か間違ったことをしていますか? この方法が正しくない場合、値の順序を維持するための適切な方法は何ですか?

元:

CUDA 4.1 に同梱されている Thrust を使用する

システムの詳細:

更新: まだ sort_by_key() を zip_iterator で動作させることはできませんが、標準の throw::device_vector<>.begin() イテレーターでは正しく動作します。

0 投票する
1 に答える
3574 参照

foreach - CUDAスラストライブラリを解決する方法-for_each同期エラー?

CUDAの推力ライブラリを使用してCUDAの単純な動的ベクトルを変更しようとしています。しかし、画面に「launch_closure_by_value」エラーが表示され、エラーが同期プロセスに関連していることを示しています。

このエラーのため、単純な1D動的配列の変更はできません。

エラーの原因となっている私のコードセグメントは次のとおりです。

System.cuで定義されているsetIndexedGridを.cppファイルから呼び出します

System.cuのコードセグメント:

grid_functorは_kernel.cuで定義されています

これらは出力ウィンドウにも表示されます(私はVisual Studioを使用しています)。

Particles.exeの0x000007fefdc7cacdでのファーストチャンス例外:Microsoft C ++例外:メモリ位置0x0029eb60のcudaError_enum。smokeParticles.exeの0x000007fefdc7cacdでのファーストチャンス例外:Microsoft C ++例外:メモリ位置0x0029ecf0のthrust :: system::system_error。 Particles.exeの0x000007fefdc7cacdでの未処理の例外:Microsoft C ++例外:メモリ位置0x0029ecf0でのthrust :: system::system_error。

問題の原因は何ですか?

0 投票する
2 に答える
1236 参照

cuda - device_vectorの各要素を定数でデクリメントする方法は?

thrust::transformの各要素から定数値をデクリメントするために使用しようとしていdevice_vectorます。ご覧のとおり、最後の行は不完全です。私はすべての要素から定数をデクリメントしようとしていますfLowestValが、正確にはわかりません。

別の質問:で変更を行うと、変更はアレイdevice_vectorにも適用されますか?p

ありがとう!

0 投票する
2 に答える
1148 参照

cuda - Thrust::min_element による cudaMalloc された配列の最小要素位置の検索

特定の CUDA 配列で最小の要素を見つけようとしています

pはリニア デバイス メモリで、pWrapperthrust::device_ptrです。

を使用するdevice_vectorと、最小要素の位置を簡単に見つけることができます

それとは反対に、min_element呼び出しに指定された型が a のdevice_ptr場合、 の戻り値の型min_elementfloat *p(の定義されたテンプレートに従ってdevice_vector) です。提供したばかりのコード スニペットからは、最小値の場所がどこにあるのか、配列からそれを抽出する方法がわかりません。

min_element両方のアドレスの戻り値の型から減算しようとしましppWrapperが、どちらも機能しませんでした。