首页 > 其他 > 详细

CUDA_矢量相加

时间:2015-11-23 18:09:45      阅读:314      评论:0      收藏:0      [点我收藏+]

#include<iostream>

#define N 10

 

_ _global_ _ void add(*a,*b,*c)

{

  int tid=blockIdx.x;

  if(tid<N)

 

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

}

int main (void)

{

  int a[N],b[N],c[N];

  int *dev_a,*dev_b,dev_c;

  ///在GPU上分配内存

  cudaMalloc((void**)&dev_a,N*sizeof(int));

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

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

  for(i=0;i<N;i++)

  {

    a[i]=i;

    b[i]=i*i;

  }

  cudaMencpy(dev_a,a,N*sizeof(int),cudaMencpyHostToDevice);

  cudaMencpy(dev_b,b,N*sizeof(int),cudaMencpyHostToDevice);

  cudaMencpy(dev_c,c,N*sizeof(int),cudaMencpyHostToDevice);

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

  cudaMemcpy(c,dev_c,N*sizeof(int),cudaMemcpyDeviceToHost);

  for(int i=0;i<N;i++)

  {

    printf("%d+%d=%d\n",a[i],b[i],c[i]);

  }

  cudaFree(dev_a);

  cudaFree(dev_b);

  cudaFree(dev_c);

  return 0;

}

 

CUDA_矢量相加

原文:http://www.cnblogs.com/uestcsummer/p/4988753.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!