登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書

『簡體書』加速MATLAB编程指南——CUDA实现

書城自編碼: 3232719
分類:簡體書→大陸圖書→計算機/網絡人工智能
作者: 赵地
國際書號(ISBN): 9787302493174
出版社: 清华大学出版社
出版日期: 2018-07-01


書度/開本: 16开 釘裝: 平装

售價:HK$ 83.8

我要買

share:

** 我創建的書架 **
未登入.


新書推薦:
Python贝叶斯深度学习
《 Python贝叶斯深度学习 》

售價:HK$ 91.8
文本的密码:社会语境中的宋代文学
《 文本的密码:社会语境中的宋代文学 》

售價:HK$ 69.0
启微·狂骉年代:西洋赛马在中国
《 启微·狂骉年代:西洋赛马在中国 》

售價:HK$ 80.5
有趣的中国古建筑
《 有趣的中国古建筑 》

售價:HK$ 68.8
十一年夏至
《 十一年夏至 》

售價:HK$ 78.2
如何打造成功的商业赛事
《 如何打造成功的商业赛事 》

售價:HK$ 91.9
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
《 万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题 》

售價:HK$ 59.8
慈悲与玫瑰
《 慈悲与玫瑰 》

售價:HK$ 89.7

 

編輯推薦:
从20世纪70年代Cleve Moler开发MATLAB开始, MATLAB受到学术界和工业界的欢迎,用户超过200万。然而,很多算法的MATLAB实现代码都有加速的需求。以深度学习为例,相关的MATLAB代码需要运行数小时甚至数天的时间。GPU计算和CUDA编程为MATLAB加速提供了很好的解决方案。现代的硬件技术的发展,使MATLAB程序的开发者和使用者能够拥有多核(multicore)、大内存等有效工具;图形处理器(Graphics Processing Unit,GPU)具有很好的加速能力。同时,一些公司还推出了专用的计算加速卡,如英伟达公司的Tesla系列计算加速卡、AMD公司的Fire Pro系列计算加速卡、Intel公司的Xeon Phi计算加速卡等。GPU是现代计算机必备的配件,都有不错的加速能力。GPU的主要生产厂商包括英伟达公司和AMD公司。MATLAB通过并行计算工具箱(Parallel Computing Toolbox,PCT)对英伟达公司的GPU单卡提供支持,MATLAB的开发者和使用者可以通过PCT使用英伟达公司生产的GPU。需要英伟达公司GPU多卡的计算
內容簡介:
MATLAB是广泛应用的算法开发语言之一。然而,MATLAB简单易用的特性与算法复杂性的矛盾,造成了各个领域的MATLAB程序运行缓慢。本书总结了作者多年来在算法开发工作中关于MATLAB程序加速的实战经验,系统地介绍了利用GPU计算能力和CUDA编程语言实现加速MATLAB编程的方法。
本书首先介绍了MATLAB程序的性能评估的方法,帮助读者找到制约MATLAB程序运行速度的瓶颈所在; 接着循序渐进地介绍加速MATLAB编程的方法,包括基于多核处理器的MATLAB程序加速、基于大内存和向量化的MATLAB程序加速、基于并行计算工具箱和GPU计算的MATLAB加速、基于CUDA库的MATLAB加速、基于CUDA语言的MATLAB加速等。同时,本书附带了大量程序实例,包括深度学习及大数据分析领域的例子,深入浅出地示范各种基于CUDA语言的MATLAB程序加速的技巧。
本书可帮助读者对所在领域的MATLAB应用程序进行显著加速,大幅提升算法开发的效率。
目錄
目录

第1章绪论

1.1MATLAB程序的加速

1.2MATLAB程序加速的可能途径

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.3MATLAB程序加速的度量

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

1.4.1并行计算工具箱简介

1.4.2CUDA库

1.4.3CUDA编程

第2章MATLAB程序的性能评估

2.1bench函数

2.2tic函数toc函数

2.3timeit函数

2.4cputime函数

2.5clock函数和etime函数

2.6gputimeit函数

2.7MATLAB探查器

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

3.1MATLAB矩阵及运算符

3.1.1MATLAB矩阵的创建

3.1.2矩阵的性质的检验

3.1.3MATLAB矩阵的操作

3.2MATLAB函数

3.2.1MATLAB函数的定义

3.2.2MATLAB函数的执行

3.3语句与代码

3.3.1分支结构

3.3.2循环结构

3.4MATLAB代码

3.5MATLAB并行设置

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

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

4.1内存条的选择与安装

4.2内存预分配

4.2.1已知数组大小

4.2.2未知数组大小

4.3MATLAB向量化简介

4.4MATLAB矩阵运算的向量化

4.4.1创建MATLAB矩阵的函数

4.4.2数据复制

4.4.3MATLAB的矩阵变换函数

4.4.4索引

4.4.5矩阵操作的向量化

4.4.6符合条件的元素总数

4.5MATLAB函数的向量化

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

4.5.2基于pagefun函数的向量化

4.6MATLAB语句的向量化

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

5.1GPU卡的选择与安装

5.1.1GPU卡的选择

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与CC的接口

6.1MEX库API

6.1.1MEX相关的函数

6.1.2从MEX中调用MATLAB函数

6.1.3mexGet函数

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

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

6.2MATLAB的CC矩阵库API

6.2.1定义MEX函数的数据类型

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

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

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

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

6.3MEX函数编译器

6.3.1MEX介绍

6.3.2编译MEX

6.3.3MEX文件的查错

第7章基于CUDA库的MATLAB加速

7.1基于CUDA库的MATLAB加速简介

7.2基于ArrayFire库的MATLAB加速简介

7.2.1ArrayFire简介

7.2.2ArrayFire数组

7.2.3ArrayFire函数

7.2.4CUDA的混合编程

7.2.5实例

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

第8章GPU计算简介

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

8.2每秒浮点运算次数

8.3GPU计算加速的度量

8.3.1GPU程序的加速比

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.2GPU内存

8.5.3计算能力

8.5.4GPU当前状态的检测

8.5.5GPU集群设置

8.5.6集群管理软件

第9章CUDA编程简介

9.1CUDA核

9.2CUDA线程与线程块

9.2.1CUDA线程

9.2.2CUDA线程块

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.5CUDA流

9.5.1CUDA流的创建和结束

9.5.2默认CUDA流

9.5.3显式同步

9.5.4隐式同步

9.5.5重叠行为

9.5.6回调函数

9.5.7CUDA流的优先级

9.6CUDA事件

9.6.1CUDA事件的创建与清除

9.6.2CUDA事件的运行

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.10CUDA的编译

9.10.1CUDA编译工作流

9.11CUDA程序实例

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

9.11.2哈尔变换

第10章CUDA程序优化

10.1CUDA程序优化的策略

10.2指令级别的优化

10.2.1算术指令吞吐量最大化

10.2.2控制流指令

10.2.3同步指令

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

10.3.1warp简介

10.3.2CUDA线程块的warp数量

10.3.3CUDA占用率

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

10.4CUDA核级别的优化

10.4.1优化CUDA核参数

10.4.2减少内存同步

10.4.3减少寄存器总量

10.4.4提高指令层次的并行度

10.5CUDA程序级别的优化

第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程序加速

参考文献
內容試閱
前言【写作背景】从20世纪70年代以来,MATLAB便受到学术界和工业界的欢迎。时至今年,MATLAB拥有大约200万用户。MATLAB的最大优点是易用性: Cleve Moler当年开发MATLAB的初衷是不用学习Fortran语言,也能够使用线性代数库LINPACK和EISPACK。MATLAB的易用性能够显著降低开发难度和减小开发周期,对于面临科研成果压力的学术界和面临利润压力的工业界有很大的吸引力。易用性的代价是MATLAB的运算效率不如编译型的编程语言,如CC和Fortran。同时,创新的压力使学术界和工业界开发出来的MATLAB程序越来越复杂。多项因素综合的结果,使MABLAB程序的效率不高,运行时间长。很多MATLAB程序的用户对程序运行时间有要求。例如,金融领域的算法开发者和使用者,往往对程序的运行时间有苛刻的要求; 医学领域的算法开发者和使用者希望MATLAB程序的速度达到临床的要求; 对于数据分析领域的MATLAB使用者,分析大数据所耗费的运行时间是很大的问题。因此,工业界和学术界的MATLAB的开发者和使用者,都有对于MATLAB程序加速的强烈需求。现代硬件技术的发展,使MATLAB程序的开发者和使用者能够拥有多核multicore、大内存等有效工具; 图形处理器Graphics Processing Unit,GPU具有很好的加速能力。同时,一些公司还推出了专用的计算加速卡,如英伟达公司的Tesla系列计算加速卡、AMD公司的Fire Pro系列计算加速卡、Intel公司的Xeon Phi计算加速卡等。MATLAB提供了调用其他程序的接口,并能够完成MATLAB与其他程序之间的数据传输: MATLAB能够通过MEXfileMATLAB executable的形式,调用CC和Fortran语言的程序; Windows版本的MATLAB可以调用ActiveX和DotNet.NET程序; 从2000年的6.0版本R12开始,MATLAB捆绑了JVMJava Virtual Machine,能够调用Java程序; MATLAB也能够通过perl调用perl代码。MATLAB集成较好的多核multicore加速能力。大多数情况下,MATLAB的开发者和使用者能够不做任何修改,自动获得多核加速能力。多核加速性能要求苛刻的用户,能够通过MATLAB与其他程序的接口,获得极致的多核加速能力。现代计算机都配有较大的内存容量,大内存能够显著提升MATLAB的计算速度。MATLAB没有提供对大内存优化的自动工具。为了有效利用大的内存容量,MATLAB的开发者和使用者需要通过向量化vectorization对MATLAB程序进行优化。GPU是现代计算机必备的配件,都有不错的加速能力。GPU的主要生产厂商包括英伟达公司和AMD公司。MATLAB通过并行计算工具箱Parallel Computing Toolbox,PCT对英伟达公司的GPU单卡提供支持,MATLAB的开发者和使用者可以通过PCT使用英伟达公司生产的GPU。需要英伟达公司GPU多卡的计算支持和对英伟达公司GPU计算加速性能要求极致的程序员,可以通过MATLAB与CC程序或者Fortran程序的接口,获得计算性能的提升。MATLAB不直接提供对AMD公司GPU的支持,MATLAB的开发者和使用者需要对AMD公司生产的GPU编写程序,并通过MATLAB与CC程序或者Fortran程序的接口功能wrapper function,获得MATLAB对AMD公司的GPU的支持。本书基于作者多年GPU计算与加速的研究和经验[112],全面叙述了基于CUDA编程的加速MATLAB编程的方法。【读者人群】本书适用于各行各业利用MATLAB进行算法开发,并且对MATLAB程序有加速需求的专业人员。本书主要面向满足日常办公需要的个人计算机Personal Computer,PC和服务器Server,并安装了GPU加速卡。【衷心感谢】感谢英伟达公司袁永清先生等对于本书撰写与出版的大力支持。感谢MATLAB公司吕凌曦女士对本书出版的大力支持。感谢清华大学出版社电子信息事业部主任梁颖先生对于本书出版的大力支持。感谢丽台科技王锋先生提供了测试用GPU卡。【相关读物】为了确保内容的正确性,在本书编写的过程中,作者参考了MATLAB Programming Fundamentals R2017a、MATLAB Parallel Computing Toolbox User''s Guide R2017a和CUDA C Programming Guide v8.0等。读者还可以参阅GPU计算与MATLAB编程相关中英文书籍[1316]。编者
2017年7月

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.