-1

CUDA アプリケーションで推力低減を使用したいと考えています。したがって、ヘッダーを含めて関数を呼び出します。

#include <thrust\reduce.h>

__host__ void reduction(){
    unsigned int t = 0;
    thrust::reduce(t,t);
}

ただし、コンパイルエラーが発生します(1つのタイプのみ):「「::」が続く名前はクラスまたは名前空間でなければなりません」。問題は xutility というファイルにあります (私は触れていません)。すべてのエラーは、次のクラス定義に関連しています。

    // TEMPLATE CLASS iterator_traits
template<class _Iter>
    struct iterator_traits
    {   // get traits from iterator _Iter
    typedef typename _Iter::iterator_category iterator_category;
    typedef typename _Iter::value_type value_type;
    typedef typename _Iter::difference_type difference_type;
    typedef difference_type distance_type;  // retained
    typedef typename _Iter::pointer pointer;
    typedef typename _Iter::reference reference;
    };

私はテンプレート プログラミングにはあまり興味がありません。私は何を間違っていますか?

4

1 に答える 1

1

スラスト ルーチンはすべて、カーネルではなくホスト側から呼び出されるように設計されています。

使用例はこちらをご覧くださいthrust::reduce

https://github.com/thrust/thrust/blob/master/examples/sum.cu

于 2013-10-06T14:44:12.973 に答える