CUDA进阶(三)

第五章,共享内存和线程同步

1.在有线程对内存进行写的时候,要确保另外线程如果读数据,不会产生竞态关系

有一个办法是在有写操作时候

就进行强制线程同步

这样可以保证程序的正确性

但是有得必有失

__syncthreads();默认机制是要操作所有的线程,也就是说要所有的线程都执行了这个函数,才会往下执行

所以这玩意不能放在条件分支语句里

共享内存特别适合做汇总计算(就是block中的各个thread都进行同样的处理之后,把数据汇总到共享内存这里进行下一步计算,可以在需要看到很多线程独立数据的时候用)

 

第六章,常量内存和事件

1.常量内存,一次读取会广播到半个线程束(读取大量数据时,产生的内存流量是全局内存的1/16)

2.常量内存还会缓存,命中缓存也会减少额外流量

有得必有失

16个线程读取地址相同时候是极好的,但是不同地址的话就不行,性能降低

3.事件的本质是时间戳

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值