GPU中与CUDA相关的几个概念

标签: cudathread任务编程存储
2012-06-04 12:42 2998人阅读 评论(0) 收藏 举报
分类:
GPU(284) 计算机系统(78) 硬件相关(189) 其它文章(1331)

今天说说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的线程,以不同数据资源执行相同的指令。

thread-->block-->grid:在利用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的资源问题,不要出现对应的资源不够。

GPU中与CUDA相关的几个概念相关推荐

  1. GPU的硬件结构中与CUDA相关的几个概念:thread block grid warp sp sm

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

  2. 《GPU高性能编程CUDA实战》中代码整理

    CUDA架构专门为GPU计算设计了一种全新的模块,目的是减轻早期GPU计算中存在的一些限制,而正是这些限制使得之前的GPU在通用计算中没有得到广泛的应用. 使用CUDA C来编写代码的前提条件包括:( ...

  3. opencv python gpu加速_OpenCV中配置CUDA,实现GPU加速

    1. 查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce  GT630: 3. 从https://developer.nvidia.com/cuda-too ...

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

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

  5. GPU驱动及CUDA安装流程介绍

    安装前准备工作   确认GPU型号和操作系统版本   准备gpu驱动和CUDA软件包   在nvidia官网进行驱动包下载   GPU驱动下载链接    Linux系统均选择 Linux 64-bit ...

  6. 看这篇就够了——ubuntu系统中的cuda cudnn cudatookit及pytorch使用

    一.基本概念 1.1 nvidia独立显卡 独立显卡是指以独立板卡形式存在,可在具备显卡接口的主板上自由插拔的显卡.独立显卡具备单独的显存,不占用系统内存,而且技术上领先于集成显卡,能够提供更好的显示 ...

  7. GPU环境部署:Ubuntu16.04 + GPU Tesla V100 + CUDA + CuDNN

    Ubuntu16.04 + GPU Tesla V100 + CUDA + CuDNN 文章目录 前置条件 1. 基本概念 2. 需要用到的文件 2.1 驱动文件 2.2 CUDA 2.3 CUDNN ...

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

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

  9. GPU高性能编程CUDA实战(二)

    视觉IMAX的第45篇文章 前言 在上一篇文章中: CUDA工程的建立(两种方法) 第一种方法: 这种方法在 接下来实施「三步走战略」配置「附加包含目录」.「附加库目录」以及「附加依赖项」.第一步:配 ...

最新文章

  1. 【.Net】vs2017 自带发布工具 ClickOnce发布包遇到的问题
  2. Python自动化开发 - 字符编码、文件和集合
  3. SCART接口保护 ESD二极管选型
  4. 机器学习-集成之随机森林算法原理及实战
  5. Eclipse下导入外部jar包的3种方式
  6. c#统计字符串中数字字符的个数【C#】
  7. Video在网页和移动端无法自动播放问题??
  8. OpenCV-字典法实现数字识别(尺寸归一化+图像差值)
  9. JavaScript 数据类型梳理
  10. 时间管理--番茄工作法
  11. 《期货大作手风云录》读书笔记
  12. 百度EasyDL实体抽取和关系抽取
  13. python二级考试基础编程历练,临时抱抱佛脚;逢考必过,奥利给!
  14. Java使用jdbc连接sqlserver2000与2005的语句差别
  15. mysql安装完为什么打不开_mysql安装打不开怎么办
  16. 股票量化分析工具QTYX使用攻略代码说明——高速版本地行情源v2.5.1
  17. 基于鲁班算法,重构Luban项目
  18. 20套初级javaweb项目开发案例(适合白小)——计算机毕业设计
  19. MATLAB 的BPSK信号调制
  20. linux下java调用matlab方案

热门文章

  1. powerbi learning: look up table and data table
  2. U3D笔记11:47 2016/11/30-15:15 2016/12/19
  3. ubuntu配置文件对照表
  4. thinkphp源码分析(一)—开门篇
  5. php使用CURL不依赖COOKIEJAR获取COOKIE的方法
  6. 利用btrace在线监控java程序状态
  7. 从锁的原理到构建分布式锁
  8. 如何更改Windows 10锁屏界面超时时间
  9. 2、xen虚拟机的安装
  10. WEB项目中的中文乱码问题