cuda 计算 CPU 调用GPU计算

CUDA 计算两个向量的和

由于cpu计算相对于GPU来说太慢了,所以使用cuda (c 语言)来调用数据到Gpu中计算,这样可以大大的提高计算时间。

使用软件:在windows下使用 vs2017+ cuda10   进行代码编写

分析:使用cuda求两个向量相加具体可分为5步

  1. 申请数据存储空间
  2. 拷贝host端数据到device端(CPU  到 GPU) 
  3. 调用kernel
  4. 复制结果返回给host端
  5. 释放空间

全部代码如下:

#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>

__global__ void vecaddtion(float *d_a,  float *d_b,  float  *d_c,int nElem)
{
    int t = threadIdx.x +blockDim.x*blockIdx.x;   //t(向量索引号)大小 //t (tid)表示全局线程的索引号
	//threadIdx是一个uint3类型,表示一个线程的索引。
	//blockIdx是一个uint3类型,表示一个线程块的索引,一个线程块中通常有多个线程。
	//blockDim是一个dim3类型,表示线程块的大小。
	//blockDim.x,blockDim.y,blockDim.z相当于这个dim3的x,y,z方向的维度 这里是x(一维,向量)方向上
	if (t < nElem)
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值