当前位置:当前位置:主页 > 计算机电子书 > Python > GPU编程 pdf电子书
GPU编程实战:基于Python和CUDA

GPU编程实战:基于Python和CUDA PDF 全书完整版

  • 更新:2022-06-19
  • 大小:53.7 MB
  • 类别:GPU编程
  • 作者:布莱恩·图奥迈宁
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 学习心得
  • 相关内容

GPU编程实战:基于Python和CUDA》是由人民邮电出版社出版的一本关于GPU编程方面的书籍,作者是布莱恩·图奥迈宁,主要介绍了关于GPU编程、Python、CUDA方面的知识内容,目前在GPU编程类书籍综合评分为:9.6分。

书籍介绍

内容简介

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

本书适合对GPU 编程与 CUDA编程感兴趣的读者阅读。读者应掌握必要的基本数学概念,且需要具备一定的 Python编程经验。

目录

  • 第 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 Toolkit20
  • 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 测试PyCUDA23
  • 2.6 小结24
  • 2.7 习题25
  • 第3章PyCUDA入门26
  • 3.1 技术要求26
  • 3.2 查询GPU27
  • 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 使用设备函数__syncthreads60
  • 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流实现并发版本的LIFE82
  • 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中使用Nsight113
  • 6.4.2 在Linux平台中使用Nsight和Eclipse117
  • 6.4.3 借助Nsight理解CUDA的线程束锁步特性120
  • 6.5 使用NVIDIA性能分析工具——nvprof与Visual Profiler122
  • 6.6 小结124
  • 6.7 习题125
  • 第7章通过Scikit-CUDA模块使用CUDA库126
  • 7.1 技术要求127
  • 7.2 安装Scikit-CUDA127
  • 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使用cuSolver144
  • 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 API155
  • 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和 PyOpenCLCUDA234
  • 12.2 图形领域235
  • 12.2.1OpenGL235
  • 12.2.2DirectX 12235
  • 12.2.3Vulkan236
  • 12.3 机器学习与计算机视觉236
  • 12.3.1基础知识236
  • 12.3.2cuDNN236
  • 12.3.3Tensorflow与Keras237
  • 12.3.4Chainer237
  • 12.3.5OpenCV237
  • 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

资源获取

相关资源

网友留言