注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計(jì)加速M(fèi)ATLAB編程指南(CUDA實(shí)現(xiàn))

加速M(fèi)ATLAB編程指南(CUDA實(shí)現(xiàn))

加速M(fèi)ATLAB編程指南(CUDA實(shí)現(xiàn))

定 價:¥59.00

作 者: 趙地
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302493174 出版時間: 2018-07-01 包裝: 平裝
開本: 16 頁數(shù): 202 字?jǐn)?shù):  

內(nèi)容簡介

  MATLAB是廣泛應(yīng)用的算法開發(fā)語言之一。然而,MATLAB簡單易用的特性與算法復(fù)雜性的矛盾,造成了各個領(lǐng)域的MATLAB程序運(yùn)行緩慢。本書總結(jié)了作者多年來在算法開發(fā)工作中關(guān)于MATLAB程序加速的實(shí)戰(zhàn)經(jīng)驗(yàn),系統(tǒng)地介紹了利用GPU計(jì)算能力和CUDA編程語言實(shí)現(xiàn)加速M(fèi)ATLAB編程的方法。本書首先介紹了MATLAB程序的性能評估的方法,幫助讀者找到制約MATLAB程序運(yùn)行速度的“瓶頸”所在; 接著循序漸進(jìn)地介紹加速M(fèi)ATLAB編程的方法,包括基于多核處理器的MATLAB程序加速、基于大內(nèi)存和向量化的MATLAB程序加速、基于并行計(jì)算工具箱和GPU計(jì)算的MATLAB加速、基于CUDA庫的MATLAB加速、基于CUDA語言的MATLAB加速等。同時,本書附帶了大量程序?qū)嵗ㄉ疃葘W(xué)習(xí)及大數(shù)據(jù)分析領(lǐng)域的例子,深入淺出地示范各種基于CUDA語言的MATLAB程序加速的技巧。本書可幫助讀者對所在領(lǐng)域的MATLAB應(yīng)用程序進(jìn)行顯著加速,大幅提升算法開發(fā)的效率。

作者簡介

  趙地獲得美國路易斯安娜理工大學(xué)(Louisiana Tech University)計(jì)算機(jī)與應(yīng)用數(shù)學(xué)專業(yè)博士學(xué)位,曾在美國哥倫比亞大學(xué)(Columbia University)和美國俄亥俄州立大學(xué)(The Ohio State University)從事博士后研究工作。 趙地博士在GPU計(jì)算方面具有豐富的研究經(jīng)驗(yàn),發(fā)表了多篇學(xué)術(shù)論文和會議論文?,F(xiàn)任CNIC-英偉達(dá)公司GPU研究中心(GPU Research Center, GRC)、CNIC-英偉達(dá)公司GPU教育中心(GPU Education Center, GEC)和CNIC-英偉達(dá)公司“智慧醫(yī)療”聯(lián)合實(shí)驗(yàn)室負(fù)責(zé)人;中國圖象圖形學(xué)學(xué)會視覺大數(shù)據(jù)專業(yè)委員會委員,CCF會員。

圖書目錄

第1章緒論

1.1MATLAB程序的加速

1.2MATLAB程序加速的可能途徑

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

1.2.2基于大內(nèi)存的MATLAB程序加速

1.2.3基于英偉達(dá)公司GPU的MATLAB程序加速

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

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

1.3MATLAB程序加速的度量

1.4基于GPU計(jì)算的MATLAB程序的編制

1.4.1并行計(jì)算工具箱簡介

1.4.2CUDA庫

1.4.3CUDA編程

第2章MATLAB程序的性能評估

2.1bench()函數(shù)

2.2tic()函數(shù)/toc()函數(shù)

2.3timeit()函數(shù)

2.4cputime()函數(shù)

2.5clock()函數(shù)和etime()函數(shù)

2.6gputimeit()函數(shù)

2.7MATLAB探查器

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

3.1MATLAB矩陣及運(yùn)算符

3.1.1MATLAB矩陣的創(chuàng)建

3.1.2矩陣的性質(zhì)的檢驗(yàn)

3.1.3MATLAB矩陣的操作

3.2MATLAB函數(shù)

3.2.1MATLAB函數(shù)的定義

3.2.2MATLAB函數(shù)的執(zhí)行

3.3語句與代碼

3.3.1分支結(jié)構(gòu)

3.3.2循環(huán)結(jié)構(gòu)

3.4MATLAB代碼

3.5MATLAB并行設(shè)置

3.6基于并行for循環(huán)(parfor循環(huán))的MATLAB程序加速

第4章基于大內(nèi)存的MATLAB程序的加速

4.1內(nèi)存條的選擇與安裝

4.2內(nèi)存預(yù)分配

4.2.1已知數(shù)組大小

4.2.2未知數(shù)組大小

4.3MATLAB向量化簡介

4.4MATLAB矩陣運(yùn)算的向量化

4.4.1創(chuàng)建MATLAB矩陣的函數(shù)

4.4.2數(shù)據(jù)復(fù)制

4.4.3MATLAB的矩陣變換函數(shù)

4.4.4索引

4.4.5矩陣操作的向量化

4.4.6符合條件的元素總數(shù)

4.5MATLAB函數(shù)的向量化

4.5.1基于arrayfun()函數(shù)、bsxfun()函數(shù)、cellfun()函數(shù)、

spfun()函數(shù)和structfun()函數(shù)的向量化

4.5.2基于pagefun()函數(shù)的向量化

4.6MATLAB語句的向量化

第5章基于并行計(jì)算工具箱的MATLAB加速

5.1GPU卡的選擇與安裝

5.1.1GPU卡的選擇

5.1.2電源功率

5.1.3散熱問題

5.2基于并行計(jì)算工具箱的GPU計(jì)算簡介

5.3基于并行計(jì)算工具箱的矩陣運(yùn)算

5.3.1在設(shè)備端(GPU端)直接創(chuàng)建MATLAB矩陣

5.3.2在設(shè)備端(GPU端)生成隨機(jī)數(shù)矩陣

5.3.3設(shè)備端(GPU端)的稀疏矩陣

5.3.4設(shè)備端(GPU端)矩陣的數(shù)據(jù)類型

5.3.5設(shè)備端(GPU端)矩陣的檢驗(yàn)

5.3.6設(shè)備端(GPU端)矩陣的操作

5.4基于并行計(jì)算工具箱的設(shè)備端(GPU端)函數(shù)

5.4.1設(shè)備端(GPU端)函數(shù)的定義

5.4.2設(shè)備端(GPU端)函數(shù)的執(zhí)行

5.5基于設(shè)備端(GPU端)大內(nèi)存的MATLAB程序的加速

5.6例子

5.6.1卷積神經(jīng)網(wǎng)絡(luò)前向傳播的卷積層

5.6.2卷積神經(jīng)網(wǎng)絡(luò)前向傳播的激活函數(shù)

5.6.3卷積神經(jīng)網(wǎng)絡(luò)前向傳播的降采樣層

5.6.4卷積神經(jīng)網(wǎng)絡(luò)后向傳播的升采樣層

5.6.5卷積神經(jīng)網(wǎng)絡(luò)后向傳播的卷積層

5.6.6卷積神經(jīng)網(wǎng)絡(luò)后向傳播中的梯度計(jì)算

第6章MATLAB與C/C++的接口

6.1MEX庫API

6.1.1MEX相關(guān)的函數(shù)

6.1.2從MEX中調(diào)用MATLAB函數(shù)

6.1.3mexGet()函數(shù)

6.1.4MEX庫API與輸入輸出相關(guān)的函數(shù)

6.1.5MEX庫API與鎖定相關(guān)的函數(shù)

6.2MATLAB的C/C++矩陣庫API

6.2.1定義MEX函數(shù)的數(shù)據(jù)類型

6.2.2創(chuàng)建數(shù)組、分配內(nèi)存和釋放內(nèi)存

6.2.3數(shù)據(jù)類型校驗(yàn): 數(shù)組的數(shù)據(jù)類型和性質(zhì)

6.2.4數(shù)據(jù)存?。?nbsp;從數(shù)組讀取和寫入數(shù)據(jù)

6.2.5數(shù)據(jù)類型轉(zhuǎn)換: 將字符串?dāng)?shù)組和結(jié)構(gòu)數(shù)組轉(zhuǎn)換成對象數(shù)組

6.3MEX函數(shù)編譯器

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數(shù)組

7.2.3ArrayFire函數(shù)

7.2.4CUDA的混合編程

7.2.5實(shí)例

7.3基于其他CUDA庫的MATLAB加速簡介

第8章GPU計(jì)算簡介

8.1芯片技術(shù)的發(fā)展與摩爾定律

8.2每秒浮點(diǎn)運(yùn)算次數(shù)

8.3GPU計(jì)算加速的度量

8.3.1GPU程序的加速比

8.3.2阿姆達(dá)爾定律和古斯塔夫森定律

8.3.3并行程序的并行狀況

8.4并行計(jì)算部件

8.4.1張量處理器

8.4.2現(xiàn)場可編程門陣列

8.4.3類腦處理器

8.4.4視覺處理器

8.4.5物理處理器

8.4.6圖形處理器

8.5英偉達(dá)公司GPU簡介

8.5.1計(jì)算單元

8.5.2GPU內(nèi)存

8.5.3計(jì)算能力

8.5.4GPU當(dāng)前狀態(tài)的檢測

8.5.5GPU集群設(shè)置

8.5.6集群管理軟件

第9章CUDA編程簡介

9.1CUDA核

9.2CUDA線程與線程塊

9.2.1CUDA線程

9.2.2CUDA線程塊

9.3內(nèi)存結(jié)構(gòu)與管理

9.3.1全局內(nèi)存

9.3.2共享內(nèi)存

9.3.3鎖頁內(nèi)存

9.3.4紋理內(nèi)存和表面內(nèi)存

9.4并行管理

9.4.1非同步并行執(zhí)行

9.4.2流和事件

9.4.3同步調(diào)用

9.5CUDA流

9.5.1CUDA流的創(chuàng)建和結(jié)束

9.5.2默認(rèn)CUDA流

9.5.3顯式同步

9.5.4隱式同步

9.5.5重疊行為

9.5.6回調(diào)函數(shù)

9.5.7CUDA流的優(yōu)先級

9.6CUDA事件

9.6.1CUDA事件的創(chuàng)建與清除

9.6.2CUDA事件的運(yùn)行

9.7多設(shè)備系統(tǒng)

9.7.1多設(shè)備系統(tǒng)的初始化

9.7.2多設(shè)備系統(tǒng)的設(shè)備計(jì)數(shù)

9.7.3多設(shè)備系統(tǒng)的設(shè)備選擇

9.7.4多設(shè)備系統(tǒng)的CUDA流和CUDA事件

9.7.5不通過統(tǒng)一虛擬地址的多設(shè)備系統(tǒng)的設(shè)備間的內(nèi)存復(fù)制

9.7.6通過統(tǒng)一虛擬地址的多設(shè)備系統(tǒng)的設(shè)備間的內(nèi)存復(fù)制

9.8動態(tài)并行

9.8.1動態(tài)并行簡介

9.8.2動態(tài)并行的編程模型

9.8.3動態(tài)并行的環(huán)境配置

9.8.4動態(tài)并行的內(nèi)存管理

9.8.5動態(tài)并行的嵌套深度

9.9統(tǒng)一虛擬地址空間

9.9.1統(tǒng)一虛擬地址空間簡介

9.9.2統(tǒng)一內(nèi)存編程的優(yōu)點(diǎn)

9.9.3統(tǒng)一內(nèi)存分配

9.9.4統(tǒng)一內(nèi)存的連續(xù)性與并行性

9.9.5統(tǒng)一內(nèi)存的檢驗(yàn)

9.9.6統(tǒng)一內(nèi)存的性能優(yōu)化

9.10CUDA的編譯

9.10.1CUDA編譯工作流

9.11CUDA程序?qū)嵗?/p>

9.11.1序列蒙特卡羅的類別分布隨機(jī)數(shù)

9.11.2哈爾變換

第10章CUDA程序優(yōu)化

10.1CUDA程序優(yōu)化的策略

10.2指令級別的優(yōu)化

10.2.1算術(shù)指令吞吐量最大化

10.2.2控制流指令

10.2.3同步指令

10.3線程和線程塊級別的優(yōu)化

10.3.1warp簡介

10.3.2CUDA線程塊的warp數(shù)量

10.3.3CUDA占用率

10.3.4線程warp對設(shè)備端(GPU端)內(nèi)存讀寫

10.4CUDA核級別的優(yōu)化

10.4.1優(yōu)化CUDA核參數(shù)

10.4.2減少內(nèi)存同步

10.4.3減少寄存器總量

10.4.4提高指令層次的并行度

10.5CUDA程序級別的優(yōu)化

第11章基于CUDA的MATLAB加速

11.1基于CUDAKernel的MATLAB加速

11.2基于MEX函數(shù)的MATLAB加速

11.3多GPU編程

11.4例子

11.4.1基于MEX函數(shù)的多GPU矩陣相加

11.4.2基于MEX函數(shù)的多GPU的LSE函數(shù)

第12章總結(jié)

12.1加速M(fèi)ATLAB編程方法的比較

12.2進(jìn)一步加速M(fèi)ATLAB

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

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

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

參考文獻(xiàn)

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號