- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CUDA入门教程
风辰的CUDA 入门教程
作者:风辰
二零一零年七月二十四日
于中国科学院研究生院青年公寓
基于共同进步、分享的原则,任何个人都可使用此文档,但是本人保留所有权利。
1
目录
风辰的CUDA 入门教程 1
第一章、CUDA 的基本内容3
第一节、CUDA 及 GPU 简介3
第二节、Linux 下 CUDA 开发环境安装3
第三节、CUDA 与fork/join 模式4
第四节、CUDA C 语言5
第五节、计算π6
第六节、编程模式8
第七节、线程层次9
第八节、存储器组织 10
第九节、执行模式 16
第十节、NVIDIA GPU 结构 17
第二章、CUDA 程序优化20
每一节、CUDA 总体优化策略20
第二节、计时器的设计20
第三节、错误处理22
第四节、串行C 程序的优化25
第五节、CUDA程序的优化27
第三章、一些例子30
第一节、 两向量的距离30
第二节、 矩阵与向量乘积32
第三节、 线性方程组的求解35
2
第一章、CUDA 的基本内容
第一节、CUDA 及 GPU 简介
GPU 是图形处理单元 (Graphic Processing Unit) 的简称,最初主要用于图形渲染。自
九十年代开始,GPU 的发展产生了较大的变化,NVIDIA、AMD(ATI)等GPU 生产商敏锐的观察
到GPU 天生的并行性,经过他们对硬件和软件的改进,GPU 的可编程能力不断提高,GPU 通
用计算应运而生。由于GPU 具有比CPU 强大的计算能力(见图1- 1),为科学计算的应用提
供了新的选择。
图1- 1GPU 与CPU 峰值计算能力对比图
由于GPU 拥有比CPU 更强的计算能力,很早就有人想到将GPU 应用到通用计算上,这就
是GPGPU,所谓GPGPU 是指直接使用了图形学的API,将任务映射成纹理的渲染过程,使用
汇编或者高级着色器语言Cg,HLSL 等编写程序,然后通过图形学API 执行(Direct3D 和
OpenGL),这样的开发不仅难度较大,而且难以优化,对开发人员的要求非常高,因此,传
统的GPGPU 计算并没有广泛应用。
2007 年6 月,NVIDIA 公司推出了CUDA (Compute Unified Device Architecture) ,
CUDA 不需要借助图形学API,而是采用了类C 语言进行开发。同时,CUDA 采用了统一处理
架构,降低了编程的难度,使得NVIDIA 相比AMD/ATI 后来居上。相比AMD 的GPU,NVIDIA
GPU 引入了片内共享存储器,提高了效率。这两项改进使CUDA 架构更加适合进行GPU 通用
计算。由于这些特性,CUDA 推出后迅速发展,被应用于石油勘测、天文计算、流体力学模
拟、分子动力学仿真、生物计算、图像处理、音视频编解码等领域。
CUDA 直接采用C/C++编译器作为前端 (如Linux 下的gcc,windows 下的vs),以C/C++
语法为基础设计,因此对熟悉 C 系列语言的程序员来说,CUDA 的语法比较容易掌握。但是
这并不意味着CUDA 容易,整体来说CUDA 是相当难的,难在优化,难在开发出健壮、可扩展
性的程序;难在没有成熟的库和算法以借用。从语言的角度说,CUDA 只对ANSI C 进行了最
小的必要扩
文档评论(0)