首页 > 图书 > 机械工业出版社

[!--oldtitle--]

基于MATLAB的GPU编程

  • 作者:[希腊]尼古劳斯·普洛斯卡斯(Nikolaos Ploskas) 尼古劳斯·萨马拉斯(Nikolaos Samaras)
  • 翻译:张帆 倪军 李征
  • ISBN:2018040202

    库存:5

图书详情

  • 出版发行:机械工业出版社
  • 责任编辑:迟振春
  • 定  价:99元
  • 印  刷:北京市兆成印刷有限责任公司
  • 开  本:186mm×240mm 1/16
  • 书  号:ISBN 978-7-111-62585-8

图书简介

MATLAB由于数据处理能力强大、编程友好、集成函数功能多等优点在工科领域得到广泛应用,特别是在算法研究、系统原型设计等初期设计阶段成为编程工具的首选。但是MATLAB对于大数据的处理还存在计算效率低的问题,虽然可以通过转化为C语言或者使用内置的并行语句来解决,但仍旧杯水车薪。尽管C语言改写的方式能够取得更好的效率,但是高集成度的MATLAB函数使得改写工作成为一项“浩大”的工程。 MATLAB的GPU计算功能无疑为算法设计人员打开了一扇窗,无论内置函数或者MEX文件等方式均能快速地将现有代码分发至GPU上运行,从而达到一个数量级以上的运行效率提升。因而,对于广大使用MATLAB的读者来说,经过简单的语法学习就能够节省大量的程序运行时间,从而缩短研究的迭代周期和开发的研制周期。本书所提供的代码能够让读者更加方便、快捷地学习到MATLAB的GPU编程方法,并将其应用到自己的工作中。 本书的翻译工作由张帆、倪军、李征负责,参与其中的还有吴优、王云冲、唐嘉昕、赵晨茜等硕士研究生。由于译者的时间和水平有限,翻译中难免存在错误和疏漏,希望得到各位同行和专家的批评指正。 本书是对一系列专业MATLAB参考书的重要补充。很多MATLAB参考书通常将重点放在特定的工程领域,而本书主要针对那些熟悉MATLAB并希望使用多核处理器和GPU并行来提高程序运行速度的用户。近年来,并行计算技术虽然已被超级计算机广泛应用,但是对于普通MATLAB用户来说,还存在一定的技术门槛。现代计算机普遍安装了多核CPU和功能强大的GPU,计算密集型MATLAB程序如果无法使用这些资源进行并行加速,将是一种严重的计算资源浪费。然而,鲜有资料能够详细介绍如何正确地将MATLAB程序运行在GPU上。此外,虽然MATLAB帮助文档中有对并行计算的初步介绍,但是对于专业的并行开发来说还是远远不够的。我相信本书能够填补这一空白。本书详细介绍了MATLAB中的GPU编程,从概述开始讨论了如何使用方便的gpuArray,详细介绍了如何编译CUDA内核并将其集成到MEX文件中,读者可以从由浅入深、循序渐进的讲解中获取知识。本书介绍了很多实例,包括对内存或带宽等实际限制的讨论,使不同工程学科的用户都能够有所收获。针对难以理解和解决的MATLAB错误信息,本书也提供了相应的解决方案。虽然本书没有详细介绍MATLAB性能调优的更多细节,但是对于MATLAB的GPU编程的讨论是非常详细且新颖的。随着GPU编程的普及,这本专业、详细且可读性强的书籍将备受欢迎,成为任何一个想利用GPU将自己的MATLAB程序进行并行化的程序员的必读之作。

图书评价

章节目录

Contents目  录

译者序

推荐序

前言

关于作者

第1章 引言  1

1.1 并行编程  1

1.1.1 并行计算导引  1

1.1.2 并行计算机的类别  4

1.1.3 并行计算机的内存架构  6

1.2 GPU编程  7

1.3 CUDA架构  7

1.4 为什么在MATLAB中进行GPU编程,什么情况下使用GPU编程  11

1.5 本书的组织结构  15

1.6 本章回顾  16

第2章 入门准备  17

2.1 硬件要求  17

2.2 软件要求  19

2.2.1 NVIDIA CUDA 工具包  19

2.2.2 MATLAB  26

2.3 本章回顾  29

第3章 并行计算工具箱  30

3.1 产品描述与目标  30

3.2 并行for循环(parfor)  32

3.3 单程序多数据(spmd)  43

3.4 分布式数组和共分布式数组  47

3.5 交互式并行开发(pmode)  52

3.6 GPU计算  53

3.7 集群和作业调度  53

3.8 本章回顾  57

第4章 基于MATLAB的GPU编程介绍  58

4.1 基于MATLAB的GPU编程特性  58

4.2 GPU数组  59

4.3 基于GPU的MATLAB内置函数  66

4.4 基于GPU的MATLAB逐元素操作  78

4.5 本章回顾  91

第5章 基于MATLAB工具箱的GPU编程  92

5.1 通信系统工具箱  92

5.2 图像处理工具箱  109

5.3 神经网络工具箱  112

5.4 相控阵系统工具箱  131

5.5 信号处理工具箱  136

5.6 统计和机器学习工具箱  137

5.7 本章回顾  142

第6章 多GPU并行  143

6.1 在指定GPU设备上定义和运行代码  143

6.2 多GPU运算举例  150

6.3 本章回顾  166

第7章 运行CUDA或PTX代码  168

7.1 CUDA C编程简介  168

7.2 在GPU上通过MATLAB运行CUDA或PTX代码的步骤  172

7.3 示例:向量加法  180

7.4 示例:矩阵乘法  182

7.5 本章回顾  185

第8章 包含CUDA代码的MATLAB MEX函数  186

8.1 MATLAB MEX文件简介  186

8.2 在GPU上执行MATLAB MEX函数的步骤  191

8.3 示例:向量加法  198

8.4 示例:矩阵乘法  201

8.5 本章回顾  204

第9章 CUDA加速库  205

9.1 引言  205

9.2 cuBLAS  206

9.3 cuFFT  210

9.4 cuRAND  213

9.5 cuSOLVER  216

9.6 cuSPARSE  219

9.7 NPP  223

9.8 Thrust  227

9.9 本章回顾  229

第10章 代码分析与GPU性能提升  230

10.1 MATLAB分析  230

10.2 CUDA分析  242

10.3 提升GPU性能的最佳实践  246

10.4 本章回顾  251

参考文献  252