当前位置:主页 > 书籍配套资源 > GPU编程配套资源
《GPU高性能编程CUDA实战》示例代码

《GPU高性能编程CUDA实战》示例代码

  • 更新:2022-09-08
  • 大小:3.3 MB
  • 类别:GPU编程
  • 作者:Jason、Sanders;Edward、Kandrot
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

CUDA是用来促进并行程序开发的一种计算架构。它与各种广泛的软件平台一起使用,使得程序员在构建高性能的应用程序的时候,可以借助图形处理单元(GPU)的强大力量。尽管GPU在图形和游戏编程领域应用多年,现在,CUDA使得开发其他领域的应用程序的程序员,也能够使用GPU的宝贵资源。本书由CUDA软件平台团队的两位高级成员撰写,介绍程序员如何利用这一新的技术。作者介绍了CUDA的各个方面,及其高级功能,还介绍了如何使用CUDA C扩展,以及如何编写真正表现出优秀性能的CUDA软件。

并行计算已成为突破摩尔定理局限性的重要研究方向,而GPU强大的并行计算能力也因此吸引了全球广泛的研究兴趣。然而,在实现通用并行计算时,GPU计算模式存在着一些限制。首先,GPU的设计初衷是为了加速应用程序中的图形绘制运算,因此开发人员需要通过OpenGL或者DirectX等API来访问GPU,这不仅要求开发人员掌握一定的图形编程知识,而且要想方设法将通用计算问题转换为图形计算问题。其次,GPU与多核CPU在计算架构上有着很大不同,GPU更注重于数据并行计算,即在不同的数据上并行执行相同的计算,而对并行计算中的互斥性、同步性以及原子性等方面支持不足。这些因素都限制了GPU在通用并行计算中的应用范围。

CUDA架构的出现解决了上述问题。CUDA架构专门为GPU计算设计了一种全新的结构,目的正是为了减轻GPU计算模型中的这些限制。在CUDA架构下,开发人员可以通过CUDA C对GPU编程。CUDA C是对标准C的一种简单扩展,学习和使用起来都非常容易,并且其最大的优势在于不需要开发人员具备图形学知识。

本书的主要内容是介绍如何通过CUDA C来编写在GPU上运行的并行程序。本书首先介绍了CUDA架构的应用背景,并给出了如何配置CUDA C的开发环境。然后,本书通过矢量求和运算、矢量点积运算、光线跟踪、热传导模拟、直方图统计等示例详细介绍了CUDA C的基本语法和使用模式。在这些示例中还穿插介绍了GPU的各种硬件特性及适用环境,例如常量内存、事件、纹理内存、图形互操作性、原子操作、流以及多GPU架构等。
这些示例的构思以及分析过程都很容易理解,它们也是本书最具价值的部分。读者在阅读这些内容时要反复思考,做到融会贯通,举一反三。只要掌握了这些简单的示例,更复杂的问题也能迎刃而解。本书适合所有程序员阅读,只需具备基本的C语言知识即可。最后,本书还给出了CUDA C的其他一些参考资源。
参与本书翻译工作的主要有李杨、吴汉平、徐光景、童胜汉、陈军、胡凯等。由于译者的时间和水平有限,翻译中的疏漏和错误在所难免,还望读者和同行不吝指正。

封面图

目录

  • 译者序
  • 前言
  • 致谢
  • 作者简介
  • 第1章 为什么需要CUDA1
  • 1.1 本章目标2
  • 1.2 并行处理的历史2
  • 1.3 GPU计算的崛起3
  • 1.4 CUDA5
  • 1.5 CUDA的应用6
  • 1.6 本章小结8
  • 第2章 入门9
  • 2.1 本章目标10
  • 2.2 开发环境10
  • 2.3 本章小结14
  • 第3章 CUDA C简介15
  • 3.1 本章目标16
  • 3.2 第一个程序16
  • 3.3 查询设备20
  • 3.4 设备属性的使用23
  • 3.5 本章小结24
  • 第4章 CUDA C并行编程26
  • 4.1 本章目标27
  • 4.2 CUDA并行编程27
  • 4.3 本章小结41
  • 第5章 线程协作42
  • 5.1 本章目标43
  • 5.2 并行线程块的分解43
  • 5.3 共享内存和同步54
  • 5.4 本章小结68
  • 第6章 常量内存与事件69
  • 6.1 本章目标70
  • 6.2 常量内存70
  • 6.3 使用事件来测量性能78
  • 6.4 本章小结83
  • 第7章 纹理内存84
  • 7.1 本章目标85
  • 7.2 纹理内存简介85
  • 7.3 热传导模拟86
  • 7.4 本章小结101
  • 第8章 图形互操作性102
  • 8.1 本章目标103
  • 8.2 图形互操作103
  • 8.3 基于图形互操作性的GPU波纹示例108
  • 8.4 基于图形互操作性的热传导113
  • 8.5 DirectX互操作性118
  • 8.6 本章小结118
  • 第9章 原子性119
  • 9.1 本章目标120
  • 9.2 计算功能集120
  • 9.3 原子操作简介122
  • 9.4 计算直方图124
  • 9.5 本章小结133
  • 第10章 流134
  • 10.1 本章目标135
  • 10.2 页锁定主机内存135
  • 10.3 CUDA流139
  • 10.4 使用单个CUDA流140
  • 10.5 使用多个CUDA流144
  • 10.6 GPU的工作调度机制149
  • 10.7 高效地使用多个CUDA流151
  • 10.8 本章小结152
  • 第11章 多GPU系统上的CUDA C154
  • 11.1 本章目标155
  • 11.2 零拷贝主机内存155
  • 11.3 使用多个GPU162
  • 11.4 可移动的固定内存166
  • 11.5 本章小结170
  • 第12章 后记171
  • 12.1 本章目标172
  • 12.2 CUDA工具172
  • 12.3 参考资料176
  • 12.4 代码资源178
  • 12.5 本章小结179
  • 附录 高级原子操作180

资源下载

资源下载地址1:https://pan.baidu.com/s/1hCH6BQ7wFO1pWSQq2O1y_Q

相关资源

网友留言