#include <iostream>
#include "book.h"
using namespace std;
//__global__修饰符告诉编译器这个函数应编译为在设备上运行(而不是主机)
__global__ void add(int a, int b, int *c)
{
*c = a + b;
}
int main(){
int c;
int *dev_c;
//第一个参数是指向用于保存新分配内存地址变量的指针
//不能在主机代码中使用这个指针进行内存读写操作
//主机指针只能访问主机代码中的内存,设备指针只能访问设备代码内存
HANDLE_ERROR( cudaMalloc((void**)&dev_c, sizeof(int)) );
add << <1, 1 >> >(2, 7, dev_c);
//cudaMemcpyDeviceToHost表示从设备向主机进行拷贝操作
HANDLE_ERROR(cudaMemcpy(&c, dev_c, sizeof(int), cudaMemcpyDeviceToHost) );
cout << "2+7=" << c << endl;
cudaFree(dev_c);
system("pause");
return 0;
}
运行结果: