• GPU编程实战 基于Python和CUDA
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

GPU编程实战 基于Python和CUDA

本店经营正版图书 两天左右发货 如果有着急发货的请不要下单

39.95 5.0折 79.9 全新

库存10件

北京房山
认证卖家担保交易快速发货售后保障

作者布莱恩·图奥迈宁(Brian Tuomanen)

出版社人民邮电出版社

出版时间2022-06

版次1

装帧其他

上书时间2024-12-18

北京新华书海图书城

十年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 布莱恩·图奥迈宁(Brian Tuomanen)
  • 出版社 人民邮电出版社
  • 出版时间 2022-06
  • 版次 1
  • ISBN 9787115560919
  • 定价 79.90元
  • 装帧 其他
  • 开本 其他
  • 纸张 胶版纸
  • 页数 244页
  • 字数 303千字
【内容简介】
本书旨在引导读者基于 Python 和CUDA 的 GPU 编程开发高性能的应用程序,先后介绍了为什么要学习 GPU 编程、搭建 GPU编程环境、PyCUDA入门等内容,以及 CUDA 代码的调试与性能分析、通过 Scikit-CUDA 模块使用 CUDA 库、实现深度神经网络、CUDA 性能优化等内容。学完上述内容,读者应能从零开始构建基于 GPU的深度神经网络,甚至能够解决与数据科学和 GPU编程高性能计算相关的问题。
  本书适合对GPU 编程与 CUDA编程感兴趣的读者阅读。读者应掌握必要的基本数学概念,且需要具备一定的 Python编程经验。
【作者简介】
Brian Tuomanen 博士自2014年以来,一直从事CUDA 和GPU 编程方面的工作。他在美国西雅图华盛顿大学(University of Washington)获得了电气工程专业的学士学位,在攻读数学专业的硕士学位之前,从事过软件工程方面的工作。后来,他在哥伦比亚的密苏里大学攻读数学博士学位,在那里与 GPU 编程\"邂逅\"——GPU编程当时主要用于研究科学问题。Tuomanen 博十曾经在美国陆军研究实验室以GPU编程为题发表演讲,后来在美国马里兰州的一家初创公司负责GPU集成和开发方面的工作。目前,他在西雅图担任微软的机器学习专家(Azure CSI)。
【目录】
第 1章 为什么要学习GPU编程 1

1.1 技术要求 2

1.2 并行化与阿姆达尔定律 2

1.2.1 使用阿姆达尔定律 3

1.2.2 Mandelbrot集 5

1.3 对代码进行性能分析 7

1.4 小结 9

1.5 习题 10

第 2章 搭建GPU编程环境 11

2.1 技术要求 12

2.2 确保拥有合适的硬件 12

2.2.1 检查硬件(Linux系统) 13

2.2.2 检查硬件(Windows系统) 14

2.3 安装GPU驱动程序 15

2.3.1 安装GPU驱动程序(Linux系统) 16

2.3.2 安装GPU驱动程序(Windows系统) 17

2.4 搭建C  编程环境 18

2.4.1 设置GCC、Eclipse IDE和图形处理库(Linux系统) 18

2.4.2 设置Visual Studio(Windows系统) 18

2.4.3 安装CUDA Toolkit 20

2.5 为GPU编程设置Python环境 21

2.5.1 安装PyCUDA(Linux系统) 22

2.5.2 创建环境启动脚本(Windows系统) 22

2.5.3 安装PyCUDA(Windows系统) 23

2.5.4 测试PyCUDA 23

2.6 小结 24

2.7 习题 25

第3章 PyCUDA入门 26

3.1 技术要求 26

3.2 查询GPU 27

3.3 使用PyCUDA的gpuarray类 31

3.3.1 使用gpuarray在GPU之间传输数据 31

3.3.2 使用gpuarray进行基本的逐元素算术运算 32

3.4 使用PyCUDA的ElementwiseKernel执行逐元素运算 37

3.4.1 重温Mandelbrot集 40

3.4.2 函数式编程简介 44

3.4.3 并行化的扫描内核函数和规约内核函数简介 45

3.5 小结 47

3.6 习题 47

第4章 内核函数、线程、线程块与网格 49

4.1 技术要求 50

4.2 内核函数 50

4.3 线程、线程块与网格 53

4.4 线程同步与线程通信 60

4.4.1 使用设备函数__syncthreads 60

4.4.2 使用共享内存 63

4.5 并行前缀算法 65

4.5.1 朴素并行前缀算法 66

4.5.2 包含型并行前缀算法与独占型并行前缀算法 69

4.5.3 工作高效型并行前缀算法 69

4.5.4 工作高效型并行前缀算法的实现 71

4.6 小结 74

4.7 习题 74

第5章 流、事件、上下文与并发性 76

5.1 技术要求 77

5.2 CUDA设备同步 77

5.2.1 使用PyCUDA流类 78

5.2.2 通过CUDA流实现并发版本的LIFE 82

5.3 事件 85

5.4 上下文 89

5.4.1 同步当前上下文 90

5.4.2 手动创建上下文 91

5.4.3 主机端多进程与多线程技术 92

5.4.4 实现主机端并发的多上下文 93

5.5 小结 97

5.6 习题 97

第6章 CUDA代码的调试与性能分析 99

6.1 技术要求 100

6.2 在CUDA内核函数中使用printf函数 100

6.3 CUDA C编程简介 106

6.4 利用Nsight IDE开发和调试CUDA C代码 113

6.4.1 在Windows平台上的Visual Studio中使用Nsight 113

6.4.2 在Linux平台中使用Nsight和Eclipse 117

6.4.3 借助Nsight理解CUDA的线程束锁步特性 120

6.5 使用NVIDIA性能分析工具——nvprof与Visual Profiler 122

6.6 小结 124

6.7 习题 125

第7章 通过Scikit-CUDA模块使用CUDA库 126

7.1 技术要求 127

7.2 安装Scikit-CUDA 127

7.3 利用cuBLAS库处理基本线性代数运算 128

7.3.1 利用cuBLAS库处理第 1级AXPY运算 128

7.3.2 其他第 1级cuBLAS函数 130

7.3.3 利用cuBLAS库处理第 2级GEMV运算 131

7.3.4 利用cuBLAS中的第3级GEMM操作测量GPU性能 133

7.4 利用cuFFT库进行快速傅里叶变换 136

7.4.1 一维快速傅里叶变换示例 137

7.4.2 使用FFT进行卷积操作 138

7.4.3 利用cuFFT进行二维卷积 139

7.5 通过Scikit-CUDA使用cuSolver 144

7.5.1 奇异值分解 144

7.5.2 奇异值分解在主成分分析中的应用 146

7.6 小结 147

7.7 习题 148

第8章 CUDA设备函数库与Thrust库 149

8.1 技术要求 150

8.2 cuRAND设备函数库 150

8.3 CUDA Math API 155

8.3.1 定积分概述 155

8.3.2 用蒙特卡罗方法计算定积分 156

8.3.3 编写测试用例 162

8.4 CUDA Thrust库 164

8.5 小结 168

8.6 习题 169

第9章 实现深度神经网络 170

9.1 技术要求 170

9.2 人工神经元与神经网络 171

9.3 softmax层的实现 177

9.4 交叉熵损失函数的实现 179

9.5 序贯网络的实现 180

9.5.1 推理方法的实现 182

9.5.2 梯度下降法 184

9.5.3 数据的规范化和归一化 189

9.6 Iris数据集 190

9.7 小结 192

9.8 习题 193

第 10章 应用编译好的GPU代码 194

10.1 通过Ctypes模块启动编译好的 代码 194

10.2 编译并运行纯PTX代码 201

10.3 为CUDA Driver API编写 包装器 203

10.4 小结 210

10.5 习题 211

第 11章 CUDA性能优化 212

11.1 动态并行性 212

11.2 向量化数据类型与 内存访问 217

11.3 线程安全的原子操作 218

11.4 线程束洗牌 220

11.5 内联PTX汇编 223

11.6 经过优化的数组求和 函数 227

11.7 小结 231

11.8 习题 231

第 12章 未来展望 233

12.1 深入了解CUDA和GPGPU 编程技术 234

12.1.1 多GPU系统 234

12.1.2 集群计算和消息 传递接口 234

12.1.3 OpenCL和 PyOpenCLCUDA 234

12.2 图形领域 235

12.2.1 OpenGL 235

12.2.2 DirectX 12 235

12.2.3 Vulkan 236

12.3 机器学习与计算机视觉 236

12.3.1 基础知识 236

12.3.2 cuDNN 236

12.3.3 Tensorflow与Keras 237

12.3.4 Chainer 237

12.3.5 OpenCV 237

12.4 区块链技术 237

12.5 小结 238

12.6 习题 238

习题提示 239

第 1章 为什么要学习GPU编程 239

第 2章 搭建GPU编程环境 239

第3章 PyCUDA入门 240

第4章 内核函数、线程、线程块与网格 240

第5章 流、事件、上下文与并发性 241

第6章 CUDA代码的调试与性能分析 241

第7章 通过Scikit-CUDA模块使用CUDA库 242

第8章 CUDA设备函数库与Thrust库 242

第9章 实现深度神经网络 243

第 10章 应用编译好的GPU代码 243

第 11章 CUDA性能优化 244

第 12章 未来展望 244
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP