Cuda thrust - xutility:name后跟“::”必须是类或命名空间

时间:2013-10-06 14:07:22

标签: c# c++ cuda thrust

我想在我的CUDA应用程序中使用推力减少。因此,我包括标题并调用函数:

#include <thrust\reduce.h>

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

但是我得到了编译错误(只有一种类型):“name后跟”::“必须是类或命名空间”。问题是一个名为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;
    };

我不是真正参与模板编程。我做错了什么?

1 个答案:

答案 0 :(得分:1)

Thrust例程都设计为从主机端而不是在内核中调用。

有关使用thrust::reduce的示例,请参阅此内容。

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