简单的CUDA推力程序错误

时间:2013-12-06 01:14:32

标签: cuda thrust

我只是编写一个简单的CUDA Thrust程序,但是当我运行它时。我收到此错误:thrust :: system :: system_error位于0x0037f99c。

有人可以帮我弄清楚为什么会这样吗?

#include<thrust\host_vector.h>
#include<thrust\device_vector.h>
#include<iostream>
using namespace std;
using namespace thrust;
int main()
{

    thrust::host_vector<int> h_vec(3);
    h_vec[0]=1;h_vec[1]=2;h_vec[2]=3;
    thrust::device_vector<int> d_vec(3) ;
    d_vec= h_vec;
    int h_sum = thrust::reduce(h_vec.begin(), h_vec.end());
    int d_sum = thrust::reduce(d_vec.begin(), d_vec.end());
return 0;
}

1 个答案:

答案 0 :(得分:3)

Thrust的一些建议:

  • 如果您使用-G编译代码并遇到问题,请尝试编译而不使用-G
  • 您可以catch the errors that thrust throws获取更多信息。
  • 始终建议您为正在使用的GPU架构编译代码。因此,如果您使用的是cc2.0 GPU,请使用-arch=sm_20进行编译。如果您使用的是cc3.0 GPU,请使用-arch=sm_30等进行编译
  • 最后,建议构建一个64位项目。在Windows上,您将选择一个release / x64项目。