网站首页  软件下载  游戏下载  翻译软件  电子书下载  电影下载  电视剧下载  教程攻略

请输入您要查询的图书:

 

书名 CUDA并行程序设计(GPU编程指南)/高性能计算系列丛书
分类 计算机-操作系统
作者 (美)库克
出版社 机械工业出版社
下载
简介
编辑推荐

《CUDA并行程序设计(GPU编程指南)》是一本很出众的CUDA书籍。全书可以分成四个部分。第一部分为背景篇,包括前4章。第3~4章分别介绍了CUDA的硬件架构与计算能力和软件开发配置。第二部分为CUDA基本篇,包括第5~7章。第5、6章依次介绍了CUDA线程抽象模型和内存抽象模型。第三部分为CUDA扩展篇,其中第8、9章面向优化执行性能,而第10章为提升开发生产效率。第8章从充分利用多个硬件设备的角度,讲述了流的使用。相反的,第9章从程序优化角度,给出了CUDA性能调优的全方位指导。第10章介绍了一些常用的函数库和CUDA开发包中提供的优质SDK,为大型软件的快速发布提供了支持。第四部分为CUDA经验篇,包括最后的两章。这两章分别针对硬件系统搭建和软件生产过程中的共性问题提供建议,是作者库克多年CUDA开发经验的总结。

内容推荐

《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应用中易犯错误以及应对建议。

目录

致中国读者

译者序

前言

第1章 超级计算简史

1.1 简介

1.2 冯·诺依曼计算机架构

1.3 克雷

1.4 连接机

1.5 Cell处理器

1.6 多点计算

1.7 早期的GPGPU编程

1.8 单核解决方案的消亡

1.9 英伟达和CUDA

1.10 GPU硬件

1.11 CUDA的替代选择

1.11.1 OpenCL

1.11.2 DirectCompute

1.11.3 CPU的替代选择

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.1 PC架构

3.2 GPU硬件结构

3.3 CPU与GPU

3.4 GPU计算能力

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.3 VisualStudio

4.3.1 工程

4.3.2 64位用户

4.3.3 创建工程

4.4 Linux

4.5 Mac

4.6 安装调试器

4.7 编译模型

4.8 错误处理

4.9 本章小结

第5章 线程网格、线程块以及线程

5.1 简介

5.2 线程

5.2.1 问题分解

5.2.2 CPU与GPU的不同

5.2.3 任务执行模式

5.2.4 GPU线程

5.2.5 硬件初窥

5.2.6 CUDA内核

5.3 线程块

5.4 线程网格

5.4.1 跨幅与偏移

5.4.2 X与Y方向的线程索引

5.5 线程束

5.5.1 分支

5.5.2 GPU的利用率

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.1 CPU与GPU的设计目标

7.2.2 CPU与GPU上的最佳算法对比

7.3 数据集处理

7.4 性能分析

7.5 一个使用AES的示例

7.5.1 算法

7.5.2 AES的串行实现

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.10 AES总结

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.8 CPU和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.4 GPU计时

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.2 NPP

10.2.3 Thrust

10.2.4 CuRAND

10.2.5 CuBLAS库

10.3 CUDA运算SDK

10.3.1 设备查询

10.3.2 带宽测试

10.3.3 SimpleP2P

10.3.4 asyncAPI和cudaOpenMP

10.3.5 对齐类型

10.4 基于指令的编程

10.5 编写自己的内核

10.6 本章小结

第11章 规划GPU硬件系统

11.1 简介

11.2 CPU处理器

11.3 GPU设备

11.3.1 大容量内存的支持

11.3.2 ECC内存的支持

11.3.3 Tesla计算集群驱动程序

11.3.4 更高双精度数学运算

11.3.5 大内存总线带宽

11.3.6 系统管理中断

11.3.7 状态指示灯

11.4 PCI-E总线

11.5 GeForce板卡

11.6 CPU内存

11.7 风冷

11.8 液冷

11.9 机箱与主板

11.10 大容量存储

11.10.1 主板上的输入/输出接口

11.10.2 专用RAID控制器

11.10.3 HDSL

11.10.4 大容量存储需求

11.10.5 联网

11.11 电源选择

11.12 操作系统

11.12.1 Windows

11.12.2 Linux

11.1 3 本章小结

第12章 常见问题、原因及解决方案

12.1 简介

12.2 CUDA指令错误

12.2.1 CUDA错误处理

12.2.2 内核启动和边界检查

12.2.3 无效的设备操作

12.2.4 volatile限定符

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 本章小结

随便看

 

霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。

 

Copyright © 2002-2024 101bt.net All Rights Reserved
更新时间:2025/4/2 11:14:58