扉页有签名
¥ 10 1.0折 ¥ 99 九品
仅1件
作者[美]库克(Shane Cook) 著;苏统华、李东、李松泽 译
出版社机械工业出版社
出版时间2014-01
版次1
装帧平装
货号3-1
上书时间2024-12-17
《高性能计算系列丛书·CUDA并行程序设计:GPU编程指南》是CUDA并行程序设计领域全面、详实和具专业性的著作之一,由CUDA开发者社区技术总监亲自撰写,英伟达中国首批CUDA官方认证工程师翻译,详实地讲解了CUDA并行程序设计的技术知识点(平台、架构、硬件知识、开发工具和热点技术)和编程方法,包含大量实用代码示例,实践性非常强。
《高性能计算系列丛书·CUDA并行程序设计:GPU编程指南》共分为12章。第1章从宏观上介绍流处理器演变历史。第2章详解GPU并行机制,深入理解串行与并行程序,以辩证地求解问题。第3章讲解CUDA设备及相关的硬件和体系结构,以实现优CUDA程序性能。第4章介绍CUDA开发环境搭建和可用调试环境。第5章介绍与CUDA编程紧密相关的核心概念——网格、线程块与线程,并通过示例说明线程模型与性能的关系。第6章借助实例详细讲解了不同类型内存的工作机制,并指出实践中容易出现的误区。第7章细述多任务的CPU和GPU协同,并介绍多个CPU/GPU编程秘技。第8章介绍如何在应用程序中编写和使用多GPU。第9章详述CUDA编程性能限制因素、分析CUDA代码的工具和技术。第10章介绍编程实践中的库与软件开发工具包。第11章讲解如何设计基于GPU的系统。第12章总结CUDA应用中易犯错误以及应对建议。
ShaneCook,CUDA开发者社区技术总监,有20余年行业经验。当认识到异构系统以及CUDA对于已有串行和并行编程技术的革命性冲击时,创立了CUDA开发者社区(欧洲的咨询公司,专门帮助企业重构代码以充分利用GPU硬件的威力)。专注于高性能软件开发、GPU利用、嵌入式系统,并参与了多个C语言编程标准的建设,包括广泛应用于汽车软件行业的汽车工业软件可靠性联合会C编程规范(MISRASaferC)。他常为德国汽车行业、国防承包行业、北电网络以及福特汽车公司等机构或蓝筹股公司提供专业咨询服务和软件定制开发。
苏统华,博士,英伟达中国首批CUDA官方认证工程师,主要研究领域包括大规模并行计算、模式识别、物联网智能信息处理、智能媒体交互与计算等。2013年,其所开发的CUDA识别算法,在文档分析和识别国际会议(ICDAR'2013)上获得手写汉字识别竞赛的双料冠军。另外,他在手写汉字识别领域建立了里程碑式工作,论文他引约300次;他所建立的HIT-MW库,为全世界100多家科研院所采用;目前负责国家自然科学基金项目2项。著有英文专著《ChineseHandwritingRecognition:AnAlgorithmicPerspective》(德国施普林格出版社),CUDA相关译作2本(机械工业出版社)。现任哈尔滨工业大学软件学院高级讲师、硕士生导师。
马培军,教授、博士生导师、哈尔滨工业大学软件学院院长。20余年行业经验,经验十分丰富。曾游学日本,获日本琦玉大学计算机应用专业硕士和博士学位,并在日本佳能集团工作多年。主要研究方向包括:航天软件工程、智能信息处理与信息融合、图像处理与识别、嵌入式系统仿真等。其主持或参加完成多项国家自然科学基金、国家863项目、国防基础科研和国际合作项目,获省部级二等奖2项,软件著作权3项,申请发明专利2项,在国内外期刊和会议上发表论文100余篇。现任哈尔滨工业大学计算机科学与技术学院航天软件工程研究中心主任、中国宇航学会计算机应用专业委员会委员、日本计算机服务公司IT教育顾问。
致中国读者
译者序
前言
第1章超级计算简史
1.1简介
1.2冯·诺依曼计算机架构
1.3克雷
1.4连接机
1.5Cell处理器
1.6多点计算
1.7早期的GPGPU编程
1.8单核解决方案的消亡
1.9英伟达和CUDA
1.10GPU硬件
1.11CUDA的替代选择
1.11.1OpenCL
1.11.2DirectCompute
1.11.3CPU的替代选择
1.11.4编译指令和库
1.12本章小结
第2章使用GPU理解并行计算
2.1简介
2.2传统的串行代码
2.3串行/并行问题
2.4并发性
2.5并行处理的类型
2.5.1基于任务的并行处理
2.5.2基于数据的并行处理
2.6弗林分类法
2.7常用的并行模式
2.7.1基于循环的模式
2.7.2派生/汇集模式
2.7.3分条/分块
2.7.4分而治之
2.8本章小结
第3章CUDA硬件概述
3.1PC架构
3.2GPU硬件结构
3.3CPU与GPU
3.4GPU计算能力
3.4.1计算能力1.0
3.4.2计算能力1.1
3.4.3计算能力1.2
3.4.4计算能力1.3
3.4.5计算能力2.0
3.4.6计算能力2.1
第4章CUDA环境搭建
4.1简介
4.2在Windows下安装软件开发工具包
4.3VisualStudio
4.3.1工程
4.3.264位用户
4.3.3创建工程
4.4Linux
4.5Mac
4.6安装调试器
4.7编译模型
4.8错误处理
4.9本章小结
第5章线程网格、线程块以及线程
5.1简介
5.2线程
5.2.1问题分解
5.2.2CPU与GPU的不同
5.2.3任务执行模式
5.2.4GPU线程
5.2.5硬件初窥
5.2.6CUDA内核
5.3线程块
5.4线程网格
5.4.1跨幅与偏移
5.4.2X与Y方向的线程索引
5.5线程束
5.5.1分支
5.5.2GPU的利用率
5.6线程块的调度
5.7一个实例——统计直方图
5.8本章小结
第6章CUDA内存处理
6.1简介
6.2高速缓存
6.3寄存器的用法
6.4共享内存
6.4.1使用共享内存排序
6.4.2基数排序
6.4.3合并列表
6.4.4并行合并
6.4.5并行归约
6.4.6混合算法
6.4.7不同GPU上的共享内存
6.4.8共享内存小结
6.5常量内存
6.5.1常量内存高速缓存
6.5.2常量内存广播机制
6.5.3运行时进行常量内存更新
6.6全局内存
6.6.1记分牌
6.6.2全局内存排序
6.6.3样本排序
6.7纹理内存
6.7.1纹理缓存
6.7.2基于硬件的内存获取操作
6.7.3使用纹理的限制
6.8本章小结
第7章CUDA实践之道
7.1简介
7.2串行编码与并行编码
7.2.1CPU与GPU的设计目标
7.2.2CPU与GPU上的最佳算法对比
7.3数据集处理
7.4性能分析
7.5一个使用AES的示例
7.5.1算法
7.5.2AES的串行实现
7.5.3初始内核函数
7.5.4内核函数性能
7.5.5传输性能
7.5.6单个执行流版本
7.5.7如何与CPU比较
7.5.8考虑在其他GPU上运行
7.5.9使用多个流
7.5.10AES总结
7.6本章小结
第8章多CPU和多GPU解决方案
8.1简介
8.2局部性
8.3多CPU系统
8.4多GPU系统
8.5多GPU算法
8.6按需选用GPU
8.7单节点系统
8.8流
8.9多节点系统
8.10本章小结
第9章应用程序性能优化
9.1策略1:并行/串行在GPU/CPU上的问题分解
9.1.1分析问题
9.1.2时间
9.1.3问题分解
9.1.4依赖性
9.1.5数据集大小
9.1.6分辨率
9.1.7识别瓶颈
9.1.8CPU和GPU的任务分组
9.1.9本节小结
9.2策略2:内存因素
9.2.1内存带宽
9.2.2限制的来源
9.2.3内存组织
9.2.4内存访问以计算比率
9.2.5循环融合和内核融合
9.2.6共享内存和高速缓存的使用
9.2.7本节小结
9.3策略3:传输
9.3.1锁页内存
9.3.2零复制内存
9.3.3带宽限制
9.3.4GPU计时
9.3.5重叠GPU传输
9.3.6本节小结
9.4策略4:线程使用、计算和分支
9.4.1线程内存模式
9.4.2非活动线程
9.4.3算术运算密度
9.4.4一些常见的编译器优化
9.4.5分支
9.4.6理解底层汇编代码
9.4.7寄存器的使用
9.4.8本节小结
9.5策略5:算法
9.5.1排序
9.5.2归约
9.5.3本节小结
9.6策略6:资源竞争
9.6.1识别瓶颈
9.6.2解析瓶颈
9.6.3本节小结
9.7策略7:自调优应用程序
9.7.1识别硬件
9.7.2设备的利用
9.7.3性能采样
9.7.4本节小结
9.8本章小结
第10章函数库和SDK
10.1简介
10.2函数库
10.2.1函数库通用规范
10.2.2NPP
10.2.3Thrust
10.2.4CuRAND
10.2.5CuBLAS库
10.3CUDA运算SDK
10.3.1设备查询
10.3.2带宽测试
10.3.3SimpleP2P
10.3.4asyncAPI和cudaOpenMP
10.3.5对齐类型
10.4基于指令的编程
10.5编写自己的内核
10.6本章小结
第11章规划GPU硬件系统
11.1简介
11.2CPU处理器
11.3GPU设备
11.3.1大容量内存的支持
11.3.2ECC内存的支持
11.3.3Tesla计算集群驱动程序
11.3.4更高双精度数学运算
11.3.5大内存总线带宽
11.3.6系统管理中断
11.3.7状态指示灯
11.4PCI-E总线
11.5GeForce板卡
11.6CPU内存
11.7风冷
11.8液冷
11.9机箱与主板
11.10大容量存储
11.10.1主板上的输入/输出接口
11.10.2专用RAID控制器
11.10.3HDSL
11.10.4大容量存储需求
11.10.5联网
11.11电源选择
11.12操作系统
11.12.1Windows
11.12.2Linux
11.13本章小结
第12章常见问题、原因及解决方案
12.1简介
12.2CUDA指令错误
12.2.1CUDA错误处理
12.2.2内核启动和边界检查
12.2.3无效的设备操作
12.2.4volatile限定符
12.2.5计算能力依赖函数
12.2.6设备函数、全局函数和主机函数
12.2.7内核中的流
12.3并行编程问题
12.3.1竞争冒险
12.3.2同步
12.3.3原子操作
12.4算法问题
12.4.1对比测试
12.4.2内存泄漏
12.4.3耗时的内核程序
12.5查找并避免错误
12.5.1你的GPU程序有多少错误
12.5.2分而治之
12.5.3断言和防御型编程
12.5.4调试级别和打印
12.5.5版本控制
12.6为未来的GPU进行开发
12.6.1开普勒架构
12.6.2思考
12.7后续学习资源
12.7.1介绍
12.7.2在线课程
12.7.3教学课程
12.7.4书籍
12.7.5英伟达CUDA资格认证
12.8本章小结
……
— 没有更多了 —
以下为对购买帮助不大的评价