首页>参考读物>计算机科学与技术>软件与程序设计

CUDA高性能并行计算
作者 : [美]杜安?斯托尔蒂(Duane Storti),[土耳其]梅特?尤尔托卢(Mete Yurtoglu) 著
译者 : 苏统华 项文成 李松泽 姚宇鹏 孙博文 译
出版日期 : 2017-02-25
ISBN : 978-7-111-55749-4
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 264
开本 : 16
原书名 : CUDA for Engineers: An Introduction to High-Performance Parallel Computing
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

图书特色

本书可帮助读者亲身实践个人高性能计算。在几年之前需要超级计算机才能完成的任务,现在可以在游戏级计算机上轻松完成。
本书以清晰简明的方式介绍了CUDA C编程的核心知识,始于运行CUDA样例程序,快速引导读者构建自己的代码。自始至终,你可以通过亲手创建、运行和修改书中的示例程序进行体验式教学。书中配备的实践项目可用来帮助加深和巩固读者对CUDA的理解。
本书适合科研工作者、工程师和学生阅读。本书面向的读者不需要专门的GPU或并行计算背景知识,只需拥有少量编程经验即可。本书附录提供了简明的C语言编程指南,以备读者查阅。

本书主要内容包括:
设置你的计算机,准备好运行CUDA程序的环境
理解CUDA的并行模型和扩展CUDA C语言
在CPU和GPU间传输数据
创建二维计算网格
提供支持实时用户交互的CUDA与OpenGL的互操作技术
差分方程的基本模拟执行
利用模板组织线程间的相关计算
探索CUDA共享内存能力,增强性能
三维数据交互:切片法、体绘制法与光线投射法
CUDA函数库实践
CUDA资源和代码库检索技巧

本书撷取的真实应用案例包括:
函数的二维和三维可视化 求解差分方程
查看和处理图像或图像序列 计算内积和质心
求解线性代数方程系统 蒙特卡罗计算

作者简介
杜安·斯托尔蒂(Duane Storti),1984年从康奈尔大学获得理论和应用机械学博士学位,现任教于华盛顿大学西雅图校区机械工程系,从事工程数学、动力学与振动、计算机辅助设计、3D打印以及GPU计算方面的教学和研究工作。
梅特·尤尔托卢(Mete Yurtoglu),2008年获得土耳其伊斯坦布尔海峡大学物理学和机械工程学学士学位。他的研究方向为基于GPU的计算机视觉与机器学习算法。

译者简介
苏统华 博士,哈尔滨工业大学软件学院硕士生导师,GPU研究中心及GPU教育中心负责人,英伟达中国首批CUDA官方认证工程师。主要研究领域包括大规模并行计算、模式识别、物联网大数据智能信息处理、智能媒体交互与计算等。著有英文专著《Chinese Handwriting Recognition: An Algorithmic Perspective》(由德国施普林格出版社出版),并有CUDA相关译著3本(由机械工业出版社出版)。

内容简介
本书由华盛顿大学西雅图校区教授亲笔撰写,英伟达公司CUDA首席架构师Nicholas Wilt促成出版,英伟达中国首批CUDA官方认证工程师翻译。全书以清晰、简明的方式讲解CUDA编程最为核心的内容,包含大量实用代码示例,可帮助读者借助CUDA实现程序加速。
全书共分10章。第0章为本书导读,第1章为启动CUDA编程所需的基础知识,第2章讲解了CUDA并行计算模式,以及需要知道的CUDA API和C语言扩展,之后第3~8章分别讲解了如何并行化距离函数、如何升级距离计算函数、如何使用模板和共享内存、如何解决计算过程中所有线程存在依赖的场景、使用三维网格的并行计算场景和CUDA函数库,第9章提供了一些额外的CUDA资源,供读者参考。书后包括4个附录,分别展示了如何检查计算机是否配有支持CUDA的GPU,如何安装CUDA软件,C语言编程的核心要素,以及CUDA实践技巧:计时、性能分析、错误处理与调试。

专家评论

FORTRAN(盛行于20世纪60年代)是最早允许我们在大型机上编程的语言。之后是BASIC(流行于20世纪80年代)赋予我们为第一批微型计算机编写程序的能力。现在轮到CUDA,让我们可以为超级微型计算机编写程序。
本书介绍的技术能够帮助工程和数学等领域的研究者以超越微机100倍的速度执行计算任务。这使新的计算任务得以完成,也使本书得以成为颠覆传统规则的教程。
—Richard H. Rand,康奈尔大学机械与航空航天工程系教授、数学系教授
本书结构合理,内容实用,能够帮助读者快速体验CUDA并行编程并即时得到结果。本书围绕不同科学和工程问题,展示了GPU编程的魅力。书中提供了优秀的示例程序和项目练习,让人读之愉悦。
—Mark Staveley博士,微软Azure高性能计算高级项目经理
本书名副其实,手把手教授读者基本概念、核心策略、关键术语和典型示例。这些内容有机构成的教学体系以老道而深入的方式介绍高性能计算。本书同时适用于专家和普通读者。
—Joseph M. Iaquinto博士,VA Puget Sound公司研究专家
本书体现的实用性与我为工程师讲授数值方法课程的教学方法具有惊人的一致性。本书将为工程专业的学生以及程序员补充新的数值计算工具箱,使他们能够基于CUDA进行高性能科学计算。对于有一定编程基础的CUDA初学者,本书堪称完美。建议读者遵从作者的建议,尽早好好练习实践项目。践行本书的理论,你将可以熟练应对GPU计算方面的项目,进入CUDA开发者行列。
—Lorena A. Barba,乔治华盛顿大学机械与航空航天工程系副教授

上架指导

计算机\程序设计

封底文字

本书可帮助读者亲身实践个人高性能计算。在几年之前需要超级计算机才能完成的任务,现在可以在游戏级计算机上轻松完成。
本书以清晰简明的方式介绍了CUDA C编程的核心知识,始于运行CUDA样例程序,快速引导读者构建自己的代码。自始至终,你可以通过亲手创建、运行和修改书中的示例程序进行体验式教学。书中配备的实践项目可用来帮助加深和巩固读者对CUDA的理解。
本书适合科研工作者、工程师和学生阅读。本书面向的读者不需要专门的GPU或并行计算背景知识,只需拥有少量编程经验即可。本书附录提供了简明的C语言编程指南,以备读者查阅。

本书主要内容包括:
 设置你的计算机,准备好运行CUDA程序的环境
 理解CUDA的并行模型和扩展CUDA C语言
 在CPU和GPU间传输数据
 创建二维计算网格
 提供支持实时用户交互的CUDA与OpenGL的互操作技术
 差分方程的基本模拟执行
 利用模板组织线程间的相关计算
 探索CUDA共享内存能力,增强性能
 三维数据交互:切片法、体绘制发与光线投射法
 CUDA函数库实践
 CUDA资源和代码库检索技巧

本书撷取的真实应用案例包括:
 函数的二维和三维可视化
 求解差分方程
 查看和处理图像或图像序列
 计算内积和质心
 求解线性代数方程系统
 蒙特卡洛计算

作者简介

[美]杜安?斯托尔蒂(Duane Storti),[土耳其]梅特?尤尔托卢(Mete Yurtoglu) 著:暂无简介

译者简介

苏统华 项文成 李松泽 姚宇鹏 孙博文 译:暂无简介

图书目录

本书赞誉
致谢
第0章 本书导读1
0.1 什么是CUDA1
0.2 学习CUDA的“须知”2
0.3 本书的读者对象3
0.4 学习CUDA的必备3
0.5 本书的组织结构4
0.6 本书体例5
0.7 本书代码6
0.8 用户指南7
0.9 历史沿革8
参考文献9
第1章 起步10
1.1 运行CUDA样例程序10
1.1.1 在Windows下运行CUDA样例程序11
1.1.2 在Linux下运行CUDA样例程序13
1.1.3 估计“加速效果”13
1.2 运行我们自己的串行程序14
1.2.1 dist_v1应用15
1.2.2 dist_v2应用16
1.3 本章小结18
1.4 推荐项目18
第2章 CUDA基础知识19
2.1 CUDA并行模式 19
2.2 需要知道的CUDA API和C语言拓展21
2.3 本章小结23
2.4 推荐项目23
参考文献24
第3章 从循环到网格25
3.1 并行化 dist_v125
3.2 并行化dist_v229
3.3 标准操作流程33
3.4 简化操作流程33
3.4.1 统一内存和托管数组34
3.4.2 使用cudaMallocManaged()实现的距离应用34
3.5 本章小结36
3.6 推荐项目37
参考文献38
第4章 二维网格与交互式图形39
4.1 启动二维计算网格40
4.1.1 二维内核启动的语法41
4.1.2 定义二维内核41
4.1.3 dist_2d43
4.2 通过图形交互实时显示45
4.3 stability应用程序54
4.4 本章小结62
4.5 推荐项目62
参考文献62
第5章 模板与共享内存64
5.1 线程间依赖64
5.2 一维网格上的导数计算66
5.2.1 实现dd_ld_global66
5.2.2 实现dd_ld_shared69
5.2.3 解决二维拉普拉斯方程:heat_2d72
5.2.4 图像边缘锐化:sharpen83
5.3 本章小结96
5.4 推荐项目97
参考文献98
第6章 归约与原子操作99
6.1 全局交互的线程99
6.2 实现parallel_dot100
6.3 计算整体属性:centroid_2d106
6.4 本章小结113
6.5 推荐项目113
参考文献114
第7章 三维数据交互115
7.1 计算三维网格数据:dist_3d117
7.2 查看三维数据并与之交互:vis_3d119
7.2.1 切片法121
7.2.2 体绘制法124
7.2.3 光线投射法124
7.2.4 创建vis_3d应用126
7.3 本章小结139
7.4 推荐项目139
参考文献140
第8章 CUDA函数库实践141
8.1 自定义的与现有的141
8.2 Thrust库143
8.2.1 使用inner_product()计算向量的模144
8.2.2 使用transform()计算距离147
8.2.3 使用generate()、transform()以及reduce()对的值进行估计151
8.3 cuRAND库156
8.4 NPP库158
8.4.1 sharpen_npp159
8.4.2 更多使用NPP进行的图像处理操作163
8.5 线性代数中的cuSOLVER和cuBLAS实践166
8.6 cuDNN库170
8.7 ArrayFire库171
8.8 本章小结171
8.9 推荐项目171
参考文献172
第9章 探索CUDA生态系统174
9.1 主要资源的权威列表174
9.1.1 CUDA空间174
9.1.2 其他的主要网络资源175
9.1.3 在线课程176
9.1.4 CUDA书籍176
9.2 更多资源179
9.2.1 CUDA样例179
9.2.2 CUDA语言和库179
9.2.3 更多的CUDA书籍179
9.3 本章小结180
9.4 推荐项目180
附录A 硬件设置182
附录B 软件设置189
附录C C语言编程须知201
附录D CUDA实践技巧:计时、性能分析、错误处理与调试229

教学资源推荐
作者: (美) Bruce Eckel
作者: [美]布鲁斯·埃克尔(Bruce Eckel) 戴安娜·马什(Dianne Marsh) 著
作者: 陈作聪 苏静 王龙 等编著
作者: [美]本贾尼·斯特劳斯特卢普(Bjarne Stroustrup) 著
参考读物推荐
作者: (美)Fred Long Dhruv Mohindra Robert C. Seacord Dean F. Sutherland David Svoboda 著
作者: (美)Tim Lindholm Frank Yellin Gilad Bracha Alex Buckley 著
作者: 兰小伟 著