图书介绍

加速MATLAB编程指南 CUDA实现PDF|Epub|txt|kindle电子书版本网盘下载

加速MATLAB编程指南 CUDA实现
  • 赵地著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302493174
  • 出版时间:2018
  • 标注页数:202页
  • 文件大小:20MB
  • 文件页数:221页
  • 主题词:Matlab软件-程序设计-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

加速MATLAB编程指南 CUDA实现PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 绪论1

1.1 MATLAB程序的加速1

1.2 MATLAB程序加速的可能途径2

1.2.1 基于多核CPU的MATLAB程序加速2

1.2.2 基于大内存的MATLAB程序加速3

1.2.3 基于英伟达公司GPU的MATLAB程序加速3

1.2.4 基于AMD公司GPU的MATLAB程序加速4

1.2.5 基于Intel公司Xeon Phi的MATLAB程序加速4

1.3 MATLAB程序加速的度量4

1.4 基于GPU计算的MATLAB程序的编制5

1.4.1 并行计算工具箱简介6

1.4.2 CUDA库6

1.4.3 CUDA编程6

第2章 MATLAB程序的性能评估7

2.1 bench()函数8

2.2 tic()函数/toc()函数8

2.3 timeit()函数9

2.4 cputime()函数9

2.5 clock()函数和etime()函数10

2.6 gputimeit()函数11

2.7 MATLAB探查器11

第3章 基于多核处理器的MATLAB程序加速16

3.1 MATLAB矩阵及运算符16

3.1.1 MATLAB矩阵的创建17

3.1.2 矩阵的性质的检验18

3.1.3 MATLAB矩阵的操作19

3.2 MATLAB函数24

3.2.1 MATLAB函数的定义24

3.2.2 MATLAB函数的执行25

3.3 语句与代码25

3.3.1 分支结构26

3.3.2 循环结构27

3.4 MATLAB代码28

3.5 MATLAB并行设置28

3.6 基于并行for循环(parfor循环)的MATLAB程序加速29

第4章 基于大内存的MATLAB程序的加速31

4.1 内存条的选择与安装31

4.2 内存预分配32

4.2.1 已知数组大小33

4.2.2 未知数组大小33

4.3 MATLAB向量化简介34

4.4 MATLAB矩阵运算的向量化35

4.4.1 创建MATLAB矩阵的函数35

4.4.2 数据复制36

4.4.3 MATLAB的矩阵变换函数36

4.4.4 索引38

4.4.5 矩阵操作的向量化39

4.4.6 符合条件的元素总数41

4.5 MATLAB函数的向量化42

4.5.1 基于arrayfun()函数、bsxfun()函数、cellfun()函数、spfun()函数和structfun()函数的向量化42

4.5.2 基于pagefun()函数的向量化44

4.6 MATLAB语句的向量化48

第5章 基于并行计算工具箱的MATLAB加速50

5.1 GPU卡的选择与安装50

5.1.1 GPU卡的选择50

5.1.2 电源功率51

5.1.3 散热问题51

5.2 基于并行计算工具箱的GPU计算简介51

5.3 基于并行计算工具箱的矩阵运算54

5.3.1 在设备端(GPU端)直接创建MATLAB矩阵54

5.3.2 在设备端(GPU端)生成随机数矩阵59

5.3.3 设备端(GPU端)的稀疏矩阵60

5.3.4 设备端(GPU端)矩阵的数据类型61

5.3.5 设备端(GPU端)矩阵的检验61

5.3.6 设备端(GPU端)矩阵的操作62

5.4 基于并行计算工具箱的设备端(GPU端)函数62

5.4.1 设备端(GPU端)函数的定义62

5.4.2 设备端(GPU端)函数的执行63

5.5 基于设备端(GPU端)大内存的MATLAB程序的加速63

5.6 例子64

5.6.1 卷积神经网络前向传播的卷积层64

5.6.2 卷积神经网络前向传播的激活函数65

5.6.3 卷积神经网络前向传播的降采样层66

5.6.4 卷积神经网络后向传播的升采样层66

5.6.5 卷积神经网络后向传播的卷积层67

5.6.6 卷积神经网络后向传播中的梯度计算68

第6章 MATLAB与C/C++的接口70

6.1 MEX库API71

6.1.1 MEX相关的函数71

6.1.2 从MEX中调用MATLAB函数72

6.1.3 mexGet()函数72

6.1.4 MEX库API与输入输出相关的函数73

6.1.5 MEX库API与锁定相关的函数73

6.2 MATLAB的C/C++矩阵库API74

6.2.1 定义MEX函数的数据类型74

6.2.2 创建数组、分配内存和释放内存75

6.2.3 数据类型校验:数组的数据类型和性质78

6.2.4 数据存取:从数组读取和写入数据80

6.2.5 数据类型转换:将字符串数组和结构数组转换成对象数组82

6.3 MEX函数编译器82

6.3.1 MEX介绍82

6.3.2 编译MEX83

6.3.3 MEX文件的查错83

第7章 基于CUDA库的MATLAB加速84

7.1 基于CUDA库的MATLAB加速简介85

7.2 基于ArrayFire库的MATLAB加速简介85

7.2.1 ArrayFire简介85

7.2.2 ArrayFire数组86

7.2.3 ArrayFire函数87

7.2.4 CUDA的混合编程88

7.2.5 实例88

7.3 基于其他CUDA库的MATLAB加速简介94

第8章 GPU计算简介95

8.1 芯片技术的发展与摩尔定律95

8.2 每秒浮点运算次数96

8.3 GPU计算加速的度量98

8.3.1 GPU程序的加速比98

8.3.2 阿姆达尔定律和古斯塔夫森定律98

8.3.3 并行程序的并行状况99

8.4 并行计算部件99

8.4.1 张量处理器99

8.4.2 现场可编程门阵列100

8.4.3 类脑处理器100

8.4.4 视觉处理器101

8.4.5 物理处理器101

8.4.6 图形处理器101

8.5 英伟达公司GPU简介102

8.5.1 计算单元102

8.5.2 GPU内存102

8.5.3 计算能力104

8.5.4 GPU当前状态的检测104

8.5.5 GPU集群设置106

8.5.6 集群管理软件107

第9章 CUDA编程简介108

9.1 CUDA核110

9.2 CUDA线程与线程块112

9.2.1 CUDA线程112

9.2.2 CUDA线程块114

9.3 内存结构与管理116

9.3.1 全局内存117

9.3.2 共享内存118

9.3.3 锁页内存120

9.3.4 纹理内存和表面内存122

9.4 并行管理122

9.4.1 非同步并行执行122

9.4.2 流和事件124

9.4.3 同步调用124

9.5 CUDA流124

9.5.1 CUDA流的创建和结束125

9.5.2 默认CUDA流125

9.5.3 显式同步125

9.5.4 隐式同步126

9.5.5 重叠行为126

9.5.6 回调函数127

9.5.7 CUDA流的优先级127

9.6 CUDA事件127

9.6.1 CUDA事件的创建与清除128

9.6.2 CUDA事件的运行128

9.7 多设备系统129

9.7.1 多设备系统的初始化129

9.7.2 多设备系统的设备计数129

9.7.3 多设备系统的设备选择130

9.7.4 多设备系统的CUDA流和CUDA事件130

9.7.5 不通过统一虚拟地址的多设备系统的设备间的内存复制131

9.7.6 通过统一虚拟地址的多设备系统的设备间的内存复制132

9.8 动态并行133

9.8.1 动态并行简介133

9.8.2 动态并行的编程模型134

9.8.3 动态并行的环境配置135

9.8.4 动态并行的内存管理135

9.8.5 动态并行的嵌套深度137

9.9 统一虚拟地址空间138

9.9.1 统一虚拟地址空间简介138

9.9.2 统一内存编程的优点139

9.9.3 统一内存分配141

9.9.4 统一内存的连续性与并行性142

9.9.5 统一内存的检验144

9.9.6 统一内存的性能优化145

9.10 CUDA的编译146

9.10.1 CUDA编译工作流147

9.11 CUDA程序实例148

9.11.1 序列蒙特卡罗的类别分布随机数149

9.11.2 哈尔变换152

第10章 CUDA程序优化154

10.1 CUDA程序优化的策略154

10.2 指令级别的优化154

10.2.1 算术指令吞吐量最大化155

10.2.2 控制流指令156

10.2.3 同步指令157

10.3 线程和线程块级别的优化157

10.3.1 warp简介157

10.3.2 CUDA线程块的warp数量158

10.3.3 CUDA占用率159

10.3.4 线程warp对设备端(GPU端)内存读写160

10.4 CUDA核级别的优化164

10.4.1 优化CUDA核参数164

10.4.2 减少内存同步165

10.4.3 减少寄存器总量165

10.4.4 提高指令层次的并行度165

10.5 CUDA程序级别的优化166

第11章 基于CUDA的MATLAB加速168

11.1 基于CUDAKernel的MATLAB加速168

11.2 基于MEX函数的MATLAB加速169

11.3 多GPU编程170

11.4 例子172

11.4.1 基于MEX函数的多GPU矩阵相加172

11.4.2 基于MEX函数的多GPU的LSE函数187

第12章 总结196

12.1 加速MATLAB编程方法的比较196

12.2 进一步加速MATLAB198

12.2.1 多路多核处理器的MATLAB程序加速198

12.2.2 基于AMD公司GPU的MATLAB程序加速199

12.2.3 基于Intel公司Xeon Phi的MATLAB程序加速199

参考文献201

热门推荐