CUDA二维网格模型下线程索引的计算
2015-11-23 16:58
337 查看
用于线程索引计算的CUDA运行时库提供的变量
gridDim.x —— 线程网格X维度上线程块的数量
gridDim.y —— 线程网格Y维度上线程块的数量
blockDim.x —— 一个线程块X维度上的线程数量
blockDim.y —— 一个线程块Y维度上的线程数量
threadIdx.x —— 线程块X维度上的线程索引
threadIdx.y —— 线程块Y维度上的线程索引
二维线程网格模型下计算当前线程索引:
idx = (blockIdx.x * blockDim.x) + threadIdx.x;
idy = (blockIdx.y * blockDim.y) + threadIdx.y;
threadIdx = idx + idy * blockDim.x * gridDim.x;
解释:
idx 得到的是当前线程在整个线程网格中X维度的索引
idy 得到的是当前线程下整个线程网格中Y维度的索引
blockDim.x * gridDim.x计算得到线程网格中一行(x维度)的线程数量
idy*blockDim.x * gridDim.x计算得到线程网格中idy行(x维度)的总的线程数量
threadIdx为得到的当前线程的索引
用于线程索引计算的CUDA运行时库提供的变量
gridDim.x —— 线程网格X维度上线程块的数量
gridDim.y —— 线程网格Y维度上线程块的数量
blockDim.x —— 一个线程块X维度上的线程数量
blockDim.y —— 一个线程块Y维度上的线程数量
threadIdx.x —— 线程块X维度上的线程索引
threadIdx.y —— 线程块Y维度上的线程索引
二维线程网格模型下计算当前线程索引:
idx = (blockIdx.x * blockDim.x) + threadIdx.x;
idy = (blockIdx.y * blockDim.y) + threadIdx.y;
threadIdx = idx + idy * blockDim.x * gridDim.x;
解释:
idx 得到的是当前线程在整个线程网格中X维度的索引
idy 得到的是当前线程下整个线程网格中Y维度的索引
blockDim.x * gridDim.x计算得到线程网格中一行(x维度)的线程数量
idy*blockDim.x * gridDim.x计算得到线程网格中idy行(x维度)的总的线程数量
threadIdx为得到的当前线程的索引
相关文章推荐
- linux设备驱动归纳总结(七):2.内核定时器
- auto与decltype区别
- HTTP报文
- 机器学习个人资料整理
- FileUtil
- Android 休眠导致的问题Socket断开
- 小丫头与安卓的初恋
- 项目5 -- 拓扑排序算法的实现
- map转list
- 第十三周项目1-Prim算法的验证
- 第十三周项目5-拓扑排序算法验证
- 第十三周--项目2Kruskal算法的验证
- xcode 7 引入一维码 ZXingObjC
- Android开发笔记(四)字符串格式化
- onclientclick 和 onclick 的区别
- 详解Objective-C中委托和协议
- 常用控件
- 老李分享:《Linux Shell脚本攻略》 要点(四)
- hdu 1597 find the nth digit
- gcc 基本参数表