cuda指北之professional CUDA C Programming第五章共享内存

二 共享内存的数据布局

从硬件角度看,被一个SM共享,从软件角度看,则是被一个block共享

1 方形共享内存

CPU的内存是线性存储的,但是GPU的共享内存并不是线性的,而是二维的

说白了就是不要一个线程束中访问一列共享内存,而是要访问一行

最好就是同步线程,不同bank(同一个线程束中) 

2 行主序访问和列主序访问

核函数只完成简单的两个操作:

  • 将全局线程索引值存入二维共享内存
  • 从共享内存中按照行主序读取这些值并存到全局内存中

项目完整的代码在24_shared_memory_read_data这个文件夹下,下文我们只贴部分代码。
核函数如下

1
2
3
4
5
6
7
8
9
__global__ void setRowReadRow(int * out)
{
    __shared__ int tile[BDIMY][BDIMX];
    unsigned int idx=thre
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youzjuer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值