GPU编程实战:基于Python和CUDA

GPU编程实战:基于Python和CUDA

  • 大小:53.7 MB
  • 类型:GPU编程
  • 格式:PDF
  • 出版:人民邮电出版社
  • 作者:布莱恩·图奥迈宁
  • 更新:2022-06-19 09:25:02
vip 免费获取(已有177人参与)
关注公众号免费送书
版权投诉 / 资源反馈(本资源由用户 卢俊雅 投稿)

内容简介 本书旨在引导读者基于 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.

相关资源

  • 《SQL Server 2008学习笔记:日常维护、深入管理、性能优化》源代码

    《SQL Server 2008学习笔记:日常维护、深入管理、性能优化》源代码

    编辑推荐 SQLServer2008是Microsoft公司在数据库领域中非常重要的产品,是关系型数据库的代表产品之一,很多大型数据库应用系统都采用SQLServer作为后台数据库。《SQLServer2008学习笔记:日常维护、深入管理、性能优化》设计了大量的实验,介绍了数据库管理员和开发人员常用的管理、维护和优化SQLServer2008数据库技术。通过阅读《SQLServer2008学习笔记:日常维护、深入管理、性能优化》,读者可以了解SQLServer2008的体系结构、安装过程、数据库管理和配置

    大小:495.8 MBSQL Server配套资源

  • 《PaddlePaddle Fluid 深度学习入门与实战》配套资源

    《PaddlePaddle Fluid 深度学习入门与实战》配套资源

    ★书名:PaddlePaddle Fluid 深度学习入门与实战 ★书号:978-7-115-55539-7 ★简介:本书主要介绍PaddlePaddle Fluid 框架在深度学习领域的应用。内容包括PaddlePaddle的安装,PaddlePaddle的使用方式,PaddlePaddle的各种神经网络模型的构建、训练以及预测,卷积神经网络的使用,循环神经网络的使用,生成对抗网络的搭建和训练,强化学习,模型的保存与使用,迁移学习,VisualDL训练可视化,自定义图像数据集的训练,自定义文本数据集的训

    大小:704.1 MBPaddlePaddle配套资源

  • 《秋叶特训营:高效学习7堂课》配套PPT

    《秋叶特训营:高效学习7堂课》配套PPT

    编辑推荐 秋叶大叔10余年多领域跨行学习经验总结, 深度对标职场人士的学习需求; 全面介绍高效学习者的学霸秘籍; 有效解决低效努力的痛点问题。 阅读《秋叶特训营 高效学习7堂课》,你将获得: 碎片化学习时代的7种高效学习力,36种学习思维; 高效率、可支配、好落地的学习方法; 符合大众学习习惯的大量学习模型、技巧、清单及其他小工具。 内容简介 《秋叶特训营 高效学习7堂课》以7 堂课的形式,系统总结了高效学习者的7 种能力定位力

    大小:429.14 KB高效学习配套资源

  • 《SolidWorks 2018有限元:运动仿真与流场分析自学手册》配套资源

    《SolidWorks 2018有限元:运动仿真与流场分析自学手册》配套资源

    编辑推荐 1.内容专业,本书以SolidWorks 2018中文版为基础,由浅入深地帮助读者掌握软件的有限元、运动仿真和流场分析操作技巧; n 2.案例经典,本书含有大量工程设计项目的典型案例,全方位提高读者实战技能; n 3.资源丰富,本书配有全部实例的源文件,帮助读者快速上手,即学即用;n 4.学习便利,本书封底介绍资源获取方式,文内实例章节附带视频,引导读者高效学习。 内容简介 本书包含SolidWorks 2018 建模设计和高级分析两大部分,以机械工程设计

    大小:1.9 GBSolidWorks配套资源

  • 《机器学习实践指南:案例应用解析》代码及资源

    《机器学习实践指南:案例应用解析》代码及资源

    内容简介 本书是机器学习及数据分析领域不可多得的一本著作,也是为数不多的既有大量实践应用案例又包含算法理论剖析的著作,作者针对机器学习算法既抽象复杂又涉及多门数学学科的特点,力求理论联系实际,始终以算法应用为主线,由浅入深以全新的角度诠释机器学习。 全书分为准备篇、基础篇、统计分析实战篇和机器学习实战篇。准备篇介绍了机器学习的发展及应用前景以及常用科学计算平台,主要包括统计分析语言R、机器学习模块mlpy和

    大小:4.8 MB机器学习配套资源

  • VB入门教程详细教程

    Visual Basic是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。是一种可用于微软自家产品开发的语言。 Visual Basic源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active X控件,用于高效生成类型安全和面向对象的应用程序 。程序员可以轻松的使用VB提供的组件快

    大小:5.51 MBVB教程

  • 离散数学(修订版)

    离散数学(修订版) 课后答案

    本书第一版于1998年出版,是教育部高等学校九五规划教材和面向21世纪课程教材。此次修订在保持原有四部分内容(数理逻辑、集合论、代数结构和图论)的基础上,增加了相当数量的难度不同的练习题,并结合教学需要引入了一部分新的应用实例。 本书被列为普通高等教育十五国家级规划教材。与本书配套设计的网络课程、电子教案和习题辅导用书即将陆续推出。它们的有机配合可以满足不同教学环节的需求,构成全新的立体化系列教材。 本书可作为普通高

    大小:630 KB离散数学课后答案

  • rCore-Tutorial-Book第三版(rCore手册)源码

    rCore手册第3版教程旨在一步一步展示如何从零开始用 Rust 语言写一个基于 RISC-V 架构的类 Unix 内核 。值得注意的是,本项目不仅支持模拟器环境(如 Qemu/terminus 等),还支持在真实硬件平台 Kendryte K210 上运行。 本教程的目标是以简洁的 RISC-V 架构为底层硬件基础,根据上层应用从小到大的需求,按 OS 发展的历史脉络,逐步讲解如何设计并实现满足这些需求的从小到大的多个小操作系统,并在设计实现操作系统的过程中,逐步解析操作系统各种概念与原理

    大小:18.2 MBRust语言

参与送书

相关声明:

学习笔记