GPU编程实战 基于Python和CUDA python编程入门零基础自学教程 程序设计*性能计算并行计算
¥59.90
运费: | ¥ 0.00-20.00 |
商品详情
书名:GPU编程实战:基于Python和CUDA
定*:79.9
ISBN:9787**55609*9
作者:布莱恩·图奥迈宁
版次:第*版
出版时间:2022-06
内容提要:
本书旨在引导读者基于 Python 和CUDA 的 GPU 编程开发*性能的应用程序,先后介绍了为什么要学习 GPU 编程、搭建 GPU编程环境、PyCUDA入门等内容,以及 CUDA 代码的调试与性能分析、通过 Scikit-CUDA 模块使用 CUDA 库、实现深度*经网络、CUDA 性能*化等内容。学完上述内容,读者应能从零开始构建基于 GPU的深度*经网络,甚*能够解决与数据科学和 GPU编程*性能计算相关的问题。 本书适合对GPU 编程与 CUDA编程感兴趣的读者阅读。读者应掌握*要的基本数学概念,且需要具备*定的 Python编程经验。
作者简介:
Brian Tuomanen 博士自20*4年以来,*直从事CUDA 和GPU 编程方面的工作。他在美*西雅图华盛顿大学(University of Washington)获得了电气工程*业的学士学位,在攻读数学*业的硕士学位之前,从事过软件工程方面的工作。后来,他在哥伦比亚的密苏里大学攻读数学博士学位,在那里与 GPU 编程"邂逅"——GPU编程当时主要用于研究科学问题。Tuomanen 博十曾经在美*陆军研究实验室以GPU编程为题发表演讲,后来在美*马里兰州的*家初*公司负责GPU集成和开发方面的工作。目前,他在西雅图担任微软的机器学习*家(Azure CSI)。
目录:
第 *章 为什么要学习GPU编程 *
*.* 技术要求 2
*.2 并行化与阿姆达尔定律 2
*.2.* 使用阿姆达尔定律 3
*.2.2 Mandelbrot集 5
*.3 对代码进行性能分析 7
*.4 小结 9
*.5 习题 *0
第 2章 搭建GPU编程环境 **
2.* 技术要求 *2
2.2 确*拥有合适的硬件 *2
2.2.* 检查硬件(Linux系统) *3
2.2.2 检查硬件(Windows系统) *4
2.3 安装GPU驱动程序 *5
2.3.* 安装GPU驱动程序(Linux系统) *6
2.3.2 安装GPU驱动程序(Windows系统) *7
2.4 搭建C++编程环境 *8
2.4.* 设置GCC、Eclipse IDE和图形处理库(Linux系统) *8
2.4.2 设置Visual Studio(Windows系统) *8
2.4.3 安装CUDA Toolkit 20
2.5 为GPU编程设置Python环境 2*
2.5.* 安装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.* 技术要求 26
3.2 查询GPU 27
3.3 使用PyCUDA的gpuarray类 3*
3.3.* 使用gpuarray在GPU之间传输数据 3*
3.3.2 使用gpuarray进行基本的逐元素算术运算 32
3.4 使用PyCUDA的ElementwiseKernel执行逐元素运算 37
3.4.* 重温Mandelbrot集 40
3.4.2 函数式编程简介 44
3.4.3 并行化的扫描内核函数和规约内核函数简介 45
3.5 小结 47
3.6 习题 47
第4章 内核函数、线程、线程块与网格 49
4.* 技术要求 50
4.2 内核函数 50
4.3 线程、线程块与网格 53
4.4 线程同步与线程通信 60
4.4.* 使用设备函数__syncthreads 60
4.4.2 使用共享内存 63
4.5 并行前缀算法 65
4.5.* 朴素并行前缀算法 66
4.5.2 *含型并行前缀算法与*占型并行前缀算法 69
4.5.3 工作*效型并行前缀算法 69
4.5.4 工作*效型并行前缀算法的实现 7*
4.6 小结 74
4.7 习题 74
第5章 流、事件、上下文与并发性 76
5.* 技术要求 77
5.2 CUDA设备同步 77
5.2.* 使用PyCUDA流类 78
5.2.2 通过CUDA流实现并发版本的LIFE 82
5.3 事件 85
5.4 上下文 89
5.4.* 同步当前上下文 90
5.4.2 手动*建上下文 9*
5.4.3 主机端多进程与多线程技术 92
5.4.4 实现主机端并发的多上下文 93
5.5 小结 97
5.6 习题 97
第6章 CUDA代码的调试与性能分析 99
6.* 技术要求 *00
6.2 在CUDA内核函数中使用printf函数 *00
6.3 CUDA C编程简介 *06
6.4 利用Nsight IDE开发和调试CUDA C代码 **3
6.4.* 在Windows平台上的Visual Studio中使用Nsight **3
6.4.2 在Linux平台中使用Nsight和Eclipse **7
6.4.3 借助Nsight理解CUDA的线程束锁步*性 *20
6.5 使用NVIDIA性能分析工具——nvprof与Visual Profiler *22
6.6 小结 *24
6.7 习题 *25
第7章 通过Scikit-CUDA模块使用CUDA库 *26
7.* 技术要求 *27
7.2 安装Scikit-CUDA *27
7.3 利用cuBLAS库处理基本线性代数运算 *28
7.3.* 利用cuBLAS库处理第 *级AXPY运算 *28
7.3.2 其他第 *级cuBLAS函数 *30
7.3.3 利用cuBLAS库处理第 2级GEMV运算 *3*
7.3.4 利用cuBLAS中的第3级GEMM操作测量GPU性能 *33
7.4 利用cuFFT库进行快速傅里叶变换 *36
7.4.* *维快速傅里叶变换示例 *37
7.4.2 使用FFT进行卷积操作 *38
7.4.3 利用cuFFT进行二维卷积 *39
7.5 通过Scikit-CUDA使用cuSolver *44
7.5.* 奇异值分解 *44
7.5.2 奇异值分解在主成分分析中的应用 *46
7.6 小结 *47
7.7 习题 *48
第8章 CUDA设备函数库与Thrust库 *49
8.* 技术要求 *50
8.2 cuRAND设备函数库 *50
8.3 CUDA Math API *55
8.3.* 定积分概述 *55
8.3.2 用蒙*卡罗方法计算定积分 *56
8.3.3 编写测试用例 *62
8.4 CUDA Thrust库 *64
8.5 小结 *68
8.6 习题 *69
第9章 实现深度*经网络 *70
9.* 技术要求 *70
9.2 人工*经元与*经网络 *7*
9.3 softmax层的实现 *77
9.4 交叉熵损失函数的实现 *79
9.5 序贯网络的实现 *80
9.5.* 推理方法的实现 *82
9.5.2 梯度下降法 *84
9.5.3 数据的规范化和归*化 *89
9.6 Iris数据集 *90
9.7 小结 *92
9.8 习题 *93
第 *0章 应用编译好的GPU代码 *94
*0.* 通过Ctypes模块启动编译好的 代码 *94
*0.2 编译并运行纯PTX代码 20*
*0.3 为CUDA Driver API编写 *装器 203
*0.4 小结 2*0
*0.5 习题 2**
第 **章 CUDA性能*化 2*2
**.* 动态并行性 2*2
**.2 向量化数据类型与 内存访问 2*7
**.3 线程*的原子操作 2*8
**.4 线程束洗牌 220
**.5 内联PTX汇编 223
**.6 经过*化的数组求和 函数 227
**.7 小结 23*
**.8 习题 23*
第 *2章 未来展望 233
*2.* 深入了解CUDA和GPGPU 编程技术 234
*2.*.* 多GPU系统 234
*2.*.2 集群计算和消息 传递接口 234
*2.*.3 OpenCL和 PyOpenCLCUDA 234
*2.2 图形*域 235
*2.2.* OpenGL 235
*2.2.2 DirectX *2 235
*2.2.3 Vulkan 236
*2.3 机器学习与计算机视觉 236
*2.3.* 基础知识 236
*2.3.2 cuDNN 236
*2.3.3 Tensorflow与Keras 237
*2.3.4 Chainer 237
*2.3.5 OpenCV 237
*2.4 区块链技术 237
*2.5 小结 238
*2.6 习题 238
习题提示 239
第 *章 为什么要学习GPU编程 239
第 2章 搭建GPU编程环境 239
第3章 PyCUDA入门 240
第4章 内核函数、线程、线程块与网格 240
第5章 流、事件、上下文与并发性 24*
第6章 CUDA代码的调试与性能分析 24*
第7章 通过Scikit-CUDA模块使用CUDA库 242
第8章 CUDA设备函数库与Thrust库 242
第9章 实现深度*经网络 243
第 *0章 应用编译好的GPU代码 243
第 **章 CUDA性能*化 244
第 *2章 未来展望 244
定*:79.9
ISBN:9787**55609*9
作者:布莱恩·图奥迈宁
版次:第*版
出版时间:2022-06
内容提要:
本书旨在引导读者基于 Python 和CUDA 的 GPU 编程开发*性能的应用程序,先后介绍了为什么要学习 GPU 编程、搭建 GPU编程环境、PyCUDA入门等内容,以及 CUDA 代码的调试与性能分析、通过 Scikit-CUDA 模块使用 CUDA 库、实现深度*经网络、CUDA 性能*化等内容。学完上述内容,读者应能从零开始构建基于 GPU的深度*经网络,甚*能够解决与数据科学和 GPU编程*性能计算相关的问题。 本书适合对GPU 编程与 CUDA编程感兴趣的读者阅读。读者应掌握*要的基本数学概念,且需要具备*定的 Python编程经验。
作者简介:
Brian Tuomanen 博士自20*4年以来,*直从事CUDA 和GPU 编程方面的工作。他在美*西雅图华盛顿大学(University of Washington)获得了电气工程*业的学士学位,在攻读数学*业的硕士学位之前,从事过软件工程方面的工作。后来,他在哥伦比亚的密苏里大学攻读数学博士学位,在那里与 GPU 编程"邂逅"——GPU编程当时主要用于研究科学问题。Tuomanen 博十曾经在美*陆军研究实验室以GPU编程为题发表演讲,后来在美*马里兰州的*家初*公司负责GPU集成和开发方面的工作。目前,他在西雅图担任微软的机器学习*家(Azure CSI)。
目录:
第 *章 为什么要学习GPU编程 *
*.* 技术要求 2
*.2 并行化与阿姆达尔定律 2
*.2.* 使用阿姆达尔定律 3
*.2.2 Mandelbrot集 5
*.3 对代码进行性能分析 7
*.4 小结 9
*.5 习题 *0
第 2章 搭建GPU编程环境 **
2.* 技术要求 *2
2.2 确*拥有合适的硬件 *2
2.2.* 检查硬件(Linux系统) *3
2.2.2 检查硬件(Windows系统) *4
2.3 安装GPU驱动程序 *5
2.3.* 安装GPU驱动程序(Linux系统) *6
2.3.2 安装GPU驱动程序(Windows系统) *7
2.4 搭建C++编程环境 *8
2.4.* 设置GCC、Eclipse IDE和图形处理库(Linux系统) *8
2.4.2 设置Visual Studio(Windows系统) *8
2.4.3 安装CUDA Toolkit 20
2.5 为GPU编程设置Python环境 2*
2.5.* 安装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.* 技术要求 26
3.2 查询GPU 27
3.3 使用PyCUDA的gpuarray类 3*
3.3.* 使用gpuarray在GPU之间传输数据 3*
3.3.2 使用gpuarray进行基本的逐元素算术运算 32
3.4 使用PyCUDA的ElementwiseKernel执行逐元素运算 37
3.4.* 重温Mandelbrot集 40
3.4.2 函数式编程简介 44
3.4.3 并行化的扫描内核函数和规约内核函数简介 45
3.5 小结 47
3.6 习题 47
第4章 内核函数、线程、线程块与网格 49
4.* 技术要求 50
4.2 内核函数 50
4.3 线程、线程块与网格 53
4.4 线程同步与线程通信 60
4.4.* 使用设备函数__syncthreads 60
4.4.2 使用共享内存 63
4.5 并行前缀算法 65
4.5.* 朴素并行前缀算法 66
4.5.2 *含型并行前缀算法与*占型并行前缀算法 69
4.5.3 工作*效型并行前缀算法 69
4.5.4 工作*效型并行前缀算法的实现 7*
4.6 小结 74
4.7 习题 74
第5章 流、事件、上下文与并发性 76
5.* 技术要求 77
5.2 CUDA设备同步 77
5.2.* 使用PyCUDA流类 78
5.2.2 通过CUDA流实现并发版本的LIFE 82
5.3 事件 85
5.4 上下文 89
5.4.* 同步当前上下文 90
5.4.2 手动*建上下文 9*
5.4.3 主机端多进程与多线程技术 92
5.4.4 实现主机端并发的多上下文 93
5.5 小结 97
5.6 习题 97
第6章 CUDA代码的调试与性能分析 99
6.* 技术要求 *00
6.2 在CUDA内核函数中使用printf函数 *00
6.3 CUDA C编程简介 *06
6.4 利用Nsight IDE开发和调试CUDA C代码 **3
6.4.* 在Windows平台上的Visual Studio中使用Nsight **3
6.4.2 在Linux平台中使用Nsight和Eclipse **7
6.4.3 借助Nsight理解CUDA的线程束锁步*性 *20
6.5 使用NVIDIA性能分析工具——nvprof与Visual Profiler *22
6.6 小结 *24
6.7 习题 *25
第7章 通过Scikit-CUDA模块使用CUDA库 *26
7.* 技术要求 *27
7.2 安装Scikit-CUDA *27
7.3 利用cuBLAS库处理基本线性代数运算 *28
7.3.* 利用cuBLAS库处理第 *级AXPY运算 *28
7.3.2 其他第 *级cuBLAS函数 *30
7.3.3 利用cuBLAS库处理第 2级GEMV运算 *3*
7.3.4 利用cuBLAS中的第3级GEMM操作测量GPU性能 *33
7.4 利用cuFFT库进行快速傅里叶变换 *36
7.4.* *维快速傅里叶变换示例 *37
7.4.2 使用FFT进行卷积操作 *38
7.4.3 利用cuFFT进行二维卷积 *39
7.5 通过Scikit-CUDA使用cuSolver *44
7.5.* 奇异值分解 *44
7.5.2 奇异值分解在主成分分析中的应用 *46
7.6 小结 *47
7.7 习题 *48
第8章 CUDA设备函数库与Thrust库 *49
8.* 技术要求 *50
8.2 cuRAND设备函数库 *50
8.3 CUDA Math API *55
8.3.* 定积分概述 *55
8.3.2 用蒙*卡罗方法计算定积分 *56
8.3.3 编写测试用例 *62
8.4 CUDA Thrust库 *64
8.5 小结 *68
8.6 习题 *69
第9章 实现深度*经网络 *70
9.* 技术要求 *70
9.2 人工*经元与*经网络 *7*
9.3 softmax层的实现 *77
9.4 交叉熵损失函数的实现 *79
9.5 序贯网络的实现 *80
9.5.* 推理方法的实现 *82
9.5.2 梯度下降法 *84
9.5.3 数据的规范化和归*化 *89
9.6 Iris数据集 *90
9.7 小结 *92
9.8 习题 *93
第 *0章 应用编译好的GPU代码 *94
*0.* 通过Ctypes模块启动编译好的 代码 *94
*0.2 编译并运行纯PTX代码 20*
*0.3 为CUDA Driver API编写 *装器 203
*0.4 小结 2*0
*0.5 习题 2**
第 **章 CUDA性能*化 2*2
**.* 动态并行性 2*2
**.2 向量化数据类型与 内存访问 2*7
**.3 线程*的原子操作 2*8
**.4 线程束洗牌 220
**.5 内联PTX汇编 223
**.6 经过*化的数组求和 函数 227
**.7 小结 23*
**.8 习题 23*
第 *2章 未来展望 233
*2.* 深入了解CUDA和GPGPU 编程技术 234
*2.*.* 多GPU系统 234
*2.*.2 集群计算和消息 传递接口 234
*2.*.3 OpenCL和 PyOpenCLCUDA 234
*2.2 图形*域 235
*2.2.* OpenGL 235
*2.2.2 DirectX *2 235
*2.2.3 Vulkan 236
*2.3 机器学习与计算机视觉 236
*2.3.* 基础知识 236
*2.3.2 cuDNN 236
*2.3.3 Tensorflow与Keras 237
*2.3.4 Chainer 237
*2.3.5 OpenCV 237
*2.4 区块链技术 237
*2.5 小结 238
*2.6 习题 238
习题提示 239
第 *章 为什么要学习GPU编程 239
第 2章 搭建GPU编程环境 239
第3章 PyCUDA入门 240
第4章 内核函数、线程、线程块与网格 240
第5章 流、事件、上下文与并发性 24*
第6章 CUDA代码的调试与性能分析 24*
第7章 通过Scikit-CUDA模块使用CUDA库 242
第8章 CUDA设备函数库与Thrust库 242
第9章 实现深度*经网络 243
第 *0章 应用编译好的GPU代码 243
第 **章 CUDA性能*化 244
第 *2章 未来展望 244
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...