注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)OpenACC高性能并行編程:概念與策略

OpenACC高性能并行編程:概念與策略

OpenACC高性能并行編程:概念與策略

定 價(jià):¥79.00

作 者: 蘇妮塔·錢德拉塞克蘭(Sunita Chandrasekaran) 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 高性能計(jì)算技術(shù)叢書
標(biāo) 簽: 暫缺

ISBN: 9787111623236 出版時(shí)間: 2019-04-01 包裝: 平裝
開本: 16開 頁數(shù): 244 字?jǐn)?shù):  

內(nèi)容簡介

  本書是介紹大規(guī)模并行編程OpenACC的綜合實(shí)踐性書籍之一。書中前3章介紹了OpenACC背后的概念和OpenACC開發(fā)工具;第4章至第7章帶你了解第1個(gè)真實(shí)世界的OpenACC程序,并揭示OpenACC程序編譯背后的魔力,從而引入更多概念;第8章至第10章涵蓋高級(jí)主題,例如OpenACC的替代方案、底層設(shè)備交互、多設(shè)備編程和任務(wù)并行性;第11章和第12章探討了OpenACC實(shí)現(xiàn)潛在新語言特性的各種研究領(lǐng)域。

作者簡介

暫缺《OpenACC高性能并行編程:概念與策略》作者簡介

圖書目錄

贊譽(yù)
推薦序
譯者序
前言
致謝
貢獻(xiàn)者簡介
譯者簡介
第1章 OpenACC概述 1
1.1 OpenACC語法 2
1.1.1 導(dǎo)語 3
1.1.2 子語 3
1.1.3 API例程與環(huán)境變量 4
1.2 計(jì)算構(gòu)件 4
1.2.1 kernels 5
1.2.2 parallel 6
1.2.3 loop 7
1.2.4 routine 7
1.3 數(shù)據(jù)環(huán)境 9
1.3.1 數(shù)據(jù)導(dǎo)語 9
1.3.2 數(shù)據(jù)子語 10
1.3.3 cache導(dǎo)語 11
1.3.4 部分?jǐn)?shù)據(jù)傳輸 11
1.4 總結(jié) 12
1.5 練習(xí) 12
第2章 循環(huán)級(jí)并行性 14
2.1 kernels循環(huán)與parallel循環(huán)的比較 15
2.2 并行性的三個(gè)級(jí)別 18
2.2.1 gang、worker與vector子語 18
2.2.2 將并行性映射到硬件 19
2.3 其他loop構(gòu)件 20
2.3.1 循環(huán)折疊 20
2.3.2 independent子語 21
2.3.3 seq與auto子語 22
2.3.4 reduction子語 23
2.4 總結(jié) 25
2.5 練習(xí) 26
第3章 OpenACC編程工具 27
3.1 架構(gòu)的通用特性 27
3.2 編譯OpenACC代碼 28
3.3 OpenACC應(yīng)用程序的性能分析 30
3.3.1 性能分析層次和術(shù)語 30
3.3.2 性能數(shù)據(jù)獲取 31
3.3.3 性能數(shù)據(jù)記錄和顯示 32
3.3.4 OpenACC性能分析接口 32
3.3.5 支持OpenACC的性能工具 33
3.3.6 NVIDIA性能分析工具 34
3.3.7 針對(duì)混合應(yīng)用程序的Score-P工具基礎(chǔ)架構(gòu) 35
3.3.8 TAU性能系統(tǒng) 40
3.4 識(shí)別OpenACC程序中的bug 42
3.5 總結(jié) 44
3.6 練習(xí) 45
第4章 使用OpenACC編寫第一個(gè)程序 48
4.1 案例研究 48
4.1.1 串行代碼 49
4.1.2 編譯代碼 55
4.2 創(chuàng)建一個(gè)原生的并行版本 56
4.2.1 找到熱點(diǎn) 56
4.2.2 使用kernels安全嗎 56
4.2.3 OpenACC實(shí)現(xiàn) 56
4.3 OpenACC程序的性能 59
4.4 優(yōu)化的并行版本 60
4.4.1 減少數(shù)據(jù)移動(dòng) 61
4.4.2 特別聰明的小改動(dòng) 62
4.4.3 最終的結(jié)果 63
4.5 總結(jié) 65
4.6 練習(xí) 66
第5章 編譯OpenACC 67
5.1 并行性的挑戰(zhàn) 68
5.1.1 并行硬件 68
5.1.2 映射循環(huán) 69
5.1.3 內(nèi)存層次結(jié)構(gòu) 71
5.1.4 歸約 72
5.1.5 應(yīng)對(duì)并行性的OpenACC 72
5.2 重建編譯器 73
5.2.1 編譯器可以做什么 74
5.2.2 編譯器不能做什么 75
5.3 編譯OpenACC 76
5.3.1 代碼預(yù)備工作 77
5.3.2 調(diào)度 77
5.3.3 串行代碼 78
5.3.4 用戶錯(cuò)誤 79
5.4 總結(jié) 80
5.5 練習(xí) 81
第6章 最佳編程實(shí)踐 83
6.1 通用準(zhǔn)則 84
6.1.1 最大化設(shè)備計(jì)算 84
6.1.2 優(yōu)化數(shù)據(jù)局部性 85
6.2 最大化設(shè)備計(jì)算 86
6.2.1 原子操作 86
6.2.2 kernels構(gòu)件與parallel構(gòu)件 87
6.2.3 運(yùn)行時(shí)調(diào)優(yōu)和if子語 88
6.3 優(yōu)化數(shù)據(jù)局部性 89
6.3.1 最少化數(shù)據(jù)傳輸 89
6.3.2 數(shù)據(jù)復(fù)用和present子語 90
6.3.3 非結(jié)構(gòu)化數(shù)據(jù)生命周期 91
6.3.4 指定數(shù)組形狀 92
6.4 典型示例 92
6.4.1 背景知識(shí):熱力學(xué)報(bào)表 92
6.4.2 基線CPU版本的實(shí)現(xiàn) 93
6.4.3 性能分析 93
6.4.4 使用OpenACC進(jìn)行加速 94
6.4.5 優(yōu)化數(shù)據(jù)局部性 96
6.4.6 性能研究 97
6.5 總結(jié) 98
6.6 練習(xí) 98
第7章 OpenACC與性能可移植性 99
7.1 挑戰(zhàn) 99
7.2 目標(biāo)架構(gòu) 100
7.2.1 特定平臺(tái)的編譯 101
7.2.2 x86_64多核與NVIDIA 101
7.3 OpenACC性能可移植性 101
7.3.1 OpenACC內(nèi)存模型 102
7.3.2 內(nèi)存架構(gòu) 102
7.3.3 代碼生成 102
7.3.4 性能可移植性的數(shù)據(jù)布局 103
7.4 代碼重構(gòu)以實(shí)現(xiàn)性能可移植性 103
7.4.1 HACCmk 103
7.4.2 面向多種架構(gòu) 105
7.4.3 openACC在NVIDIA K20x GPU上的應(yīng)用 106
7.4.4 openACC在AMD Bulldozer多核上的應(yīng)用 107
7.5 總結(jié) 108
7.6 練習(xí) 109
第8章 并行編程的其他方式 111
8.1 編程模型 111
8.1.1 OpenACC 113
8.1.2 OpenMP 113
8.1.3 CUDA 114
8.1.4 OpenCL 114
8.1.5 C++ AMP 115
8.1.6 Kokkos 115
8.1.7 RAJA 116
8.1.8 線程構(gòu)建模塊 116
8.1.9 C++17 116
8.1.10 Fortran 2008 117
8.2 編程模型組件 117
8.2.1 并行循環(huán) 118
8.2.2 并行歸約 119
8.2.3 緊密嵌套循環(huán) 121
8.2.4 分層并行性(非緊密嵌套循環(huán)) 122
8.2.5 任務(wù)并行性 124
8.2.6 數(shù)據(jù)分配 125
8.2.7 數(shù)據(jù)傳輸 126
8.3 案例研究 127
8.3.1 串行實(shí)現(xiàn) 128
8.3.2 OpenACC實(shí)現(xiàn) 129
8.3.3 OpenMP實(shí)現(xiàn) 130
8.3.4 CUDA實(shí)現(xiàn) 131
8.3.5 Kokkos實(shí)現(xiàn) 134
8.3.6 TBB實(shí)現(xiàn) 136
8.3.7 一些性能數(shù)字 138
8.4 總結(jié) 140
8.5 練習(xí) 140
第9章 OpenACC與互操作性 142
9.1 在OpenACC中調(diào)用原生設(shè)備代碼 142
9.1.1 示例:使用DFT進(jìn)行圖像濾波 143
9.1.2 host_data導(dǎo)語及use_device子語 145
9.1.3 目標(biāo)平臺(tái)相關(guān)API例程 147
9.2 在原生設(shè)備代碼中調(diào)用OpenACC 149
9.3 OpenACC互操作性高級(jí)話題 149
9.3.1 acc_map_data 149
9.3.2 在OpenACC kernel中調(diào)用CUDA設(shè)備例程 151
9.4 總結(jié) 152
9.5 練習(xí) 152
第10章 OpenACC高級(jí)特性 153
10.1 異步操作 153
10.1.1 OpenACC異步編程 155
10.1.2 軟件流水線 160
10.2 多設(shè)備編程 168
10.2.1 多設(shè)備流水線 169
10.2.2 OpenACC與MPI 172
10.3 總結(jié) 176
10.4 練習(xí) 176
第11章 使用OpenACC的創(chuàng)新研究思路,第1部分 177
11.1 神威OpenACC 177
11.1.1 SW26010眾核處理器 178
11.1.2 神威太湖之光中的內(nèi)存模型 178
11.1.3 執(zhí)行模型 180
11.1.4 數(shù)據(jù)管理 181
11.1.5 總結(jié) 183
11.2 針對(duì)加速器的嵌套循環(huán)編譯器轉(zhuǎn)換 184
11.2.1 OpenUH編譯器基礎(chǔ)架構(gòu) 185
11.2.2 循環(huán)調(diào)度轉(zhuǎn)換 187
11.2.3 循環(huán)調(diào)度的性能評(píng)估 190
11.2.4 OpenUH的其他研究課題 193
第12章 使用OpenACC的創(chuàng)新研究思路,第2部分 194
12.1 一個(gè)基于導(dǎo)語的高性能可重構(gòu)計(jì)算框架 194
12.1.1 介紹 195
12.1.2 OpenACC到FPGA的基線翻譯 196
12.1.3 用于高效FPGA編程的OpenACC擴(kuò)展和優(yōu)化 198
12.1.4 評(píng)估 203
12.1.5 總結(jié) 207
12.2 使用XcalableACC編程加速集群 207
12.2.1 XcalableMP介紹 208
12.2.2 XcalableACC:當(dāng)XcalableMP遇上OpenACC 211
12.2.3 Omni編譯器的實(shí)現(xiàn) 213
12.2.4 在HA-PACS上的性能評(píng)估 215
12.2.5 總結(jié) 220

本目錄推薦

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