2012-05-04 12 views
1

推力クイックスタートガイドからいくつかのサンプルコードを実行しようとしています。それは下に貼り付けられています。私を殺しているのは、私がfind_ifを押すたびに、私が例外をスローして "R6010 -abort()が呼び出されました")ということです。nvidia cuda thrust abort()find_if

私は4.1と4.2ランタイム。私はVisual Studio 2010 Ultimateで最新のNSightリリース候補(2012年5月4日ダウンロード)を使用してこれを構築しています。プロジェクトVS新(つまり推力を使用していない)、それは大丈夫に動作します。推力を追加すると、しかし、私は、このすごみを与えます。

任意の提案が高く評価されています。

MJ

thrust::device_vector<int> input(4); 

input[0] = 0; 
input[1] = 5; 
input[2] = 3; 
input[3] = 7; 

thrust::device_vector<int>::iterator iter; 

iter = thrust::find_if(input.begin(), input.end(), greater_than_four()); 
iter = thrust::find_if(input.begin(), input.end(), greater_than_ten()); 

EDIT1

情報のもう一つちらほら。私はこれを深く掘り下げて、cudaThreadSynchronize()の間にエラーが捕捉されているのを見ています。メッセージは "launch_closure_by_value"です。

答えて

1

私はそれを理解しました。 __host____device__タグがありませんでした。

struct greater_than_four 
{ 
__host__ __device__ 
    bool operator()(int x) 
    { 
     return x > 4; 
    } 
}; 
+0

さらに詳しい情報を提供できますか?ソースに問題はありましたか? – nouveau

+0

3行目が表示されますか? "__ホスト__ __デバイス__"。それが欠けていたものです。アンダースコアとテキストの間にスペースはないはずです。 –

関連する問題