第一个cuda程序-基于VS2010+CUDA5.0 两个向量相加的GPU实现

第一个cuda程序-基于VS2010+CUDA5.0     两个向量相加的GPU实现  <适合入门同学,有错误或是不妥的地方欢迎指正>



第一个cuda程序-基于VS2010+CUDA5.0     两个向量相加的GPU实现


 

1.新建一个空白的控制台应用程序。


2.在项目中添加一个.cu源文件,(也可以添加一个cpp文件然后改后缀为.cu





3.工程名右键——BuildCustomiztions…勾选CUDA 5.0(.targets,.props)







4.右键.cu文件——Properties——General——Item Type选择CUDA C/C++——Apply





5.编辑.cu文件(给出源代码,实现两个向量相加的简单代码)


#include"cuda_runtime.h"


#include"device_launch_parameters.h"


#include"stdio.h"


#include"windows.h"

int M=1;


__global__void add(int *a,int *b,int *c)


{

 int x=threadIdx.x;


 c[x]=a[x]+b[x];


}


void main()


{

   int*dev_a,*dev_b,*dev_c;


   intm[5]={0,1,2,3,4};


   intn[5]={5,6,7,8,9};


   intq[5]={0};


   cudaMalloc((void**)&dev_a,5*sizeof(int));  //apply memory onthe device


   cudaMalloc((void**)&dev_b,5*sizeof(int));


   cudaMalloc((void**)&dev_c,5*sizeof(int));


   cudaMemcpy(dev_a,m,5*sizeof(int),cudaMemcpyHostToDevice);


   cudaMemcpy(dev_b,n,5*sizeof(int),cudaMemcpyHostToDevice);


   add<<<1,5>>>(dev_a,dev_b,dev_c);   


   cudaMemcpy(q,dev_c,5*sizeof(int),cudaMemcpyDeviceToHost);


   cudaFree(dev_a);


   cudaFree(dev_b);


   cudaFree(dev_c);                           


   printf("{%d%d %d %d %d}+{%d %d %d %d %d}={%d %d %d %d %d}\n",m[0],m[1],m[2],m[3],m[4],n[0],n[1],n[2],n[3],n[4],q[0],q[1],q[2],q[3],q[4]);


system("pause");

}


6.添加附加依赖项


右键工程名——Properties——Configuration Properties——Linker——Input——AdditionalDependencies添加cudart.lib    确定



编译-运行


运行结果:
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值