作品简介

MATLAB是广泛应用的算法开发语言之一。然而,MATLAB简单易用的特性与算法复杂性的矛盾,造成了各个领域的MATLAB程序运行缓慢。本书总结了作者多年来在算法开发工作中关于MATLAB程序加速的实战经验,系统地介绍了利用GPU计算能力和CUDA编程语言实现加速MATLAB编程的方法。

本书首先介绍了MATLAB程序的性能评估的方法,帮助读者找到制约MATLAB程序运行速度的“瓶颈”所在;接着循序渐进地介绍加速MATLAB编程的方法,包括基于多核处理器的MATLAB程序加速、基于大内存和向量化的MATLAB程序加速、基于并行计算工具箱和GPU计算的MATLAB加速、基于CUDA库的MATLAB加速、基于CUDA语言的MATLAB加速等。同时,本书附带了大量程序实例,包括深度学习及大数据分析领域的例子,深入浅出地示范各种基于CUDA语言的MATLAB程序加速的技巧。

本书可帮助读者对所在领域的MATLAB应用程序进行显著加速,大幅提升算法开发的效率。

赵地,美国路易斯安那理工大学(LouisianaTech.University)计算机与应用数学专业博士学位,曾在美国哥伦比亚大学(ColumbiaUniversity)和美国俄亥俄州立大学(TheOhioStateUniversity)从事博士后研究工作。

赵地博士在GPU计算方面具有丰富的研究经验,发表了多篇学术论文和会议论文。目前是CNIC—英伟达公司GPU研究中心(GPUResearchCenter,GRC)、CNIC—英伟达公司GPU教育中心(GPUEducationCenter,GEC)和CNIC-英伟达公司"智慧医疗”联合实验室的负责人。

作品目录

  • 内容简介
  • 序一 preface
  • 序二 preface
  • 前言 foreword
  • 第1章 绪论
  • 1.1 MATLAB程序的加速
  • 1.2 MATLAB程序加速的可能途径
  • 1.3 MATLAB程序加速的度量
  • 1.4 基于GPU计算的MATLAB程序的编制
  • 第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.2 MATLAB函数
  • 3.3 语句与代码
  • 3.4 MATLAB代码
  • 3.5 MATLAB并行设置
  • 3.6 基于并行for循环(parfor循环)的MATLAB程序加速
  • 第4章 基于大内存的MATLAB程序的加速
  • 4.1 内存条的选择与安装
  • 4.2 内存预分配
  • 4.3 MATLAB向量化简介
  • 4.4 MATLAB矩阵运算的向量化
  • 4.5 MATLAB函数的向量化
  • 4.6 MATLAB语句的向量化
  • 第5章 基于并行计算工具箱的MATLAB加速
  • 5.1 GPU卡的选择与安装
  • 5.2 基于并行计算工具箱的GPU计算简介
  • 5.3 基于并行计算工具箱的矩阵运算
  • 5.4 基于并行计算工具箱的设备端(GPU端)函数
  • 5.5 基于设备端(GPU端)大内存的MATLAB程序的加速
  • 5.6 例子
  • 第6章 MATLAB与C/C++的接口
  • 6.1 MEX库API
  • 6.2 MATLAB的C/C++矩阵库API
  • 6.3 MEX函数编译器
  • 第7章 基于CUDA库的MATLAB加速
  • 7.1 基于CUDA库的MATLAB加速简介
  • 7.2 基于ArrayFire库的MATLAB加速简介
  • 7.3 基于其他CUDA库的MATLAB加速简介
  • 第8章 GPU计算简介
  • 8.1 芯片技术的发展与摩尔定律
  • 8.2 每秒浮点运算次数
  • 8.3 GPU计算加速的度量
  • 8.4 并行计算部件
  • 8.5 英伟达公司GPU简介
  • 第9章 CUDA编程简介
  • 9.1 CUDA核
  • 9.2 CUDA线程与线程块
  • 9.3 内存结构与管理
  • 9.4 并行管理
  • 9.5 CUDA流
  • 9.6 CUDA事件
  • 9.7 多设备系统
  • 9.8 动态并行
  • 9.9 统一虚拟地址空间
  • 9.10 CUDA的编译
  • 9.11 CUDA程序实例
  • 第10章 CUDA程序优化
  • 10.1 CUDA程序优化的策略
  • 10.2 指令级别的优化
  • 10.3 线程和线程块级别的优化
  • 10.4 CUDA核级别的优化
  • 10.5 CUDA程序级别的优化
  • 第11章 基于CUDA的MATLAB加速
  • 11.1 基于CUDAKernel的MATLAB加速
  • 11.2 基于MEX函数的MATLAB加速
  • 11.3 多GPU编程
  • 11.4 例子
  • 第12章 总结
  • 12.1 加速MATLAB编程方法的比较
  • 12.2 进一步加速MATLAB
  • 参考文献
  • 附录CD
展开全部