中图网文创礼盒,买2个减5元
欢迎光临中图网 请 | 注册
> >
GPU编程实战 基于Python和CUDA

GPU编程实战 基于Python和CUDA

出版社:人民邮电出版社出版时间:2022-06-01
开本: 24cm 页数: 244页
读者评分:4分1条评论
中 图 价:¥55.9(7.0折) 定价  ¥79.9 登录后可看到会员价
加入购物车 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

GPU编程实战 基于Python和CUDA 版权信息

GPU编程实战 基于Python和CUDA 本书特色

适读人群 :有一定Python基础,对GPU感兴趣的读者。1.本书基于Python和CUDA介绍GPU编程2.重点介绍如何通过GPU编程来实现高性能的并行计算3.本书为读者供习题,并以“习题提示”的方式给出解题思路4.异步社区为读者提供配套代码

GPU编程实战 基于Python和CUDA 内容简介

本书旨在引导读者基于Python与CUDA的GPU编程开发高性能的Python应用程序。全书介绍了为什么要学GPU编程、搭建GPU编程环境、PyCUDA基础, CUDA代码的调试与性能分析、通过Scikit-CUDA模块使用CUDA库、实现深度神经网络、CUDA性能优化等内容。学完上述内容, 读者应能从头开始开发基于GPU的深度神经网络, 甚至能够解决与数据科学和GPU编程高性能计算相关的问题。

GPU编程实战 基于Python和CUDA 目录

第 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
展开全部

GPU编程实战 基于Python和CUDA 作者简介

Brian Tuomanen 博士自2014年以来,一直从事CUDA 和GPU 编程方面的工作。他在美国西雅图华盛顿大学(University of Washington)获得了电气工程专业的学士学位,在攻读数学专业的硕士学位之前,从事过软件工程方面的工作。后来,他在哥伦比亚的密苏里大学攻读数学博士学位,在那里与 GPU 编程"邂逅"——GPU编程当时主要用于研究科学问题。Tuomanen 博十曾经在美国陆军研究实验室以GPU编程为题发表演讲,后来在美国马里兰州的一家初创公司负责GPU集成和开发方面的工作。目前,他在西雅图担任微软的机器学习专家(Azure CSI)。

商品评论(1条)
  • 主题:书很好很满意

    书的品相很好。 书的内容再看看,希望能把cuda讲得通俗易懂

    2023/10/20 20:20:00
    读者:ztw***(购买过本书)
书友推荐
编辑推荐
返回顶部
中图网
在线客服