Warp

CUDA编程中,warp是调度和运行的基本单元,目前,每个warp包含32个threads。软件逻辑上,程序员的所有thread是并行的,但是,从硬件的角度来说,实际上并不是所有的thread能够在同一时刻执行。

例如:一个block 有128个thread,那么可以分为warp0~warp3,SM同时只执行一个warp,其他warp以就绪,挂起等状态存在。这点类似CPU的线程调度。从这角度看,SM相当于CPU核心,warp相当于CPU中一个线程。

Q:一个SM中可能有128或者192个SP(根据compute capability不同),一个thread需要SP中运行,一个SM同时执行的只有一个warp也就是32个thread,那么这个SM中的其他SP都在空闲?

Warps & Blocks

Warp是GPU运行调度的单位,由SM的warp scheduler负责调度,对程序员来说warp是透明的,我们可以设置的是block。Blocks中包含很多threads,CUDA会将它们组成成warps,如果block所含线程数目不是32(warp size)的整数倍,硬件也会为warp凑足,那么多出的threads所在的warp中,会存在一些inactive的threads,如下图。需要注意的是,即使这部分thread是inactive的,也会消耗SM资源。一个warp中的thread必然在同一个block中。

【CUDA编程】Warp Divergence分析相关推荐

  1. CUDA C编程接口技术分析

    CUDA C编程接口技术分析 编程接口 CUDA C为熟悉C编程语言的用户提供了一个简单的路径,可以方便地编写程序供设备执行. 它由C语言的最小扩展集和运行库组成. 核心语言扩展已经引入:cuda c ...

  2. CUDA编程——GPU架构,由sp,sm,thread,block,grid,warp说起

    目录 1.从硬件看 2.从软件看 3.对应关系 4.SIMT和SIMD 掌握部分硬件知识,有助于程序员编写更好的CUDA程序,提升CUDA程序性能,本文目的是理清sp,sm,thread,block, ...

  3. (CUDA 编程1).CUDA 线程执行模型分析(一)招兵 ------ GPU的革命

    (CUDA 编程1).CUDA 线程执行模型分析(一)招兵 ------ GPU的革命 作者:赵开勇 来源:http://www.hpctech.com/2009/0818/198.html 序:或许 ...

  4. CUDA编程第三章: CUDA执行模型

    前言: 本章内容: 通过配置文件驱动的方法优化内核 理解线程束执行的本质 增大GPU的并行性 掌握网格和线程块的启发式配置 学习多种CUDA的性能指标和事件 了解动态并行与嵌套执行 通过上一章的练习, ...

  5. CUDA编程之快速入门-----GPU加速原理和编程实现

    转载:https://www.cnblogs.com/skyfsm/p/9673960.html CUDA(Compute Unified Device Architecture)的中文全称为计算统一 ...

  6. [转]浅析GPU计算——cuda编程

    在<浅析GPU计算--CPU和GPU的选择>一文中,我们分析了在遇到什么瓶颈时需要考虑使用GPU去进行计算.本文将结合cuda编程来讲解实际应用例子.(转载请指明出于breaksoftwa ...

  7. CUDA 编程学习

    0 简单的CUDA简介 1.简单教程 CUDA C ++只是使用CUDA创建大规模并行应用程序的方法之一.它允许您使用功能强大的C ++编程语言来开发由GPU上运行的数千个并行线程加速的高性能算法.许 ...

  8. cuda编程思想和opencv_gpu图像处理

    CUDA编程 https://github.com/Ewenwan/ShiYanLou/tree/master/CUDA CUDA(Compute Unified Device Architectur ...

  9. CUDA编程 -- 2向量加法

    本文介绍CUDA环境下两个向量的加法运算.代码运行的系统环境为操作系统Ubuntu 16.04 LTS 64位,CUDA版本7.5,GCC版本5.4.0.项目Github下载地址为:CUDA向量加法G ...

最新文章

  1. 线程和进程的自己觉得好的文章以及自我理解
  2. css实现多行文字溢出隐藏——前端小问题不定时更新
  3. MySQL 高可用架构 之 MHA (Centos 7.5 MySQL 5.7.18 MHA 0.58)
  4. 小场景带来大提升:“AI之眼”加持工厂品控流水线,质检质量提升80%
  5. 星空下的痕迹 Jenkins学习(四)----------windows下Publish over FTP插件应用
  6. CSS3展开带弹性动画的手风琴菜单
  7. TMaskEdit组件的简单应用
  8. 常用MYSQL日期查询
  9. 将数字转换为中文表示
  10. html标签 .doc,HTML标签.doc
  11. Android中文API(134) —— Account
  12. Jave_erhui
  13. Matlab实现均值滤波与FPGA进行对比,并采用modelsim波形仿真
  14. Python配置OpenCV
  15. Thinkpad T400 Fan error报错非风扇问题解决一例
  16. 华为路由器:首次登陆配置Console、Telnet登录、Web登录
  17. 紧急疏散(python)
  18. 泰坦尼克号数据分析报告
  19. 令人惊艳的NanoPC-T4(RK3399)作为工作站的初始配置和相关应用
  20. 【TcaplusDB知识库】读取数据示例(TDR表)

热门文章

  1. “libc++_shared.so“ not found 解决
  2. python逗号bug
  3. MXNET学习笔记(二):模型的保存与加载
  4. caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encounteredcaffe
  5. ORA-01504问题
  6. OpenCV中颜色分布直方图及其应用
  7. html+li标签+高度,有时在使用Jquery插入LI元素时,JavaScript不会调整UL元素的高度
  8. java登录注册原理_案例:登录注册实现
  9. c多线程并发处理方式_ElasticSearch 并发的处理方式:锁和版本控制
  10. Maven入门教程(一)