注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術工業(yè)技術建筑科學建筑設計加速MATLAB編程指南(CUDA實現(xiàn))

加速MATLAB編程指南(CUDA實現(xiàn))

加速MATLAB編程指南(CUDA實現(xiàn))

定 價:¥59.00

作 者: 趙地
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


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

內容簡介

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

作者簡介

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

圖書目錄

第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()函數(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矩陣及運算符

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

3.1.2矩陣的性質的檢驗

3.1.3MATLAB矩陣的操作

3.2MATLAB函數(shù)

3.2.1MATLAB函數(shù)的定義

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

3.3語句與代碼

3.3.1分支結構

3.3.2循環(huán)結構

3.4MATLAB代碼

3.5MATLAB并行設置

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

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

4.1內存條的選擇與安裝

4.2內存預分配

4.2.1已知數(shù)組大小

4.2.2未知數(shù)組大小

4.3MATLAB向量化簡介

4.4MATLAB矩陣運算的向量化

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

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

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章基于并行計算工具箱的MATLAB加速

5.1GPU卡的選擇與安裝

5.1.1GPU卡的選擇

5.1.2電源功率

5.1.3散熱問題

5.2基于并行計算工具箱的GPU計算簡介

5.3基于并行計算工具箱的矩陣運算

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

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

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

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

5.3.5設備端(GPU端)矩陣的檢驗

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

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

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

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

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

5.6例子

5.6.1卷積神經網絡前向傳播的卷積層

5.6.2卷積神經網絡前向傳播的激活函數(shù)

5.6.3卷積神經網絡前向傳播的降采樣層

5.6.4卷積神經網絡后向傳播的升采樣層

5.6.5卷積神經網絡后向傳播的卷積層

5.6.6卷積神經網絡后向傳播中的梯度計算

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

6.1MEX庫API

6.1.1MEX相關的函數(shù)

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

6.1.3mexGet()函數(shù)

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

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

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

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

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

6.2.3數(shù)據(jù)類型校驗: 數(shù)組的數(shù)據(jù)類型和性質

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

6.2.5數(shù)據(jù)類型轉換: 將字符串數(shù)組和結構數(shù)組轉換成對象數(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實例

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

第8章GPU計算簡介

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

8.2每秒浮點運算次數(shù)

8.3GPU計算加速的度量

8.3.1GPU程序的加速比

8.3.2阿姆達爾定律和古斯塔夫森定律

8.3.3并行程序的并行狀況

8.4并行計算部件

8.4.1張量處理器

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

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當前狀態(tài)的檢測

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非同步并行執(zhí)行

9.4.2流和事件

9.4.3同步調用

9.5CUDA流

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

9.5.2默認CUDA流

9.5.3顯式同步

9.5.4隱式同步

9.5.5重疊行為

9.5.6回調函數(shù)

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

9.6CUDA事件

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

9.6.2CUDA事件的運行

9.7多設備系統(tǒng)

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

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

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

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

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

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

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)并行的內存管理

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

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

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

9.9.2統(tǒng)一內存編程的優(yōu)點

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

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

9.9.5統(tǒng)一內存的檢驗

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

9.10CUDA的編譯

9.10.1CUDA編譯工作流

9.11CUDA程序實例

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

9.11.2哈爾變換

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

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

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

10.2.1算術指令吞吐量最大化

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對設備端(GPU端)內存讀寫

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

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

10.4.2減少內存同步

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章總結

12.1加速MATLAB編程方法的比較

12.2進一步加速MATLAB

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

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

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

參考文獻

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號