CUDA学习笔记之几个重要概念的理解
来源:互联网 发布:网络yy63094女主播 编辑:程序博客网 时间:2024/05/21 14:56
今天说说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的资源问题,不要出现对应的资源不够。
转载于http://blog.csdn.net/pizi0475/article/details/7630248
- CUDA学习笔记之几个重要概念的理解
- GPU Cuda编程学习过程中遇到的几个重要概念
- cocos2d-x学习笔记—几个重要的概念
- CUDA学习笔记之CUDA初步理解
- 深度学习:几个重要的数学概念
- 几个重要的概念
- 几个重要的概念
- lwip学习笔记之几个重要的数据结构详解
- UCOS 学习笔记之重要概念问答
- Z-Stack协议中几个重要概念的理解
- 机器学习几个重要概念
- CUDA笔记2:概念理解
- lucene的几个重要概念
- Git的几个重要概念
- WPF重要的几个概念:
- 指针的几个重要概念
- C++重要的几个概念
- 学习Android前需要了解的几个重要概念
- Android定位功能(二)
- 一个字符界面的俄罗斯方块
- opengles概览
- 佳能MP258mp259清零软件
- Android使用百度定位SDK方法及错误处理
- CUDA学习笔记之几个重要概念的理解
- 带分数(蓝桥杯JavaB组预赛)
- IsIconic() OnPaint里的用途
- [Java] HttpClient有个古怪的stalecheck选项
- Python 高级专用类方法
- 不合规范的html段落php处理细则
- Android开发:关于Android Settings中的八个问题
- eclipse的bug解决
- Dom 入门