1

我正在尝试执行 Thrust 快速入门指南中的一些示例代码。它贴在下面。让我丧命的是,当我运行它时,每当我点击 find_if 时都会抛出一个异常“R6010 -abort() 已被调用”。

我已经尝试过使用 4.1 和 4.2 运行时。我正在使用最新的 NSight 候选版本(2012 年 5 月 4 日下载)在 Visual Studio 2010 Ultimate 中构建它。我的显卡是 NVidia NVS 3100m。

我可以运行在一个新的 VS 项目(不使用 Thrust)中生成的向量添加示例,它工作正常。然而,添加推力给了我这种奇怪的感觉。

任何建议表示赞赏。

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());  

编辑1

又是一条信息。我正在深入研究这一点,发现在 cudaThreadSynchronize() 期间发现了一个错误。消息是“launch_closure_by_value”。

4

1 回答 1

1

我想到了。和__host__标签__device__丢失。

struct greater_than_four
{
__host__ __device__
    bool operator()(int x)
    {
        return x > 4;
    }
};
于 2012-05-04T20:14:34.603 回答