欢迎光临
免费的PDF电子书下载网站

GPU与MATLAB混合编程 PDF下载

编辑推荐

除了仿真和算法开发,当前越来越多的研发人员使用MATLAB进行复杂计算领域的产品部署。用户可以借助图像处理器分布式并行处理,提升MATLAB代码的性能。由于提供了很多高层函数,MATLAB成功成为用于快速原型设计的出色仿真工具。但面对纷繁复杂的GPU细节和背景知识,MATLAB用户在面对GPU强大计算能力时,总是犹豫不决。本书为用户提供了入门读物,架起了MATLAB和GPU之间的桥梁。本书从零基础开始,深入浅出,如介绍MATLAB使用CUDA所需的设置(支持Windows、Linux和Mac OX等多种操作系统),引导用户通过一个个的专题(如CDUA库),逐步掌握GPU编程。作者还与读者分享了在大数据计算领域的MATLAB、C++和GPU的编程经验,展示了如何修改MATLAB代码以更好地利用GPU的计算能力,以及如何将代码整合到商用软件产品中。全书提供了大量的代码示例,能够作为用户C-MEX和CUDA代码的模板。

内容简介

本书介绍CPU和MATLAB的联合编程方法,包括首先介绍了不使用GPU实现MATLAB加速的方法;然后介绍了MATLAB和计算统一设备架(CUDA)配置通过分析进行zuiyou规划,以及利用c-mex进行CUDA编程;接着介绍了MATLAB与并行计算工具箱和运用CUDA加速函数库;zui后给出计算机图形实例和CUDA转换实例。本书还通过大量的实例、图示和代码,深入浅出地引导读者进入GPU的殿堂,易于读者理解和掌握。通过阅读本书,读者无需付出很多的精力和时间,就可以学习使用GPU进行并行处理,实现MATLAB代码的加速,提高工作效率,从而将更多的时间和精力用于创造性工作和其他事情。

本书可作为相关专业高年级本科生和研究生的教材,也可作为工程技术人员的参考书。

作者简介

Jung W. Suh 美国KLA-Tencor(科天)公司的高级算法工程师和研究科学家。2007年因其在3D医学图像处理领域的工作,从弗吉尼亚理工大学获得博士学位。他参与了三星电子在MPEG-4和数字移动广播(DMB)系统的研发工作。在任职KLA-Tencor公司前,他还担任HeartFlow公司高级科学家。研究领域包括生物图像处理、模式识别、机器学习和图像/视频压缩。发表30余篇期刊和会议论文,并拥有6项专利。Youngmin Kim 美国LifeTechnologies(生命科技)公司的高级软件工程师,从事实时图像获取和高吞吐量图像分析程序开发工作。他之前的工作还包括设计和开发自动显微镜和用于实时分析的集成成像算法软件。先后从伊利诺伊大学(厄巴纳-香槟校区)电子工程专业获得学士和硕士学位。在加入Life Technologies公司前,他还在三星公司开发了3D图像软件,并在一家创业公司领导软件团队。

Jung W. Suh  美国KLA-Tencor(科天)公司的高级算法工程师和研究科学家。2007年因其在3D医学图像处理领域的工作,从弗吉尼亚理工大学获得博士学位。他参与了三星电子在MPEG-4和数字移动广播(DMB)系统的研发工作。在任职KLA-Tencor公司前,他还担任HeartFlow公司高级科学家。研究领域包括生物图像处理、模式识别、机器学习和图像/视频压缩。发表30余篇期刊和会议论文,并拥有6项专利。

Youngmin Kim  美国Life
Technologies
(生命科技)公司的高级软件工程师,从事实时图像获取和高吞吐量图像分析程序开发工作。他之前的工作还包括设计和开发自动显微镜和用于实时分析的集成成像算法软件。先后从伊利诺伊大学(厄巴纳-香槟校区)电子工程专业获得学士和硕士学位。在加入Life Technologies公司前,他还在三星公司开发了3D图像软件,并在一家创业公司领导软件团队。

 

GPU与MATLAB混合编程 PDF下载

目录

前言

1  不使用GPU实现MATLAB加速

1.1 
本章学习目标

1.2 
向量化

1.2.1 
元素运算

1.2.2 
向量/矩阵运算

1.2.3 
实用技巧

1.3 
预分配

1.4  for-loop

1.5 
考虑稀疏矩阵形式

1.6 
其他技巧

1.6.1 
尽量减少循环中的文件读/

1.6.2 
尽量减少动态改变路径和改变变量类型

1.6.3 
在代码易读性和优化间保持平衡

1.7 
实例

2  MATLABCUDA配置

2.1 
本章学习目标

2.2 
配置MATLAB进行c-mex编程

2.2.1 
备忘录

2.2.2 
编译器的选择

2.3 
使用c-mex实现“Hellomex!

2.4  MATLAB
中的CUDA配置

2.5 
实例:使用CUDA实现简单的向量加法

2.6 
图像卷积实例

2.6.1  MATLAB
中卷积运算

2.6.2 
用编写的c-mex计算卷积

2.6.3 
在编写的c-mex中利用CUDA计算卷积

2.6.4 
简单的时间性能分析

2.7 
总结

3  通过耗时分析进行最优规划

3.1 
本章学习目标

3.2 
分析MATLAB代码查找瓶颈

3.2.1 
分析器的使用方法

3.2.2 
针对多核CPU更精确的耗时分析

3.3  CUDA
c-mex代码分析

3.3.1 
利用Visual Studio进行CUDA分析

3.3.2 
利用NVIDIA Visual Profiler进行CUDA分析

3.4  c-mex
调试器的环境设置

4  利用c-mex进行CUDA编程

4.1 
本章学习目标

4.2  c-mex
中的存储布局

4.2.1 
按列存储

4.2.2 
按行存储

4.2.3  c-mex
中复数的存储布局

4.3 
逻辑编程模型

4.3.1 
逻辑分组1

4.3.2 
逻辑分组2

4.3.3 
逻辑分组3

4.4  GPU
简单介绍

4.4.1 
数据并行

4.4.2 
流处理器

4.4.3 
流处理器簇

4.4.4 
线程束

4.4.5 
存储器

4.5 
第一种初级方法的分析

4.5.1 
优化方案A:线程块

4.5.2 
优化方案B

4.5.3 
总结

5  MATLAB与并行计算工具箱

5.1 
本章学习目标

5.2  GPU
处理MATLAB内置函数

5.3  GPU
处理非内置MATLAB函数

5.4 
并行任务处理

5.4.1  MATLAB worker

5.4.2  parfor

5.5 
并行数据处理

5.5.1  spmd

5.5.2 
分布式数组与同分布数组

5.5.3 
多个GPU时的worker

5.6 
无需c-mexCUDA文件直接使用

6  运用CUDA加速函数库

6.1 
本章学习目标

6.2  CUBLAS

6.2.1  CUBLAS
函数

6.2.2  CUBLAS
矩阵乘法

6.2.3 
使用Visual Profiler进行CUBLAS分析

6.3  CUFFT

6.3.1 
通过CUFFT进行二维FFT运算

6.3.2 
Visual Profiler进行CUFFT时间分析

6.4  Thrust

6.4.1 
通过Thrust排序

6.4.2 
采用Visual Profiler分析Thrust

7  计算机图形学实例

7.1 
本章学习目标

7.2  Marching-Cubes
算法

7.3  MATLAB
实现

7.3.1 
步骤1

7.3.2 
步骤2

7.3.3 
步骤3

7.3.4 
步骤4

7.3.5 
步骤5

7.3.6 
步骤6

7.3.7 
步骤7

7.3.8 
步骤8

7.3.9 
步骤9

7.3.10 
时间分析

7.4 
采用CUDAc-mex实现算法

7.4.1 
步骤1

7.4.2 
步骤2

7.4.3 
时间分析

7.5 
c-mex函数和GPU实现

7.5.1 
步骤1

7.5.2 
步骤2

7.5.3 
步骤3

7.5.4 
步骤4

7.5.5 
步骤5

7.5.6 
时间分析

7.6 
总结

8  CUDA 转换实例:3D图像处理

8.1 
本章学习目标

8.2 
基于Atlas分割方法的MATLAB代码

8.2.1 
基于Atlas分割背景知识

8.2.2 
用于分割的MATLAB代码

8.3 
通过分析进行CUDA最优设计

8.3.1 
分析MATLAB代码

8.3.2 
概要结果分析和CUDA最优设计

8.4  CUDA
转换1——正则化

8.5  CUDA
转换2——图像配准

8.6  CUDA
转换结果

8.7 
结论

附录

附录下载和安装CUDA

A.1  CUDA
工具箱下载

A.2 
安装

A.3 
确认

附录安装NVIDIA NsightVisual Studio

 

GPU与MATLAB混合编程 pdf下载声明

本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版

pdf下载地址

版权归出版社和作者所有,下载链接已删除。如果喜欢,请购买正版!

链接地址:GPU与MATLAB混合编程