
0人評分過此書
MATLAB是廣泛應用的算法開發語言之一。然而,MATLAB簡單易用的特性與算法複雜性的矛盾,造成了各個領域的MATLAB程序運行緩慢。本書總結了作者多年來在算法開發工作中關於MATLAB程序加速的實戰經驗,系統地介紹了利用GPU計算能力和CUDA編程語言實現加速MATLAB編程的方法。
- 封面页
- 书名页
- 版权页
- 作者简介
- 内容简介
- 序一 preface
- 序二 preface
- 前言 foreword
- 目录
-
第1章 绪论
-
1.1 MATLAB程序的加速
-
1.2 MATLAB程序加速的可能途径
-
1.2.1 基于多核CPU的MATLAB程序加速
-
1.2.2 基于大内存的MATLAB程序加速
-
1.2.3 基于英伟达公司GPU的MATLAB程序加速
-
1.2.4 基于AMD公司GPU的MATLAB程序加速
-
1.2.5 基于Intel公司Xeon Phi的MATLAB程序加速
-
-
1.3 MATLAB程序加速的度量
-
1.4 基于GPU计算的MATLAB程序的编制
-
1.4.1 并行计算工具箱简介
-
1.4.2 CUDA库
-
1.4.3 CUDA编程
-
-
-
第2章 MATLAB程序的性能评估
-
2.1 bench()函数
-
2.2 tic()函数/toc()函数
-
2.3 timeit()函数
-
2.4 cputime()函数
-
2.5 clock()函数和etime()函数
-
2.6 gputimeit()函数
-
2.7 MATLAB探查器
-
-
第3章 基于多核处理器的MATLAB程序加速
-
3.1 MATLAB矩阵及运算符
-
3.1.1 MATLAB矩阵的创建
-
3.1.2 矩阵的性质的检验
-
3.1.3 MATLAB矩阵的操作
-
-
3.2 MATLAB函数
-
3.2.1 MATLAB函数的定义
-
3.2.2 MATLAB函数的执行
-
-
3.3 语句与代码
-
3.3.1 分支结构
-
3.3.2 循环结构
-
-
3.4 MATLAB代码
-
3.5 MATLAB并行设置
-
3.6 基于并行for循环(parfor循环)的MATLAB程序加速
-
-
第4章 基于大内存的MATLAB程序的加速
-
4.1 内存条的选择与安装
-
4.2 内存预分配
-
4.2.1 已知数组大小
-
4.2.2 未知数组大小
-
-
4.3 MATLAB向量化简介
-
4.4 MATLAB矩阵运算的向量化
-
4.4.1 创建MATLAB矩阵的函数
-
4.4.2 数据复制
-
4.4.3 MATLAB的矩阵变换函数
-
4.4.4 索引
-
4.4.5 矩阵操作的向量化
-
4.4.6 符合条件的元素总数
-
-
4.5 MATLAB函数的向量化
-
4.5.1 基于arrayfun()函数、bsxfun()函数、cellfun()函数、spfun()函数和structfun()函数的向量化
-
4.5.2 基于pagefun()函数的向量化
-
-
4.6 MATLAB语句的向量化
-
-
第5章 基于并行计算工具箱的MATLAB加速
-
5.1 GPU卡的选择与安装
-
5.1.1 GPU卡的选择
-
5.1.2 电源功率
-
5.1.3 散热问题
-
-
5.2 基于并行计算工具箱的GPU计算简介
-
5.3 基于并行计算工具箱的矩阵运算
-
5.3.1 在设备端(GPU端)直接创建MATLAB矩阵
-
5.3.2 在设备端(GPU端)生成随机数矩阵
-
5.3.3 设备端(GPU端)的稀疏矩阵
-
5.3.4 设备端(GPU端)矩阵的数据类型
-
5.3.5 设备端(GPU端)矩阵的检验
-
5.3.6 设备端(GPU端)矩阵的操作
-
-
5.4 基于并行计算工具箱的设备端(GPU端)函数
-
5.4.1 设备端(GPU端)函数的定义
-
5.4.2 设备端(GPU端)函数的执行
-
-
5.5 基于设备端(GPU端)大内存的MATLAB程序的加速
-
5.6 例子
-
5.6.1 卷积神经网络前向传播的卷积层
-
5.6.2 卷积神经网络前向传播的激活函数
-
5.6.3 卷积神经网络前向传播的降采样层
-
5.6.4 卷积神经网络后向传播的升采样层
-
5.6.5 卷积神经网络后向传播的卷积层
-
5.6.6 卷积神经网络后向传播中的梯度计算
-
-
-
第6章 MATLAB与C/C++的接口
-
6.1 MEX库API
-
6.1.1 MEX相关的函数
-
6.1.2 从MEX中调用MATLAB函数
-
6.1.3 mexGet()函数
-
6.1.4 MEX库API与输入输出相关的函数
-
6.1.5 MEX库API与锁定相关的函数
-
-
6.2 MATLAB的C/C++矩阵库API
-
6.2.1 定义MEX函数的数据类型
-
6.2.2 创建数组、分配内存和释放内存
-
6.2.3 数据类型校验:数组的数据类型和性质
-
6.2.4 数据存取:从数组读取和写入数据
-
6.2.5 数据类型转换:将字符串数组和结构数组转换成对象数组
-
-
6.3 MEX函数编译器
-
6.3.1 MEX介绍
-
6.3.2 编译MEX
-
6.3.3 MEX文件的查错
-
-
-
第7章 基于CUDA库的MATLAB加速
-
7.1 基于CUDA库的MATLAB加速简介
-
7.2 基于ArrayFire库的MATLAB加速简介
-
7.2.1 ArrayFire简介
-
7.2.2 ArrayFire数组
-
7.2.3 ArrayFire函数
-
7.2.4 CUDA的混合编程
-
7.2.5 实例
-
-
7.3 基于其他CUDA库的MATLAB加速简介
-
-
第8章 GPU计算简介
-
8.1 芯片技术的发展与摩尔定律
-
8.2 每秒浮点运算次数
-
8.3 GPU计算加速的度量
-
8.3.1 GPU程序的加速比
-
8.3.2 阿姆达尔定律和古斯塔夫森定律
-
8.3.3 并行程序的并行状况
-
-
8.4 并行计算部件
-
8.4.1 张量处理器
-
8.4.2 现场可编程门阵列
-
8.4.3 类脑处理器
-
8.4.4 视觉处理器
-
8.4.5 物理处理器
-
8.4.6 图形处理器
-
-
8.5 英伟达公司GPU简介
-
8.5.1 计算单元
-
8.5.2 GPU内存
-
8.5.3 计算能力
-
8.5.4 GPU当前状态的检测
-
8.5.5 GPU集群设置
-
8.5.6 集群管理软件
-
-
-
第9章 CUDA编程简介
-
9.1 CUDA核
-
9.2 CUDA线程与线程块
-
9.2.1 CUDA线程
-
9.2.2 CUDA线程块
-
-
9.3 内存结构与管理
-
9.3.1 全局内存
-
9.3.2 共享内存
-
9.3.3 锁页内存
-
9.3.4 纹理内存和表面内存
-
-
9.4 并行管理
-
9.4.1 非同步并行执行
-
9.4.2 流和事件
-
9.4.3 同步调用
-
-
9.5 CUDA流
-
9.5.1 CUDA流的创建和结束
-
9.5.2 默认CUDA流
-
9.5.3 显式同步
-
9.5.4 隐式同步
-
9.5.5 重叠行为
-
9.5.6 回调函数
-
9.5.7 CUDA流的优先级
-
-
9.6 CUDA事件
-
9.6.1 CUDA事件的创建与清除
-
9.6.2 CUDA事件的运行
-
-
9.7 多设备系统
-
9.7.1 多设备系统的初始化
-
9.7.2 多设备系统的设备计数
-
9.7.3 多设备系统的设备选择
-
9.7.4 多设备系统的CUDA流和CUDA事件
-
9.7.5 不通过统一虚拟地址的多设备系统的设备间的内存复制
-
9.7.6 通过统一虚拟地址的多设备系统的设备间的内存复制
-
-
9.8 动态并行
-
9.8.1 动态并行简介
-
9.8.2 动态并行的编程模型
-
9.8.3 动态并行的环境配置
-
9.8.4 动态并行的内存管理
-
9.8.5 动态并行的嵌套深度
-
-
9.9 统一虚拟地址空间
-
9.9.1 统一虚拟地址空间简介
-
9.9.2 统一内存编程的优点
-
9.9.3 统一内存分配
-
9.9.4 统一内存的连续性与并行性
-
9.9.5 统一内存的检验
-
9.9.6 统一内存的性能优化
-
-
9.10 CUDA的编译
-
9.10.1 CUDA编译工作流
-
-
9.11 CUDA程序实例
-
9.11.1 序列蒙特卡罗的类别分布随机数
-
9.11.2 哈尔变换
-
-
-
第10章 CUDA程序优化
-
10.1 CUDA程序优化的策略
-
10.2 指令级别的优化
-
10.2.1 算术指令吞吐量最大化
-
10.2.2 控制流指令
-
10.2.3 同步指令
-
-
10.3 线程和线程块级别的优化
-
10.3.1 warp简介
-
10.3.2 CUDA线程块的warp数量
-
10.3.3 CUDA占用率
-
10.3.4 线程warp对设备端(GPU端)内存读写
-
-
10.4 CUDA核级别的优化
-
10.4.1 优化CUDA核参数
-
10.4.2 减少内存同步
-
10.4.3 减少寄存器总量
-
10.4.4 提高指令层次的并行度
-
-
10.5 CUDA程序级别的优化
-
-
第11章 基于CUDA的MATLAB加速
-
11.1 基于CUDAKernel的MATLAB加速
-
11.2 基于MEX函数的MATLAB加速
-
11.3 多GPU编程
-
11.4 例子
-
11.4.1 基于MEX函数的多GPU矩阵相加
-
11.4.2 基于MEX函数的多GPU的LSE函数
-
-
-
第12章 总结
-
12.1 加速MATLAB编程方法的比较
-
12.2 进一步加速MATLAB
-
12.2.1 多路多核处理器的MATLAB程序加速
-
12.2.2 基于AMD公司GPU的MATLAB程序加速
-
12.2.3 基于Intel公司Xeon Phi的MATLAB程序加速
-
-
- 参考文献
- 附录CD
- 出版地 : 中國大陸
- 語言 : 簡體中文
評分與評論
請登入後再留言與評分