介绍

我们在cpu上做好了准备工作,然后将指令发送给GPU, 在这里我们看到grid为10,block为128,也就说有10个block,每一block有128个thread,

如何分配这些block?
原则

  • 在GPU中一个block是不能拆分到两个SM中
  • 一个SM中的block要满足SM的条件限制

    SM有哪些限制?
    简单有这些,当然还有其他的没有展示,这里数值都是我瞎编的,具体的可以去官网文档查看参数:

    一个block需要哪些资源?
    一个SM能给的资源如上,那么一个block需要哪些资源呢?简单如下:

    分配结果如下:
    可以看到还有4个block没地方搁,不用担心,中间的调度器会一直轮询所有SM的,只要有空闲的位置就会将还没安排的block安排上去。

    block里面所有线程都是同时执行吗?
    在SM中,block继续分割为warp.一个warp为32个thread,共用一套指令,至于为啥是32,这和硬件有关系,比如人家卡里就32个cuda core,那可不是一次就只能执行1个warp(32个线程)。

    warp如何执行?
    好了,到现在为止warp也切割好了,具体执行方式如下:

    这个就不详细解释了,跟CPU调度类似,就是你io耽误了,其他的任务上,你IO结束了,你在继续占有计算资源。

GPU中的SM和warp的关系相关推荐

  1. [原]CUDA中grid、block、thread、warp与SM、SP的关系

    [原]CUDA中grid.block.thread.warp与SM.SP的关系 2015-3-27阅读209 评论0 首先概括一下这几个概念.其中SM(Streaming Multiprocessor ...

  2. GPU中与CUDA相关的几个概念

    GPU中与CUDA相关的几个概念 标签: cudathread任务编程存储 2012-06-04 12:42 2998人阅读 评论(0) 收藏 举报 分类: GPU(284) 计算机系统(78) 硬件 ...

  3. 如何理解GPU中的SIMT(单指令流多线程模型)

    随着设备尺寸逐渐变小,使得时钟频率很难有大的提升,人们开始寻找更有效的架构.为了提高能源效率,需要引入支持向量运算的硬件和减少数据的移动. 当下的架构通常是CPU+GPU的,CPU在未来一段时间不会完 ...

  4. 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据

    在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据 如今,最流行的拍照设备智能手机可以捕获高达4K UHD的图像(3840×2160图像),原始数据超过25 MB.即使 ...

  5. gpu浮点计算能力floaps_基准测试移动 GPU 中的浮点精度 - 第 2 部分

    投稿人:,2013年6月11日 这是有关GPU中浮点质量的一系列博文中的第二篇,我的灵感源自 发表于 的文章.在中,我宣称许多程序员其实并不真正了解浮点数字,也指出如果您准备将它用于比较棘手的东西,那 ...

  6. CUDA学习第二天: GPU核心与SM核心组件

    1. CUDA的内存模型 每个线程有自己的私有本地内存(local memory) , 每个线快有包含共享内存, 可以被线程块中所有线程共享,其声明周期与线程块一致. 此外,所有的线程都可以访问全局内 ...

  7. OpenVX中 graph与node之间的关系,以及在CNN中的定位

    OpenVX中 graph与node之间的关系,以及在CNN中的定位 很多小伙伴都知道,OpenVX是用来处理图像的一组API,核心是kernel函数的实现,OpenVX对于图像处理是调用底层硬件的G ...

  8. vulkan学习_使用vulkan kompute在gpu中进行机器学习和数据处理

    vulkan学习 Machine learning, together with many other advanced data processing paradigms, fits incredi ...

  9. Python中怎样改变集合之间的关系?

    Python中怎样改变集合之间的关系?数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A,B是两个集合,集合关系的操作介绍如下: 交集是指属于集合A且属于集合B的元素所组成的集合, 并集 ...

最新文章

  1. vijos - P1279Leave-绿光(数学归纳法 + python)
  2. R语言使用party包中的ctree函数构建条件推理决策树的流程和步骤、条件推理决策树是传统决策树的一个重要变体、条件推理树的分裂是基于显著性测试而不是熵/纯度/同质性度量来选择分裂
  3. php人民币转换,PHP字符串转换RMB形式数字
  4. 进入Linux单用户模式
  5. 17_android下xmlpull解析
  6. 对象创建过程之二(类加载器)
  7. 支持向量机python代码_Python中的支持向量机SVM的使用(有实例)
  8. Qt:Windows编程—Qt实现进程管理
  9. 【转载】并发操作会带来哪些数据不一致性(数据库)
  10. 编程实现Strassen矩阵乘法
  11. 诹图系列(3): 条形图
  12. Centos6.5+Python2.7 +ffmpeg+opencv2自动安装脚本
  13. 数据库多表查询的几种方法
  14. 计算机考研具体学科准备
  15. 华硕计算机电源已连接未充电,笔记本电池显示“电源已接通,未充电”
  16. 监控之美——Prometheus云原生监控
  17. MVC与MVP的区别
  18. 超简单!只需四步将照片处理成手工素描
  19. 纸质合同为什么要升级为电子合同?区别在哪?
  20. Java的Integer和Integer比较相等

热门文章

  1. 苹果手机改linux,16 岁高中生把 iPhone7 改造成 Linux 服务器
  2. Ubuntu Windows双系统切换技巧
  3. 前方高能:AI读取人脸表情的正确打开方式!
  4. Python Pillow (PIL) Image.save 保存为jpg图片压缩问题
  5. 为马航MH370航班遇难者致哀
  6. [Error]EOL while scanning string literal
  7. Android Transformations分析
  8. 【eNSP】win11解决virtualbox5.2.44无法安装、不兼容的问题
  9. NLP中的对抗训练(附PyTorch实现)
  10. 作为计算机专业学生,最应该学习的课程前五位是什么?