《CUDA并行程序设计:GPU编程指南》笔记 Chaper 5 线程网格、线程块、线程束

1. 线程网格、线程块、线程束 关系

在这里插入图片描述

2. 如何将数据放到GPU上运算

1.首先要通过cudaMalloc和cudaFree申请或释放内存
2.然后使用cudaMemcpy将数据从CPU端复制到GPU

在这里插入图片描述

3. CUDA 中的相关变量含义

 gridDim.x – 线程网格X维度上线程块的数目 
 gridDim.y – 线程网格Y维度上线程块的数目
 
 blockDim.x – 一个线程块X维度上的线程数量 
 blockDim.y – 一个线程块Y维度上的线程数量
 
 threadIdx.x –线程块X维度上的线程索引 
 threadIdx.y –线程块Y维度上的线程索引

4. 线程束(WARPS)

同一个线程束中的所有线程同时执行,通过访存获取指令后广播至线程束所占用的SP,wrapSize固有大小32,用户不能改变

为什么线程束大小warpSize很重要?

原因:程序的分支会造成线程束中很多线程阻塞
实际情况:指令执行层面,硬件的调度是基于半个线程束而不是整个线程束,只需要将线程束一半的线程划分到同一个分支里,GPU利用率可以达到100%。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值