0


デバイス ptr (thrust::device_ptr< int>) を使用したキーによるソートに問題があります。
これ:

thrust::sort_by_key(dev_ptr_key,dev_ptr_key+noOfSelectedRows,dev_ptr_val,dev_ptr_val+noOfSelectedRows);

エラーが発生します:

Error   48  error : call of an object of a class type without appropriate operator() or conversion functions to pointer-to-function type    

このエラーは、merging_sort.h と stable_merge_sort.incl からのものです。
begin() の使用:

thrust::sort_by_key(dev_ptr_key->begin(),dev_ptr_key->begin()+noOfSelectedRows,dev_ptr_val->begin(),dev_ptr_val->begin()+noOfSelectedRows);

エラーが発生します:

Error   28  error : loop in sequence of "operator->" functions starting at class "thrust::device_ptr<int>"

誰でもそれを機能させる方法を知っていますか? 前もって感謝します

4

1 に答える 1

1

パラメータリストに一致するsort_by_keyのバージョンはありません:

thrust::sort_by_key(dev_ptr_key,dev_ptr_key+noOfSelectedRows,dev_ptr_val,dev_ptr_val+noOfSelectedRows);

キー範囲の開始、キー範囲の終了、値の範囲の開始、および値の範囲の終了を渡しています。ただし、値の範囲の終わりを渡す必要はありません (また、値の範囲の終わりを渡すことをサポートする sort_by_key のバージョンはありません)。

代わりにこれを試してください:

thrust::sort_by_key(dev_ptr_key,dev_ptr_key+noOfSelectedRows,dev_ptr_val);
于 2013-05-16T16:13:26.200 に答える