CUDA推力::系统::排他扫描中的系统错误

CUDA推力::系统::排他扫描中的系统错误,cuda,thrust,Cuda,Thrust,以下代码来自的答案 它编译正常,但在CUDA 6.0下运行时,在排他扫描后报告推力::系统::系统错误(跟踪堆栈中充满排他扫描相关信息) #包括 #包括 #包括 #包括 #包括 #包括 #包括 #pragma注释(lib,“cudart.lib”) int main() { 常数int N=16; int*a; cudamaloc((void**)和a,N*sizeo

以下代码来自的答案

它编译正常,但在CUDA 6.0下运行时,在排他扫描后报告推力::系统::系统错误(跟踪堆栈中充满排他扫描相关信息)

#包括
#包括
#包括
#包括
#包括
#包括
#包括
#pragma注释(lib,“cudart.lib”)
int main()
{                                                                 
常数int N=16;
int*a;
cudamaloc((void**)和a,N*sizeof(int));
推力::装置\u ptr d=推力::装置\u指针\u投射(a);
推力:填充(d,d+N,2);
推力:装置_矢量v(N);
推力:排他扫描(d,d+N,v.begin());
int v_N[N];
推力:复制(v.begin(),v.end(),v_);

对于(int i=0;i您正在编译一个调试项目,该项目正在添加
-G
开关。这可以是.switch到一个发布项目,该项目将删除
-G
开关

我尝试了以下组合:

-G -arch=sm_20
-arch=sm_20
-arch=sm_13
所有生成的代码运行正常

当我这样做的时候:

 -G -arch=sm_13
我能够重现您看到的错误。(CUDA 6上的所有测试)

 -G -arch=sm_13