問題タブ [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.
cuda - 推力::min_elementはfloat4device_vectorでは機能しませんが、host_vectorでは機能します
ThrustとCUDAを使用して、配列内の最小数を見つけようとしています。
次のデバイスの例は0で返されます:
ただし、このホストバージョンは完全に機能します。
コンパレータタイプ:
そのthrust::sortが同じ述語で機能することを追加したかっただけです。
cuda - 推力を使用してint2配列から平均を計算する方法
ポイント(x、y)を含む特定の配列の平均を計算しようとしています。
推力を使用して、(x、y)点として表される平均点を見つけることは可能ですか?thrust::device_vector<int>
また、各セルにポイントの絶対位置が含まれている場合、配列をaとして表すこともできi*numColumns + j
ます。つまり、平均数が平均セルを表すかどうかはわかりません。
ありがとう!
cuda - スラストを使用して CPU メモリから GPU にコピーするためのより良い高速な方法はありますか?
最近はスラストを多用しています。スラストを使用するには、常に CPU メモリから GPU メモリにデータをコピーする必要があることに気付きました。
次の例を見てみましょう。
コンストラクターがどのように機能するかはよくわかりませんhost_vector
が、からの初期データを*foo
2回コピーしているようです-1回は初期化時にhost_vectorに、もう1回device_vector
は初期化時に。中間データのコピーを作成せずに CPU から GPU にコピーするより良い方法はありますか? ラッパーとして使用できることはわかってdevice_ptr
いますが、それでも問題は解決しません。
ありがとう!
c - Thrust::reduce_by_key のパフォーマンスとキーの繰り返しが少ない
たまにしか繰り返されない多くの異なるキーを使用して、配列のキー付きリダクションを行う必要があります。
thrust::reduce_by_key
ほとんどの操作は実際にはある配列から別の配列にコピーするだけなので、(または他のセグメント化された削減方法)を使用することは、ここでは最速のオプションではありません。
この問題に対するより良いアプローチは何でしょうか?
cuda - スラスト::バイナリ_プレディケートに静的メンバーを追加する方法は?
静的メンバーを次のタイプに追加しようとしています。
しかし、私はエラーが発生し続けます:
私の推測では、CUDA はこのメンバーを参照できません。どうすれば修正できますか?
cuda - Thrust: ホスト配列から device_vector を作成する方法は?
ホスト上のライブラリから配列へのポインタとしてデータを取得します。このデータをデバイスに保持する device_vector を作成するにはどうすればよいですか?
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() イテレーターでは正しく動作します。
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。
問題の原因は何ですか?
cuda - device_vectorの各要素を定数でデクリメントする方法は?
thrust::transform
の各要素から定数値をデクリメントするために使用しようとしていdevice_vector
ます。ご覧のとおり、最後の行は不完全です。私はすべての要素から定数をデクリメントしようとしていますfLowestVal
が、正確にはわかりません。
別の質問:で変更を行うと、変更はアレイdevice_vector
にも適用されますか?p
ありがとう!
cuda - Thrust::min_element による cudaMalloc された配列の最小要素位置の検索
特定の CUDA 配列で最小の要素を見つけようとしています
p
はリニア デバイス メモリで、pWrapper
はthrust::device_ptr
です。
を使用するdevice_vector
と、最小要素の位置を簡単に見つけることができます
それとは反対に、min_element
呼び出しに指定された型が a のdevice_ptr
場合、 の戻り値の型min_element
はfloat *p
(の定義されたテンプレートに従ってdevice_vector
) です。提供したばかりのコード スニペットからは、最小値の場所がどこにあるのか、配列からそれを抽出する方法がわかりません。
min_element
両方のアドレスの戻り値の型から減算しようとしましp
たpWrapper
が、どちらも機能しませんでした。