GPU中与CUDA相关的几个概念
GPU中与CUDA相关的几个概念
今天说说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相关的几个概念相关推荐
- GPU的硬件结构中与CUDA相关的几个概念:thread block grid warp sp sm
streaming processor(sp): 最基本的处理单元,streaming processor 最后具体的指令和任务都是在sp上处理的.GPU进行并行计算,也就是很多个sp同时做处理.现在 ...
- 《GPU高性能编程CUDA实战》中代码整理
CUDA架构专门为GPU计算设计了一种全新的模块,目的是减轻早期GPU计算中存在的一些限制,而正是这些限制使得之前的GPU在通用计算中没有得到广泛的应用. 使用CUDA C来编写代码的前提条件包括:( ...
- opencv python gpu加速_OpenCV中配置CUDA,实现GPU加速
1. 查看本机配置,查看显卡类型是否支持NVIDIA GPU,本机显卡为NVIDIA GeForce GT630: 3. 从https://developer.nvidia.com/cuda-too ...
- 在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据
在NVIDIA A100 GPU中使用DALI和新的硬件JPEG解码器快速加载数据 如今,最流行的拍照设备智能手机可以捕获高达4K UHD的图像(3840×2160图像),原始数据超过25 MB.即使 ...
- GPU驱动及CUDA安装流程介绍
安装前准备工作 确认GPU型号和操作系统版本 准备gpu驱动和CUDA软件包 在nvidia官网进行驱动包下载 GPU驱动下载链接 Linux系统均选择 Linux 64-bit ...
- 看这篇就够了——ubuntu系统中的cuda cudnn cudatookit及pytorch使用
一.基本概念 1.1 nvidia独立显卡 独立显卡是指以独立板卡形式存在,可在具备显卡接口的主板上自由插拔的显卡.独立显卡具备单独的显存,不占用系统内存,而且技术上领先于集成显卡,能够提供更好的显示 ...
- 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 ...
- vulkan学习_使用vulkan kompute在gpu中进行机器学习和数据处理
vulkan学习 Machine learning, together with many other advanced data processing paradigms, fits incredi ...
- GPU高性能编程CUDA实战(二)
视觉IMAX的第45篇文章 前言 在上一篇文章中: CUDA工程的建立(两种方法) 第一种方法: 这种方法在 接下来实施「三步走战略」配置「附加包含目录」.「附加库目录」以及「附加依赖项」.第一步:配 ...
最新文章
- 【.Net】vs2017 自带发布工具 ClickOnce发布包遇到的问题
- Python自动化开发 - 字符编码、文件和集合
- SCART接口保护 ESD二极管选型
- 机器学习-集成之随机森林算法原理及实战
- Eclipse下导入外部jar包的3种方式
- c#统计字符串中数字字符的个数【C#】
- Video在网页和移动端无法自动播放问题??
- OpenCV-字典法实现数字识别(尺寸归一化+图像差值)
- JavaScript 数据类型梳理
- 时间管理--番茄工作法
- 《期货大作手风云录》读书笔记
- 百度EasyDL实体抽取和关系抽取
- python二级考试基础编程历练,临时抱抱佛脚;逢考必过,奥利给!
- Java使用jdbc连接sqlserver2000与2005的语句差别
- mysql安装完为什么打不开_mysql安装打不开怎么办
- 股票量化分析工具QTYX使用攻略代码说明——高速版本地行情源v2.5.1
- 基于鲁班算法,重构Luban项目
- 20套初级javaweb项目开发案例(适合白小)——计算机毕业设计
- MATLAB 的BPSK信号调制
- linux下java调用matlab方案