内建变量:

threadIdx(.x/.y/.z代表几维索引):线程所在block中各个维度上的线程号

blockIdx(.x/.y/.z代表几维索引):块所在grid中各个维度上的块号

blockDim(.x/.y/.z代表各维度上block的大小):block的大小即block中线程的数量,blockDim.x代表块中x轴上的线程数量,blockDim.y代表块中y轴上的线程数量,blockDim.z代表块中z轴上的线程数量

gridDim(.x/.y/.z代表个维度上grid的大小):grid的大小即grid中block的数量,gridDim.x代表grid中x轴上块的数量,gridDim.y代表grid中y轴上块的数量,gridDim.z代表grid中z轴上块的数量

定义grid、block大小:

dim3 numBlock(m,n)

dim3 threadPerBlock(i,j)

则blockDim.x=i;blockDim.y=j;gridDim.x=m;gridDim.y=n

kernel调用:

kernel<<<numBlock,threadPerBlock>>>(a,b)

这是调用kernel时的参数,尖括号<<<>>>中第一个参数代表启动的线程块的数量,第二个参数代表每个线程块中线程的数量.

总的线程号:

设线程号为tid,以下讨论几种调用情况下的tid的值,这里只讨论一维/二维的情况

一维:

1.kernel<<<1,N>>>()

block和thread都是一维的,启动一个block,里面有N个thread,1维的。

tid=threadIdx.x

2.kernel<<<N,1>>>()

启动N个一维的block,每个block里面1个thread

tid=blockIdx.x

3.kernel<<<M,N>>>()

启动M个一维的block,每个block里面N个一维的thread

tid=threadIdx.x+blockIdx.x * blockDim.x

二维:

4.dim grid(m,n)

kernel<<<grid,1>>>()

启动一个二维的m*n个block,每个block里面一个thread

tid=blockIdx.x+blockIdx.y * gridDimx.x

5.dim grid(m,n)

kernel<<<grid,N>>>()

启动一个二维的m*n大小的block,每个block里面N个thread

tid=

6.dim block(m,n)

kernel<<<1,block>>>()

7.dim block(m,n)

kernel<<<N,block>>>()

8.dim grid(m,n)

dim block(i,j)

kernel<<<grid,block>>>()

cuda线程/线程块索引小结的更多相关文章

  1. CUDA并行计算 | 线程模型与内存模型

    文章目录 前言 CUDA线程模型(如何组织线程) CUDA内存模型(了解不同内存优缺点,合理使用) 前言   CUDA(Compute Unified Device Architecture)是显卡厂 ...

  2. C# CLR via 对象内存中堆的存储【类型对象指针、同步块索引】

    最近在看书,看到了对象在内存中的存储方式. 讲到了对象存储在内存堆中,分配的空间除了类型对象的成员所需的内存量,还有额外的成员(类型对象指针. 同步块索引 ),看到这个我就有点不懂了,不知道类型对象指 ...

  3. 揭示同步块索引(上):从lock开始

    转自:http://www.cnblogs.com/yuyijq/archive/2009/03/13/1410071.html 大家都知道引用类型对象除实例字段的开销外,还有两个字段的开销:类型指针 ...

  4. 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq

    常量,字段,构造方法   常量 1.什么是常量 ​ 常量是值从不变化的符号,在编译之前值就必须确定.编译后,常量值会保存到程序集元数据中.所以,常量必须是编译器识别的基元类型的常量,如:Boolean ...

  5. python 进程和线程-线程和线程变量ThreadLocal

    线程 线程是由若干个进程组成的,所以一个进程至少包含一个线程:并且线程是操作系统直接支持的执行单元.多任务可以由多进程完成,也可由一个进程的多个线程来完成 Python的线程是真正的Posix Thr ...

  6. C#线程 线程进阶

    第四部分:高级线程 非阻塞同步 前面我们说过,即使在分配或增加字段的简单情况下,也需要同步.尽管锁定始终可以满足此需求,但是竞争性锁定意味着线程必须阻塞,从而遭受上下文切换的开销和调度的延迟,这在高度 ...

  7. Linux线程的实现 & LinuxThread vs. NPTL & 用户级内核级线程 & 线程与信号处理

    另,线程的资源占用可见:http://www.cnblogs.com/charlesblc/p/6242111.html 进程 & 线程的很多知识可以看这里:http://www.cnblog ...

  8. Linux线程 之 线程 线程组 进程 轻量级进程(LWP)

    Thread Local Storage,线程本地存储,大神Ulrich Drepper有篇PDF文档是讲TLS的,我曾经努力过三次尝试搞清楚TLS的原理,均没有彻底搞清楚.这一次是第三次,我沉浸gl ...

  9. JAVA之旅(十五)——多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止

    JAVA之旅(十五)--多线程的生产者和消费者,停止线程,守护线程,线程的优先级,setPriority设置优先级,yield临时停止 我们接着多线程讲 一.生产者和消费者 什么是生产者和消费者?我们 ...

随机推荐

  1. modprobe和insmod的区别

    linux设备驱动有两种加载方式insmod和modprobe,下面谈谈它们用法上的区别1.insmod一次只能加载特定的一个设备驱动,且需要驱动的具体地址.写法为:        insmod dr ...

  2. BOM之history对象

    前面的话 history对象保存着用户上网的历史记录,从窗口被打开的那一刻算起.由于安全方面的考虑,开发人员无法得到用户浏览器的URL,但借由用户访问过的页面列表,可以在不知道实际URL的情况下实现后 ...

  3. 【物联网云端对接-1】 通过HTTP协议与微软Azure IoT hub进行云端通信

    在2015年曾写过一篇文章<从微软build 2015,展望微软未来发展>,提到了微软的Azure和Windows 10 IoT,那算是初次接触微软物联网技术.比较幸运的是在后续的时间里, ...

  4. .NET 十五岁,谈谈我眼中的.NET

    2002年2月13日,第一个版本随着visual studio.net的发布,今天已经走过15年, .net团队写了一篇文章,里面有一个视频,Anders Hejlsberg已是白发苍苍的老人,我也从 ...

  5. Android jni 编程3(对基本类型一维整型数组的操作)总结版

    主要学习资料:黑马程序员的NDK方法使用(生产类库so)              jni编程指南中文版(已上传至博客园) 博主文章(它使用的是VS和eclipse联合开发):http://www.c ...

  6. 关于js 构造 onclick 方法中传递Guid参数问题

    转义字符单双引号用法:\'  与 \" 例如: $.getJSON("data.json", function(data, status, xhr) { $(" ...

  7. php in_array语法

    bool in_array ( mixed $needle , array $haystack [, bool $strict ] ) 返回值为直或假       var_dump(in_array( ...

  8. AngularJS自定义指令之可选参数replace

    replace是一个可选参数,如果设置了这个参数,值必须为true,因为默认值为false.默认值意味着模板会被当作子元素插入到调用此指令的元素内部: 如: <my-directive>& ...

  9. D. Jzzhu and Numbers

    这就是这个题目的意思,真的感觉这个思想是太神奇了,我这种菜逼现在绝壁想不到这样的证明的过程的,还有就是这个题的推道过程,以下思路纯属借鉴卿学姐的,还是自己太菜了,,,, 讲道理这种问题我真的想不到用容 ...

  10. 从C#到TypeScript - Generator

    总目录 从C#到TypeScript - 类型 从C#到TypeScript - 高级类型 从C#到TypeScript - 变量 从C#到TypeScript - 接口 从C#到TypeScript ...