使用cuda c进行并行编程

2.2.2 内核调用

内核调用会生成大量的block和thread来在GPU上并行地处理数据,语法如下:

FFT << <blockNum, threadPerBlock >> >

应确保内核使用__global__关键字定义。可包含三个用逗号分隔的参数。

para1:希望执行的block数

para2:每个块将具有的线程数

para3:可选,指定内核使用的共享内存的大小

2.2.3 配置内核参数

一个块中的线程可以通过共享内存彼此通信

GPU支持三位网格块和三位线程块,语法如下:

在这里,Nbx、Nby和Nbz分别表示网格中沿x,y和z轴方向的块数。同样,Ntx、Nty和Ntz分别表示一个块中沿x,y和z轴方向的线程数。如果没有指定y和z的维数,默认情况下它们被取为1

 

启动一个16×16的块网格,所有的块都包含16×16个线程

 

2.2.4 cuda API函数

__global__,__device__,__host__限定符关键字 ,表明函数被声明为一个设备函数

如果要在设备上执行并从设备函数调用函数,则必须使用__device__关键字

__host__关键字用于从其他主机函数调用普通函数。默认情况下,程序中所有函数都是主机函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值