注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)網(wǎng)絡(luò)與數(shù)據(jù)通信網(wǎng)絡(luò)服務(wù)基于CUDA的GPU并行程序開發(fā)指南

基于CUDA的GPU并行程序開發(fā)指南

基于CUDA的GPU并行程序開發(fā)指南

定 價(jià):¥179.00

作 者: 托爾加·索亞塔
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787111630616 出版時(shí)間: 2019-07-01 包裝:
開本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

暫缺《基于CUDA的GPU并行程序開發(fā)指南》簡(jiǎn)介

作者簡(jiǎn)介

  Tolga Soyata于1988年在伊斯坦布爾技術(shù)大學(xué)電子與通信工程系獲得學(xué)士學(xué)位,1992年在美國(guó)馬里蘭州巴爾的摩的約翰·霍普金斯大學(xué)電氣與計(jì)算機(jī)工程系(ECE)獲得碩士學(xué)位,2000年在羅切斯特大學(xué)電氣與計(jì)算機(jī)工程系獲得博士學(xué)位。2000年至2015年間,他成立了一家IT外包和復(fù)印機(jī)銷售/服務(wù)公司。在運(yùn)營(yíng)公司的同時(shí),他重返學(xué)術(shù)界,在羅切斯特大學(xué)電氣與計(jì)算機(jī)工程系擔(dān)任研究員。之后,他成為助理教授,并一直擔(dān)任電氣與計(jì)算機(jī)工程系教職研究人員至2016年。在羅切斯特大學(xué)電氣與計(jì)算機(jī)工程系任職期間,他指導(dǎo)了三名博士研究生。其中兩人在他的指導(dǎo)下獲得博士學(xué)位,另一位在他2016年加入紐約州立大學(xué)奧爾巴尼分校擔(dān)任電氣與計(jì)算機(jī)工程系副教授時(shí)留在了羅切斯特大學(xué)。Soyata的教學(xué)課程包括大規(guī)模集成電路、模擬電路以及使用FPGA和GPU進(jìn)行并行編程。他的研究興趣包括信息物理系統(tǒng)、數(shù)字健康和高性能醫(yī)療移動(dòng)云計(jì)算系統(tǒng)等。Tolga Soyata從2009年開始從事GPU編程的教學(xué),當(dāng)時(shí)他聯(lián)系Nvidia將羅切斯特大學(xué)認(rèn)證為CUDA教學(xué)中心(CTC)。在Nvidia將羅切斯特大學(xué)認(rèn)證為教學(xué)中心后,他成為主要負(fù)責(zé)人。之后,Nvidia還將羅切斯特大學(xué)認(rèn)證為CUDA研究中心(CRC),他也成為項(xiàng)目負(fù)責(zé)人。Tolga Soyata在羅切斯特大學(xué)擔(dān)任這些計(jì)劃的負(fù)責(zé)人直到他于2016年加入紐約州立大學(xué)奧爾巴尼分校。這些計(jì)劃后來(lái)被Nvidia命名為GPU教育中心和GPU研究中心。在羅切斯特大學(xué)期間,他講授了5年GPU編程和高級(jí)GPU項(xiàng)目開發(fā)課程,這些課程同時(shí)被列入電氣與計(jì)算機(jī)工程系以及計(jì)算機(jī)科學(xué)與技術(shù)系的課程體系。自2016年加入紐約州立大學(xué)奧爾巴尼分校以來(lái),他一直在講授類似的課程。本書是他在兩所大學(xué)講授GPU課程的經(jīng)驗(yàn)結(jié)晶。

圖書目錄

譯者序
前言
關(guān)于作者
部分 理解CPU的并行性
第1章 CPU并行編程概述 2
1.1 并行編程的演化 2
1.2 核心越多,并行性越高 3
1.3 核心與線程 4
1.3.1 并行化更多的是線程還是核心 5
1.3.2 核心資源共享的影響 6
1.3.3 內(nèi)存資源共享的影響 6
1.4 個(gè)串行程序 7
1.4.1  理解數(shù)據(jù)傳輸速度 8
1.4.2 imflip.c中的main( )函數(shù) 9
1.4.3 垂直翻轉(zhuǎn)行:FlipImageV( ) 10
1.4.4 水平翻轉(zhuǎn)列:FlipImageH( ) 11
1.5 程序的編輯、編譯、運(yùn)行 12
1.5.1 選擇編輯器和編譯器 12
1.5.2 在Windows 7、8、10平臺(tái)上開發(fā) 12
1.5.3 在Mac平臺(tái)上開發(fā) 14
1.5.4 在Unix平臺(tái)上開發(fā) 14
1.6 Unix速成 15
1.6.1 與目錄相關(guān)的Unix命令 15
1.6.2 與文件相關(guān)的Unix命令 16
1.7 調(diào)試程序 19
1.7.1 gdb 19
1.7.2 古典調(diào)試方法 20
1.7.3 valgrind 22
1.8 個(gè)串行程序的性能 22
1.8.1 可以估計(jì)執(zhí)行時(shí)間嗎 23
1.8.2 代碼執(zhí)行時(shí)OS在做什么 23
1.8.3 如何并行化 24
1.8.4 關(guān)于資源的思考 25
第2章 開發(fā)個(gè)CPU并行程序 26
2.1 個(gè)并行程序 26
2.1.1 imflipP.c中的main( )函數(shù) 27
2.1.2 運(yùn)行時(shí)間 28
2.1.3 imflipP.c中main( )函數(shù)代碼的劃分 28
2.1.4 線程初始化 30
2.1.5 創(chuàng)建線程 31
2.1.6  線程啟動(dòng)/執(zhí)行 32
2.1.7 線程終止(合并) 33
2.1.8 線程任務(wù)和數(shù)據(jù)劃分 34
2.2 位圖文件 35
2.2.1 BMP是一種無(wú)損/不壓縮的文件格式 35
2.2.2 BMP圖像文件格式 36
2.2.3 頭文件ImageStuff.h 37
2.2.4 ImageStuff.c中的圖像操作函數(shù) 38
2.3 執(zhí)行線程任務(wù) 40
2.3.1 啟動(dòng)線程 41
2.3.2 多線程垂直翻轉(zhuǎn)函數(shù)MTFlipV( ) 43
2.3.3 FlipImageV( )和MTFlipV( )的比較 46
2.3.4 多線程水平翻轉(zhuǎn)函數(shù)MTFlipH(?) 47
2.4 多線程代碼的測(cè)試/計(jì)時(shí) 49
第3章 改進(jìn)個(gè)CPU并行程序 51
3.1 程序員對(duì)性能的影響 51
3.2 CPU對(duì)性能的影響 52
3.2.1 按序核心與亂序核心 53
3.2.2 瘦線程與胖線程 55
3.3 imf?lipP的性能 55
3.4 操作系統(tǒng)對(duì)性能的影響 56
3.4.1 創(chuàng)建線程 57
3.4.2 線程啟動(dòng)和執(zhí)行 57
3.4.3 線程狀態(tài) 58
3.4.4 將軟件線程映射到硬件線程 59
3.4.5  程序性能與啟動(dòng)的線程 60
3.5 改進(jìn)imf?lipP 61
3.5.1  分析MTFlipH( )中的內(nèi)存訪問模式 62
3.5.2  MTFlipH( )的多線程內(nèi)存訪問 63
3.5.3  DRAM訪問的規(guī)則 64
3.6 imf?lipPM:遵循DRAM的規(guī)則 65
3.6.1 imflipP的混亂內(nèi)存訪問模式 65
3.6.2 改進(jìn)imflipP的內(nèi)存訪問模式 65
3.6.3 MTFlipHM( ):內(nèi)存友好的MTFlipH( ) 66
3.6.4 MTFlipVM( ):內(nèi)存友好的MTFlipV( ) 69
3.7 imflipPM.C的性能 69
3.7.1 imflipP.c和imflipPM.c的性能比較 70
3.7.2 速度提升:MTFlipV( )與MTFlipVM( ) 71
3.7.3 速度提升:MTFlipH( )與MTFlipHM( ) 71
3.7.4 理解加速:MTFlipH( )與MTFlipHM( ) 71
3.8 進(jìn)程內(nèi)存映像 72
3.9 英特爾MIC架構(gòu):Xeon Phi 74
3.10 GPU是怎樣的 75
3.11 本章小結(jié) 76
第4章 理解核心和內(nèi)存 77
4.1 曾經(jīng)的英特爾 77
4.2 CPU和內(nèi)存制造商 78
4.3 動(dòng)態(tài)存儲(chǔ)器與靜態(tài)存儲(chǔ)器 79
4.3.1 靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM) 79
4.3.2  動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM) 79
4.3.3 DRAM接口標(biāo)準(zhǔn) 79
4.3.4 DRAM對(duì)程序性能的影響 80
4.3.5 SRAM對(duì)程序性能的影響 81
4.4 圖像旋轉(zhuǎn)程序:imrotate.c 81
4.4.1 imrotate.c的說明 82
4.4.2 imrotate.c:參數(shù)限制和簡(jiǎn)化 82
4.4.3 imrotate.c:實(shí)現(xiàn)原理 83
4.5 imrotate的性能 87
4.5.1 線程效率的定性分析 87
4.5.2 定量分析:定義線程效率 87
4.6 計(jì)算機(jī)的體系結(jié)構(gòu) 89
4.6.1 核心、L1$和L2$ 89
4.6.2 核心內(nèi)部資源 90
4.6.3  共享L3高速緩存(L3 $) 91
4.6.4 內(nèi)存控制器 92
4.6.5 主存 92
4.6.6 隊(duì)列、非核心和I/O 93
4.7 imrotateMC:讓imrotate更高效 94
4.7.1 Rotate2( ):平方根和浮點(diǎn)除法有多差 96
4.7.2 Rotate3( )和Rotate4( ):sin( )和cos( )有多差 97
4.7.3 Rotate5( ):整數(shù)除法/乘法有多差 98
4.7.4 Rotate6( ):合并計(jì)算 100
4.7.5 Rotate7( ):合并更多計(jì)算 100
4.7.6 imrotateMC的總體性能 101
4.8 本章小結(jié) 103
第5章 線程管理和同步 104
5.1 邊緣檢測(cè)程序:imedge.c 104
5.1.1 imedge.c的說明 105
5.1.2 imedge.c:參數(shù)限制和簡(jiǎn)化 106
5.1.3 imedge.c:實(shí)現(xiàn)原理 106
5.2 imedge.c:實(shí)現(xiàn) 108
5.2.1 初始化和時(shí)間戳 109
5.2.2 不同圖像表示的初始化函數(shù) 110
5.2.3 啟動(dòng)和終止線程 111
5.2.4 高斯濾波 112
5.2.5 Sobel 113
5.2.6 閾值過濾 114
5.3 imedge的性能 115
5.4 imedgeMC:讓imedge更高效 116
5.4.1 利用預(yù)計(jì)算降低帶寬 116
5.4.2 存儲(chǔ)預(yù)計(jì)算的像素值 117
5.4.3 預(yù)計(jì)算像素值 118
5.4.4 讀取圖像并預(yù)計(jì)算像素值 119
5.4.5 PrGaussianFilter 1

本目錄推薦

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