問題タブ [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 に答える
2339 参照

c++ - 手書きのCUDAカーネルを推力で呼び出す

CUDAで多数の数値の配列をソートする必要があったので、推力を使用することにしました。これまでのところ、とても良いです...しかし、データを含むthrust :: host_vectorを持つ「手書き」カーネルを呼び出したい場合はどうなりますか?

私のアプローチは(バックコピーがありません)でした:

カーネルは次のようになります。

しかし、コンパイルは次の場合に失敗します。

エラー:タイプ「float**」の引数はタイプ「thrust::host_vector>*」のパラメーターと互換性がありません

は?!私はfloatとintのrawポインターを与えていると思いましたか?または私は何かが欠けていますか?

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

c++ - ループ内の推力でCUDAを最適化する

次のコードを前提として、thrust(CUDA用のC ++テンプレートライブラリ)を使用して、CUDAで一種のコードディクショナリを生成します。

問題は、CUDAビジュアルプロファイラーを使用して、4バイトの複数のコピーに気付いたことです。IMOこれはによって生成されます

  1. ループカウンターi
  2. float codeint countdist
  3. iおよび上記の変数へのすべてのアクセス

これはすべてを遅くするようです(4バイトの順次コピーは面白くありません...)。

だから、私は推力をどのように伝えていますか、これらの変数はデバイスで処理される必要がありますか?それとも彼らはすでにですか?

forループがホストで実行されているのかデバイスで実行されているのかわからないため、thrust :: device_ptrを使用するだけでは不十分なようです(これも速度が遅いもう1つの理由である可能性があります)。

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

cuda - Thrust の CUDA: プライオリティ キューの実装方法

私の計画は、ピアソンの相関を使用して距離行列を計算し、距離行列から各ノード (q=ln(n)) の q-最近傍を取得し、それらを結果ベクトルに入れることです。相関関数のループ内で STL プライオリティ キューを使用して C++ で実行しました。

しかし、GPUでそれを行う方法はあると思いますか?

  1. GPUで同じことを行うにはどうすればよいですか(おそらくThrustの方が簡単です!)
  2. GPU でプライオリティ キューを実装する方法は?

これが私のCPU(C ++ STL)コードです:

例えば、

0 投票する
3 に答える
838 参照

c++ - 推力グラフ; ネイティブ CUDA コンパイルの問題... Linux

スラストグラフから簡単な例をコンパイルしようとしています。

現時点では、すべてをコメントアウトしていますmain(void)

私は誰かが喜んで与えてくれるあらゆる方向性を探しています!

私のコンパイルエラーはこれです:

最初のエラーであるinclude/thrust/detail/device/cuda/reduce_by_keyvalue.inlファイルの 90 行目に焦点を合わせましたが、何が問題なのかわかりません。私は C++ を初めて使用します (C は初心者レベルで知っています)。テンプレート ファイルに関してはすべて問題ないように見えます。NVIDIA の担当者が何をしているのかを知らないとショックを受けるでしょう。

90行目あたりのコード:

そして現在、私のメインの唯一のコード: (他のすべてはコメントされています。)

0 投票する
3 に答える
7503 参照

visual-studio-2010 - スラスト/CUDA警告の解決「ポインタが何を指しているのかわからない...」

Thrust / CUDA 4.0を使用して簡単なアプリケーションを構築しようとしていますが、「警告:グローバルメモリスペースを想定しているため、ポインタが何を指しているのかわかりません」という警告がたくさん表示されます。

他の誰かがこれを見たことがありますか?それらを無効にするか、コードを修正するにはどうすればよいですか?

ありがとう、

アデ

これが私のコードです。

Hello.h

Hello.cu

出力

これらはたくさんあります。

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

cuda - Cudaのパフォーマンスの問題

この質問は少し一般的すぎるかもしれませんが、誰かが同じ問題を経験しているかもしれません。

私は推力を使った小さなcudaプログラムを持っていて、すべてがうまくいっています。期待どおりに動作します。

しかし、同じプログラムを別のマシンに移植すると、プログラム全体のパフォーマンスは元のマシンよりも約10倍から100倍遅くなります。2台目のマシンのハードウェアはより高速である必要があるため(GTX265ではなくGTX480)、問題は2台目のマシン自体にあると思います。誰かが何がうまくいかないかもしれないという考えを持っていますか?

0 投票する
5 に答える
8164 参照

sorting - Thrust CUDA を使用したオブジェクトの並べ替え

Thrust ライブラリを使用してオブジェクトをソートすることは可能ですか? 私は次の構造体を持っています:

Nに従ってOBの配列をソートするために推力を使用することは可能ですか? スラストを使用してオブジェクトをソートする簡単な例を教えてください。スラストがそうできない場合、それを可能にする他の CUDA ライブラリはありますか?

0 投票する
4 に答える
20878 参照

cuda - ユーザーが作成したカーネル内での推力

私はスラストの初心者です。すべての Thrust のプレゼンテーションと例は、ホスト コードのみを示しています。

自分のカーネルに device_vector を渡すことができるかどうか知りたいですか? どのように?はいの場合、カーネル/デバイス コード内で許可されている操作は何ですか?

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

cuda - Thrust: キー値配列の重複を削除する

同じサイズの配列のペアがあり、それらをキーと値と呼びます。

例えば:

キーがソートされ、各キーに関連付けられた値がソートされます。各キーとそれに対応するキーに関連付けられた値の重複を削除するにはどうすればよいですか?

つまり、上記を次のように圧縮します。

Thrustで利用可能なストリーム圧縮関数を見ましたが、これを行うものを見つけることができませんでした。これはスラストで可能ですか?それとも、独自のカーネルを作成して、ステンシル内の重複をマークして削除する必要がありますか?