Error simple del programa de empuje CUDA
thrust (1)
Solo escribo un sencillo programa CUDA Thrust, pero cuando lo ejecuto. Obtuve este error: thrust :: system :: system_error en la posición 0x0037f99c.
¿Alguien puede ayudarme a descubrir por qué sucede esto?
#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;
}
Algunas sugerencias con Thrust:
- Si está compilando su código con
-G
y tiene problemas, intente compilar sin-G
- Puede ver los errores que arrojan los golpes , para obtener más información.
- Siempre se recomienda compilar su código para la arquitectura de la GPU que está utilizando. Entonces, si tiene una GPU cc2.0, compile con
-arch=sm_20
. Si tiene una GPU cc3.0, compile con-arch=sm_30
etc. - Finalmente, se recomienda construir un proyecto de 64 bits. En Windows, debe seleccionar un lanzamiento / proyecto x64.