注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)程序設(shè)計(jì)綜合C++ AMP:用Visual C++加速大規(guī)模并行計(jì)算

C++ AMP:用Visual C++加速大規(guī)模并行計(jì)算

C++ AMP:用Visual C++加速大規(guī)模并行計(jì)算

定 價(jià):¥69.00

作 者: (美)Kate Gregory,Ade Miller 著,車皓陽(yáng),黃文龍 譯
出版社: 人民郵電出版社
叢編項(xiàng):
標(biāo) 簽: 編程語(yǔ)言與程序設(shè)計(jì) 計(jì)算機(jī)與互聯(lián)網(wǎng)

ISBN: 9787115345035 出版時(shí)間: 2014-04-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 300 字?jǐn)?shù):  

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

  C++ AMP是Microsoft Visual Studio和C++編程語(yǔ)言的新擴(kuò)展,用于幫助開發(fā)人員充分適應(yīng)現(xiàn)在和未來(lái)的高度并行和異構(gòu)計(jì)算環(huán)境。C++ AMP更易用,與C++配合得更好?!禖++ AMP:用Visual C++加速大規(guī)模并行計(jì)算》的目標(biāo)是幫助C++開發(fā)人員在理解C++ AMP核心概念的基礎(chǔ)上,掌握更高級(jí)的功能。書中包含了C++ AMP程序開發(fā)的設(shè)計(jì)思路、使用方法、真實(shí)案例及代碼示例,并提供了案例的源代碼。通過(guò)學(xué)習(xí)《C++ AMP:用Visual C++加速大規(guī)模并行計(jì)算》,讀者能理解如何在應(yīng)用程序中最好地使用C++ AMP,還能利用Microsoft Visual Studio 2012提供的調(diào)試和剖析工具來(lái)解決問(wèn)題、優(yōu)化性能?!禖++ AMP:用Visual C++加速大規(guī)模并行計(jì)算》的兩位作者一位是有20多年C++實(shí)踐經(jīng)驗(yàn)的講師、演講人和作家,一位是微軟工作室的首席軟件架構(gòu)師,他們有豐富的實(shí)踐經(jīng)驗(yàn),因此,本書極具實(shí)際應(yīng)用參考價(jià)值?!禖++ AMP:用Visual C++加速大規(guī)模并行計(jì)算》適合專業(yè)C++異構(gòu)編程人員及熟悉C++并希望從事并行編程及異構(gòu)編程的開發(fā)人員。

作者簡(jiǎn)介

暫缺《C++ AMP:用Visual C++加速大規(guī)模并行計(jì)算》作者簡(jiǎn)介

圖書目錄

目 錄
第1章 C++ AMP概述 1
1.1 為什么選擇GPGPU?什么是異構(gòu)計(jì)算? 1
1.1.1 性能提升史 1
1.1.2 異構(gòu)平臺(tái) 2
1.1.3 GPU架構(gòu) 3
1.1.4 通過(guò)并行性提升性能的候選方案 4
1.2 CPU并行技術(shù) 7
1.2.1 向量化 7
1.2.2 OpenMP 9
1.2.3 并發(fā)運(yùn)行時(shí)庫(kù)(ConcRT)和并行模式庫(kù) 10
1.2.4 任務(wù)并行庫(kù) 11
1.2.5 WARP-Windows高級(jí)柵格化平臺(tái) 11
1.2.6 GPU并行技術(shù) 12
1.2.7 成功并行化的要求 13
1.3 C++ AMP方法 14
1.3.1 C++ AMP將GPGPU(以及更多)帶進(jìn)主流 14
1.3.2 C++ AMP是C++,而不是C 14
1.3.3 C++ AMP使用了我們熟識(shí)的工具 15
1.3.4 C++ AMP是一個(gè)近乎全面的代碼庫(kù) 15
1.3.5 C++ AMP可以生成可移植的、不會(huì)過(guò)時(shí)的執(zhí)行代碼 17
1.4 小結(jié) 18
第2章 Nbody案例 19
2.1 運(yùn)行示例前的準(zhǔn)備工作 19
2.2 運(yùn)行Nbody示例 20
2.3 示例的結(jié)構(gòu) 24
2.4 CPU計(jì)算 25
2.4.1 數(shù)據(jù)結(jié)構(gòu) 25
2.4.2 wWinMain函數(shù) 26
2.4.3 OnFrameMove回調(diào)函數(shù) 26
2.4.4 OnD3D11CreateDevice回調(diào)函數(shù) 27
2.4.5 OnGUIEvent回調(diào)函數(shù) 29
2.4.6 OnD3D11FrameRender回調(diào)函數(shù) 30
2.5 CPU NBody類 30
2.5.1 NBodySimpleInteractionEngine 30
2.5.2 NBodySimpleSingleCore 31
2.5.3 NBodySimpleMultiCore 31
2.5.4 NBodySimpleInteractionEngine::BodyBodyInteraction 32
2.6 C++ AMP計(jì)算 33
2.6.1 數(shù)據(jù)結(jié)構(gòu) 33
2.6.2 CreateTasks 35
2.7 C++ AMP NBody類 37
2.7.1 NBodyAmpSimple::Integrate 37
2.7.2 BodyBodyInteraction 38
2.8 小結(jié) 40
第3章 C++ AMP基礎(chǔ) 41
3.1 array 41
3.2 accelerator與accelerator_view 43
3.3 index 45
3.4 extent 46
3.5 array_view 46
3.6 parallel_for_each 50
3.7 使用restrict(amp)標(biāo)記的函數(shù) 52
3.8 在CPU和GPU之間復(fù)制數(shù)據(jù) 54
3.9 數(shù)學(xué)庫(kù)函數(shù) 56
3.10 小結(jié) 57
第4章 分組 58
4.1 使用分組的目的和好處 58
4.2 tile_static內(nèi)存 60
4.3 tiled_extent 60
4.4 tiled_index 62
4.5 將簡(jiǎn)單算法改成分組算法 63
4.5.1 使用tile_static內(nèi)存 64
4.5.2 分組柵和同步 68
4.5.3 完成簡(jiǎn)單版本到分組版本的修改 70
4.6 分組大小的影響 71
4.7 選擇分組大小 74
4.8 小結(jié) 75
第5章 分組NBody案例 76
5.1 分組功能對(duì)NBody的提速有多大幫助 76
5.2 N體問(wèn)題的分組算法 77
5.2.1 NBodyAmpTiled類 78
5.2.2 NBodyAmpTiled::Integrate 79
5.3 使用Concurrency Visualizer 83
5.4 選擇分組大小 88
5.5 小結(jié) 92
第6章 調(diào)試 93
6.1 第一步 93
6.1.1 選擇GPU調(diào)試還是CPU調(diào)試 94
6.1.2 參考加速器 97
6.2 GPU調(diào)試基礎(chǔ) 100
6.2.1 熟悉的窗口和技巧 100
6.2.2 Debug Location工具欄 101
6.2.3 檢測(cè)競(jìng)態(tài) 101
6.3 檢查線程運(yùn)行狀況 103
6.3.1 線程標(biāo)記 104
6.3.2 GPU Threads窗口 105
6.3.3 Parallel Stacks窗口 107
6.3.4 Parallel Watch窗口 108
6.3.5 對(duì)線程置標(biāo)記、分組和過(guò)濾 110
6.4 施加更多的控制 112
6.4.1 凍結(jié)與解凍線程 113
6.4.2 Run Tile to Cursor 114
6.5 小結(jié) 116
第7章 優(yōu)化 117
7.1 一種性能優(yōu)化方法 117
7.2 分析性能 118
7.2.1 測(cè)量?jī)?nèi)核性能 118
7.2.2 使用Concurrency Visualizer 121
7.2.3 使用Concurrency Visualizer SDK 126
7.3 優(yōu)化內(nèi)存訪問(wèn)模式 127
7.3.1 別名和parallel_for_each調(diào)用 127
7.3.2 往返GPU的高效數(shù)據(jù)復(fù)制 131
7.3.3 高效加速器全局內(nèi)存訪問(wèn) 136
7.3.4 結(jié)構(gòu)體數(shù)組與數(shù)組結(jié)構(gòu)體 139
7.3.5 高效的分組靜態(tài)內(nèi)存訪問(wèn) 141
7.3.6 常量?jī)?nèi)存 145
7.3.7 紋理內(nèi)存 146
7.3.8 占用比和寄存器 146
7.4 優(yōu)化計(jì)算 147
7.4.1 避免分支代碼 147
7.4.2 選擇合適的精度 151
7.4.3 數(shù)學(xué)運(yùn)算的成本估算 153
7.4.4 循環(huán)展開 153
7.4.5 障柵 154
7.4.6 排隊(duì)模式 157
7.5 小結(jié) 159
第8章 性能案例——?dú)w約 160
8.1 問(wèn)題 160
8.2 示例的結(jié)構(gòu) 161
8.2.1 初始化和負(fù)載 164
8.2.2 Concurrency Visualizer標(biāo)記 164
8.2.3 TimeFunc() 165
8.2.4 開銷 167
8.3 CPU算法 167
8.3.1 串行算法 167
8.3.2 并行算法 168
8.4 C++ AMP算法 168
8.4.1 簡(jiǎn)單版本 169
8.4.2 使用array_view的簡(jiǎn)單版本 171
8.4.3 簡(jiǎn)單優(yōu)化版本 172
8.4.4 原始分組版本 174
8.4.5 共享內(nèi)存的分組版本 176
8.4.6 使分支數(shù)降至最低的版本 182
8.4.7 消除槽位沖突版本 182
8.4.8 減少停滯線程版本 184
8.4.9 循環(huán)展開版本 185
8.4.10 級(jí)聯(lián)歸約版本 188
8.4.11 帶循環(huán)展開的級(jí)聯(lián)歸約版本 190
8.5 小結(jié) 191
第9章 使用多個(gè)加速器工作 192
9.1 選擇加速器 192
9.2 使用一個(gè)以上的GPU 197
9.3 在加速器之間交換數(shù)據(jù) 201
9.4 動(dòng)態(tài)負(fù)載均衡 206
9.5 交織并行性 209
9.6 回退到CPU執(zhí)行 210
9.7 小結(jié) 211
第10章 Cartoonizer案例 213
10.1 前提條件 213
10.2 運(yùn)行示例 214
10.3 示例的結(jié)構(gòu) 217
10.4 流水線 218
10.4.1 數(shù)據(jù)結(jié)構(gòu) 218
10.4.2 CartoonizerDlg::OnBnClickedButtonStart()方法 220
10.4.3 ImagePipeline類 221
10.5 流水線卡通化階段 225
10.5.1 ImageCartoonizerAgent類 225
10.5.2 IFrameProcessor實(shí)現(xiàn) 228
10.6 使用多個(gè)C++ AMP加速器工作 236
10.6.1 FrameProcessorAmpMulti類 236
10.6.2 復(fù)制流水線 239
10.6.3 ImageCartoonizerAgentParallel類 239
10.7 卡通器性能 242
10.8 小結(jié) 244
第11章 圖形互操作 245
11.1 基礎(chǔ)知識(shí) 245
11.1.1 norm與unorm 245
11.1.2 短向量類型 247
11.1.3 texture 251
11.1.4 writeonly_texture_view 257
11.1.5 紋理與數(shù)組 258
11.2 使用紋理和短向量 259
11.3 HLSL內(nèi)建函數(shù) 262
11.4 DirectX互操作 264
11.4.1 加速器視圖與Direct3D設(shè)備互操作 264
11.4.2 數(shù)組與Direct3D設(shè)備互操作 265
11.4.3 紋理與Direct3D紋理資源互操作 266
11.4.4 使用圖形互操作庫(kù) 269
11.5 小結(jié) 271
第12章 提示、技巧與最佳實(shí)踐 273
12.1 處理分組大小不匹配的問(wèn)題 273
12.1.1 填充分組 275
12.1.2 截取分組 276
12.1.3 對(duì)比方法 280
12.2 初始化數(shù)組 280
12.3 函數(shù)對(duì)象與lambda函數(shù) 281
12.4 原子操作 282
12.5 Windows 8上其他的C++ AMP功能 285
12.6 超時(shí)檢測(cè)與恢復(fù) 286
12.6.1 避免TDR 287
12.6.2 在Windows 8上取消TDR 288
12.6.3 檢測(cè)TDR和從TDR中恢復(fù) 288
12.7 雙精度支持 290
12.7.1 有限雙精度支持 290
12.7.2 完整雙精度支持 290
12.8 在Windows 7上調(diào)試 291
12.8.1 配置遠(yuǎn)程計(jì)算機(jī) 291
12.8.2 配置項(xiàng)目 291
12.8.3 部署和調(diào)試項(xiàng)目 292
12.9 其他調(diào)試函數(shù) 293
12.10 部署 294
12.10.1 部署應(yīng)用程序 294
12.10.2 在服務(wù)器上運(yùn)行C++ AMP 294
12.11 C++ AMP與Windows 8的Windows應(yīng)用商店 296
12.12 在托管代碼中使用C++ AMP 296
12.12.1 從.NET應(yīng)用程序、Windows 7 Windows應(yīng)用商店或庫(kù)中調(diào)用 297
12.12.2 從C++ CLR應(yīng)用程序中調(diào)用 297
12.12.3 從C++ CLR項(xiàng)目中調(diào)用 297
12.13 小結(jié) 298
附錄 其他資源 299

本目錄推薦

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