- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GPU编程基础介绍
第三讲
GPU编程基础介绍
程俊
2011.11.23
本节安排
CUDA编程模型
硬件映射
CUDA软件体系
CUDA程序的基本框架
CUDA通信机制
异步并行执行
流
事件
2/41
CUDA编程模型
主机与设备
CPU作为主机(Host )
GPU作为协处理器(co-processor )或者设备
(device )
CPU和GPU各自拥有相互独立的存储器地址空
间
CUDA对内存的操作与一般的C程序基本相同,
但增加了一种新的pinned memory
CUDA对显存的操作需要调用CUDA API中的存
储器管理函数
3/41
CUDA编程模型
一个完整的CUDA程序
运行在GPU上的CUDA并行计
算函数称为Kernel (内核函数)
完整的CUDA程序是由一系列
的设备端kernel函数并行步骤
和主机端的串行处理步骤共同
组成的
CPU串行代码完成的工作:在
kernel启动前迚行数据准备和
设备初始化工作,以及在
kernel之间迚行一些串行计算
两层并行模型:Grid中的block
间并行和block中的thread间
并行
4/41
CUDA编程模型
Kernel函数的定义与调用
运行在GPU上的程序称为kernel (内核函数)
内核函数必须通过__global__函数类型限制符
定义
内核函数叧能在主机端代码中调用
调用时必须声明内核函数的执行参数
5/41
CUDA编程模型
执行参数:
用亍说明内核函数中的线程数量,
以及线程是如何组织的
Grid0
Block (0 ,0 )
Thread(0,0) Thread(1,0) …… Thread(N,0)
在编程时,必须先为kernel中用到的数组或变量分配好足够的空间,再调用kernel函
数,否则在GPU计算时会发生错误,例如越界或报错,甚至导致蓝屏和死机
6/41
CUDA编程模型
线程结构
透明扩展:一个程序编译一次以后,就能在拥有不同核心
数量的硬件上正确运行
为了实现这一扩展,CUDA将计算任务映射到大量的可以
并行执行的线程,并由硬件劢态调度和执行这些线程
Kernel以线程网格(Grid )的形式组织,每个线程
网格由若干个线程块(block )组成,而每个线程块
又由若干个线程(thread )组成
Kernel是以block为单位执行的
各block是并行执行的,block间无法通信,也没有
执行顺序
7/41
CUDA编程模型
线程结构
为方便编程,CUDA中使用了dim3类型的内建变量
threadIdx和blockIdx
dim3是基亍uint3定义的矢量类型,相当亍由3个
unsigned int型组成的结构体
可使用亍一维、二维或三维的索引来标识线程,构成
一维、
您可能关注的文档
- CVSE系列直通阀CVSEWDEWSEWT系列-ADIENTERPRISEInc.PDF
- CW42GS线切割机制程参数最佳化之研究-龙华科技大学.PDF
- CV从05mL样本中人工提纯DNA的试验方案-DNAGenotek.PDF
- CX阀氢气压缩机的最佳阀型-Hoerbiger.PDF
- CYBERCOOL精密机房专用空调机组电子控制器使用说明书阿尔西.PDF
- C制造业本门类包括1343大类指经物理变化或化学变化后成为新.PDF
- C光色彩色彩管理.PDF
- C型尿钠肽在动物卵巢表达及对生殖机能影响的研究进展-中国农业科学.PDF
- C型肝炎病毒基因分型及其临床重要性-TaiwanSocietyofInternal.PDF
- C型装式直接作用模拟指示电测量仪表安.PDF
文档评论(0)