CUDA学习(一)

/ /分配主机内存

unsigned int类型的numBytes = N *的sizeof(浮动)
浮动* h_A =(浮动*)malloc的(以numBytes);

/ /分配设备内存

浮动* D_A = 0;
cudaMalloc((无效**)&D_A,以numBytes);

/ /复制从主机到设备的数据
对cudaMemcpy(D_A h_a,数组的numBytes,cudaMemcpyHostToDevice);

/ /执行内核
Increment_gpu <<<Ñ/块大小,块大小>>>(D_A,B);
/ /复制从设备返回到主机的数据
对cudaMemcpy(h_a,数组D_A,以numBytes,cudaMemcpyDeviceToHost);
/ /释放设备内存
cudaFree( D_A);


执行
的:
只调用
从:
__device__浮动DeviceFunc()
设备
设备
__global__无效KernelFunc()
设备
主持人
__host__浮动HostFunc()
主持人
主持人
1, __global__定义了一个内核函数
   --->必须返回void
2, __device__和__ host__可以一起使用
3, __device__函数不能取其地址
4, 对于设备上执行的功能:
没有递归(递归)
在函数内部没有静态变量声明
无可变数目的参数


记忆
范围
一生
__shared__诠释SharedVar;
共享
线程块
线程块
__device__诠释GlobalVar;
全球

应用
__constant__诠释ConstantVar;
不变

应用
1,没有任何修饰词的自动变量存于寄存器中
除驻留在本地内存中大型结构或数组
2,指针可以指向分配或声明的任何全局存储器
或共享内存:
2.1Global内存:
内存分配在主机和传递给内核:
获得作为一个全局变量的地址
2.2Shared记忆:在通话过程中静态分配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值