关于其他工程调用cuda工程


void func(){
	float *h_input, *d_input;
	h_input = (float *)malloc(10 * sizeof(float));
	for (int w=0; w<10; w++)h_input[w]= (float)w;
	cudaMalloc((void **)&d_input, 10 * sizeof(float));
	cudaMemcpy(d_input,  h_input, 10 * sizeof(float), cudaMemcpyHostToDevice);
	for(int i =0;i<10 ; i++)printf("%.3f  --  %.3f \n",h_input[i],d_input[i]);
}

如上一段非常简单的代码,放在一个cuda的工程里面直接使用,打印结果是两者的,两个都一样,
但是如果我希望在另一个工程(非cuda工程)里面调用这个cuda工程(作为lib)的函数,结果发现,编译通过,但是运行的时候,结果是不一样的。

请大家帮忙一下,非常感谢,这个问题有点儿奇怪。。:cry:

原来是需要将设备的数据拷出来再对比。
虽然目前算是解决了,但是单独的cuda工程,和其他工程调用这个cuda工程打印出来的d_input还是不一样,这是为什么呢?