GPU的硬件结构,也不是具体的硬件结构,就是与CUDA相关的几个概念:thread,block,grid,warp,sp,sm。

sp: 最基本的处理单元,streaming processor  最后具体的指令和任务都是在sp上处理的。GPU进行并行计算,也就是很多个sp同时做处理

sm:多个sp加上其他的一些资源组成一个sm,  streaming multiprocessor. 其他资源也就是存储资源,共享内存,寄储器等。

warp:GPU执行程序时的调度单位,目前cuda的warp的大小为32,同在一个warp的线程,以不同数据资源执行相同的指令。

grid、block、thread:在利用cuda进行编程时,一个grid分为多个block,而一个block分为多个thread.其中任务划分到是否影响最后的执行效果。划分的依据是任务特性和

GPU本身的硬件特性。

下面几张硬件结构简图 便于理解(图片来源于网上)

以上两图可以清晰地表示出sm与sp的关系。

此图反应了warp作为调度单位的作用,每次GPU调度一个warp里的32个线程执行同一条指令,其中各个线程对应的数据资源不同。

上图是一个warp排程的例子。

一个sm只会执行一个block里的warp,当该block里warp执行完才会执行其他block里的warp。

进行划分时,最好保证每个block里的warp比较合理,那样可以一个sm可以交替执行里面的warp,从而提高效率,此外,在分配block时,要根据GPU的sm个数,分配出合理的

block数,让GPU的sm都利用起来,提利用率。分配时,也要考虑到同一个线程block的资源问题,不要出现对应的资源不够。

【CUDA学习】GPU硬件结构相关推荐

  1. CUDA学习:GPU硬件连接模型

    CUDA学习:GPU硬件连接模型 一.基本的CPU与GPU连接模型 CPU与GPU之间的连接是通过PCI-Express总线进行连接的.GPU不是一个独立运行的平台而是CPU的协处理器.因此,GPU必 ...

  2. GPU硬件结构和编程模型(源于nvidia的CUDA文档)

    GPU的硬件结构 GPU通过一个可扩展的多线程流式多处理器(SMs)构建.一个multiprocessor可以在同一时间处理上百个线程.为了管理这些线程,使用一个特殊的结构SIMT.利用单线程中指令级 ...

  3. GPU硬件结构和程序具体参数设置

    目录 1.CUDA程序Thread的基本结构 3.单指令多线程架构(SIMT, Single Instruction Multi Thread) 4.硬件多线程(Hardward Multithrea ...

  4. CUDA笔记--GPU的结构与SM(流处理器)结构

    GPU的结构简单的可以分为: 一个连接GPU和PCIe总线的主机接口: 0~2个复制引擎: 一个连接GPU与GPU内存设备的DRAM接口: 一定数目的TPC或者GPC(纹理处理集群或图形处理集群),每 ...

  5. CUDA GPU内存结构

    了解CUDA编程首先必不可少的,需要熟悉英伟达GPU的内存分布,如下图: 整体内存结构按照层次划分,和OpenCL类似: SM:流处理器簇,为GPU的对小硬件调度单位,一次性可以调度多个SP SP:G ...

  6. CUDA和cuDNN到底是啥关系?(cuDNN是基于CUDA的深度学习GPU加速库)

    1.什么是CUDA CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台. CUDA是一种由NVIDIA推出的通用并行计算架构,该架构 ...

  7. 学习型红外遥控器硬件结构说明

    本篇文章上接:智能家居中红外遥控芯片分析比较 2 硬件结构  学习型红外遥控器由红外一体化接收电路. 反相器.温度传感器.AT89C52单片机.红外发送电路.E PROM存储器.键盘及 LCD显示器和 ...

  8. Linux驱动学习--linux以太网驱动及硬件结构介绍(结合gmac项目分析)

    目录 1.引言 2.以太网硬件结构 3.以太网驱动分析(结合gmac项目) 3.1 dts节点分析 3.2 gmac驱动源码分析(open 收发包机制简要分析) 一.引言 最近在Android项目中, ...

  9. A100 GPU硬件架构

    A100 GPU硬件架构 NVIDIA GA100 GPU由多个GPU处理群集(GPC),纹理处理群集(TPC),流式多处理器(SM)和HBM2内存控制器组成. GA100 GPU的完整实现包括以下单 ...

最新文章

  1. 【原】自定义UINavigationItem的两种方法以及相应的隐藏方法
  2. cout的输出格式初探
  3. Android解析WindowManagerService(二)WMS的重要成员和Window的添加过程
  4. 利用公众号 + WeRoBot开发一款AI应用
  5. pop客户机程序流程图_基于.NET的在线考试系统的设计与实现
  6. Linux中的history命令
  7. [SCOI2014]方伯伯的OJ
  8. linux xps 13 wifi,XPS13-9350安装linux以及网卡连接失败修复的临时方案
  9. C++set容器-查找和统计
  10. 2022国内低代码平台厂商排行榜—经典收藏
  11. 并查集 路径压缩(具体解释)
  12. python自动qq群发_用Python自动办公,做职场高手
  13. Python 快速验证代理IP是否有效
  14. 阿里巴巴矢量图标库的使用
  15. html 怎么转换,html怎么转换成word?
  16. 安卓逆向之某瓜数据app签名sign破解
  17. 安装配置MySQL5.7详细教程
  18. [有源滤波器]Sallen-key开关电容电路(二阶低通滤波器)
  19. 中国SaaS驶入「2.0时代」
  20. HDU4622 Reincarnation

热门文章

  1. tomcat启动卡死在: Initializing Spring root WebApplicationContext的解决办法
  2. 双线路切换-冗余备份实验
  3. Linux page allocation failure 的问题处理 - zone_reclaim_mode
  4. DES/AES、SM4、RSA、SM2、SM3
  5. SQL server(MSSQL)客户端工具登录数据库的两种命令行登录方式
  6. iptables基础知识.详解
  7. PHP替换字符串函数strtr()和str_replace()
  8. Android应用资源---布局资源类型(Layout)
  9. php实现基于shmop扩展的数据缓存
  10. c#:使用using关键字自动释放资源未必一定就会有明显好处