有 1 項符合
cuda並行程序設計:gpu編程指南
的圖書
|
圖書介紹 - 資料來源:博客來 目前評分: 評分:
圖書名稱:CUDA並行程序設計:GPU編程指南 內容簡介
本書是CUDA並行程序設計領域最全面、最詳實和最具權威性的著作之一,由CUDA開發者社區技術總監親自撰寫,英偉達中國首批CUDA官方認證工程師翻譯,詳實地講解了CUDA並行程序設計的技術知識點(平台、架構、硬件知識、開發工具和熱點技術)和編程方法,包含大量實用代碼示例,實踐性非常強。
全書共分為12章。
第1章從宏觀上介紹流處理器演變歷史。
第2章詳解GPU並行機制,深入理解串行與並行程序,以辯證地求解問題。
第3章講解CUDA設備及相關的硬件和體系結構,以實現最優CUDA程序性能。
第4章介紹CUDA開發環境搭建和可用調試環境。
第5章介紹與CUDA編程緊密相關的核心概念——網格、線程塊與線程,並通過示例說明線程模型與性能的關系。
第6章借助實例詳細講解了不同類型內存的工作機制,並指出實踐中容易出現的誤區。
第7章細述多任務的CPU和GPU協同,並介紹多個CPU/GPU編程秘技。
第8章介紹如何在應用程序中編寫和使用多GPU。
第9章詳述CUDA編程性能限制因素、分析CUDA代碼的工具和技術。
第10章介紹編程實踐中的庫與軟件開發工具包。
第11章講解如何設計基於GPU的系統。
第12章總結CUDA應用中易犯錯誤以及應對建議。
Shane Cook CUDA開發者社區技術總監,有20余年行業經驗。當認識到異構系統以及CUDA對於已有串行和並行編程技術的革命性沖擊時,創立了CUDA開發者社區(歐洲的咨詢公司,專門幫助企業重構代碼以充分利用GPU硬件的威力)。他專注於高性能軟件開發、GPU利用、嵌入式系統,並參與了多個C語言編程標准的建設,包括廣泛應用於汽車軟件行業的汽車工業軟件MISRA Safer C。他常為德國汽車行業、國防承包行業、北電網絡以及福特汽車公司等機構或藍籌股公司提供專業咨詢服務和軟件定制開發。
目錄
致中國讀者 譯者序 前 言
第1章 超級計算簡史 1 1.1 簡介 1 1.2 馮·諾依曼計算機架構 2 1.3 克雷 4 1.4 連接機 5 1.5 Cell處理器 6 1.6 多點計算 8 1.7 早期的GPGPU編程 10 1.8 單核解決方案的消亡 11 1.9 英偉達和CUDA 12 1.10 GPU硬件 13 1.11 CUDA的替代選擇 15 1.11.1 OpenCL 15 1.11.2 DirectCompute 16 1.11.3 CPU的替代選擇 16 1.11.4 編譯指令和庫 17 1.12 本章小結 18
第2章 使用GPU理解並行計算 19 2.1 簡介 19 2.2 傳統的串行代碼 19 2.3 串行/並行問題 21 2.4 並發性 22 2.5 並行處理的類型 25 2.5.1 基於任務的並行處理 25 2.5.2 基於數據的並行處理 27 2.6 弗林分類法 29 2.7 常用的並行模式 30 2.7.1 基於循環的模式 30 2.7.2 派生/匯集模式 31 2.7.3 分條/分塊 33 2.7.4 分而治之 34 2.8 本章小結 34
第3章 CUDA硬件概述 35 3.1 PC架構 35 3.2 GPU硬件結構 39 3.3 CPU與GPU 41 3.4 GPU計算能力 42 3.4.1 計算能力1.0 42 3.4.2 計算能力1.1 43 3.4.3 計算能力1.2 44 3.4.4 計算能力1.3 44 3.4.5 計算能力2.0 44 3.4.6 計算能力2.1 46
第4章 CUDA環境搭建 48 4.1 簡介 48 4.2 在Windows下安裝軟件開發工具包 48 4.3 Visual Studio 49 4.3.1 工程 49 4.3.2 64位用戶 49 4.3.3 創建工程 51 4.4 Linux 52 4.5 Mac 55 4.6 安裝調試器 56 4.7 編譯模型 58 4.8 錯誤處理 59 4.9 本章小結 60
第5章 線程網格、線程塊以及線程 61 5.1 簡介 61 5.2 線程 61 5.2.1 問題分解 62 5.2.2 CPU與GPU的不同 63 5.2.3 任務執行模式 64 5.2.4 GPU線程 64 5.2.5 硬件初窺 66 5.2.6 CUDA內核 69 5.3 線程塊 70 5.4 線程網格 74 5.4.1 跨幅與偏移 76 5.4.2 X與Y方向的線程索引 77 5.5 線程束 83 5.5.1 分支 83 5.5.2 GPU的利用率 85 5.6 線程塊的調度 88 5.7 一個實例——統計直方圖 89 5.8 本章小結 96
第6章 CUDA內存處理 99 6.1 簡介 99 6.2 高速緩存 100 6.3 寄存器的用法 103 6.4 共享內存 112 6.4.1 使用共享內存排序 113 6.4.2 基數排序 117 6.4.3 合並列表 123 6.4.4 並行合並 128 6.4.5 並行歸約 131 6.4.6 混合算法 134 6.4.7 不同GPU上的共享內存 138 6.4.8 共享內存小結 139 6.5 常量內存 140 6.5.1 常量內存高速緩存 140 6.5.2 常量內存廣播機制 142 6.5.3 運行時進行常量內存更新 152 6.6 全局內存 157 6.6.1 記分牌 165 6.6.2 全局內存排序 165 6.6.3 樣本排序 168 6.7 紋理內存 188 6.7.1 紋理緩存 188 6.7.2 基於硬件的內存獲取操作 189 6.7.3 使用紋理的限制 190 6.8 本章小結 190
第7章 CUDA實踐之道 191 7.1 簡介 191 7.2 串行編碼與並行編碼 191 7.2.1 CPU與GPU的設計目標 191 7.2.2 CPU與GPU上的最佳算法對比 194 7.3 數據集處理 197 7.4 性能分析 206 7.5 一個使用AES的示例 218 7.5.1 算法 219 7.5.2 AES的串行實現 223 7.5.3 初始內核函數 224 7.5.4 內核函數性能 229 7.5.5 傳輸性能 233 7.5.6 單個執行流版本 234 7.5.7 如何與CPU比較 235 7.5.8 考慮在其他GPU上運行 244 7.5.9 使用多個流 248 7.5.10 AES總結 249 7.6 本章小結 249
第8章 多CPU和多GPU解決方案 252 8.1 簡介 252 8.2 局部性 252 8.3 多CPU系統 252 8.4 多GPU系統 253 8.5 多GPU算法 254 8.6 按需選用GPU 255 8.7 單節點系統 258 8.8 流 259 8.9 多節點系統 273 8.10 本章小結 284
第9章 應用程序性能優化 286 9.1 策略1:並行/串行在GPU/CPU上的問題分解 286 9.1.1 分析問題 286 9.1.2 時間 286 9.1.3 問題分解 288 9.1.4 依賴性 289 9.1.5 數據集大小 292 9.1.6 分辨率 293 9.1.7 識別瓶頸 294 9.1.8 CPU和GPU的任務分組 297 9.1.9 本節小結 299 9.2 策略2:內存因素 299 9.2.1 內存帶寬 299 9.2.2 限制的來源 300 9.2.3 內存組織 302 9.2.4 內存訪問以計算比率 303 9.2.5 循環融合和內核融合 308 9.2.6 共享內存和高速緩存的使用 309 9.2.7 本節小結 311 9.3 策略3:傳輸 311 9.3.1 鎖頁內存 311 9.3.2 零復制內存 315 9.3.3 帶寬限制 322 9.3.4 GPU計時 327 9.3.5 重疊GPU傳輸 330 9.3.6 本節小結 334 9.4 策略4:線程使用、計算和分支 335 9.4.1 線程內存模式 335 9.4.2 非活動線程 337 9.4.3 算術運算密度 338 9.4.4 一些常見的編譯器優化 342 9.4.5 分支 347 9.4.6 理解底層匯編代碼 351 9.4.7 寄存器的使用 355 9.4.8 本節小結 357 9.5 策略5:算法 357 9.5.1 排序 358 9.5.2 歸約 363 9.5.3 本節小結 384 9.6 策略6:資源競爭 384 9.6.1 識別瓶頸 384 9.6.2 解析瓶頸 396 9.6.3 本節小結 403 9.7 策略7:自調優應用程序 403 9.7.1 識別硬件 404 9.7.2 設備的利用 405 9.7.3 性能采樣 407 9.7.4 本節小結 407 9.8 本章小結 408
第10章 函數庫和SDK 410 10.1 簡介 410 10.2 函數庫 410 10.2.1 函數庫通用規范 411 10.2.2 NPP 411 10.2.3 Thrust 419 10.2.4 CuRAND 434 10.2.5 CuBLAS庫 438 10.3 CUDA運算SDK 442 10.3.1 設備查詢 443 10.3.2 帶寬測試 445 10.3.3 SimpleP2P 446 10.3.4 asyncAPI和cudaOpenMP 448 10.3.5 對齊類型 455 10.4 基於指令的編程 457 10.5 編寫自己的內核 464 10.6 本章小結 466
第11章 規划GPU硬件系統 467 11.1 簡介 467 11.2 CPU處理器 469 11.3 GPU設備 470 11.3.1 大容量內存的支持 471 11.3.2 ECC內存的支持 471 11.3.3 Tesla計算集群驅動程序 471 11.3.4 更高雙精度數學運算 472 11.3.5 大內存總線帶寬 472 11.3.6 系統管理中斷 472 11.3.7 狀態指示燈 472 11.4 PCI-E總線 472 11.5 GeForce板卡 473 11.6 CPU內存 474 11.7 風冷 475 11.8 液冷 477 11.9 機箱與主板 479 11.10 大容量存儲 481 11.10.1 主板上的輸入/輸出接口 481 11.10.2 專用RAID控制器 481 11.10.3 HDSL 483 11.10.4 大容量存儲需求 483 11.10.5 聯網 483 11.11 電源選擇 484 11.12 操作系統 487 11.12.1 Windows 487 11.12.2 Linux 488 11.13 本章小結 488
第12章 常見問題、原因及解決方案 489 12.1 簡介 489 12.2 CUDA指令錯誤 489 12.2.1 CUDA錯誤處理 489 12.2.2 內核啟動和邊界檢查 490 12.2.3 無效的設備操作 491 12.2.4 volatile限定符 492 12.2.5 計算能力依賴函數 494 12.2.6 設備函數、全局函數和主機函數 495 12.2.7 內核中的流 496 12.3 並行編程問題 497 12.3.1 競爭冒險 497 12.3.2 同步 498 12.3.3 原子操作 502 12.4 算法問題 504 12.4.1 對比測試 504 12.4.2 內存泄漏 506 12.4.3 耗時的內核程序 506 12.5 查找並避免錯誤 507 12.5.1 你的GPU程序有多少錯誤 507 12.5.2 分而治之 508 12.5.3 斷言和防御型編程 509 12.5.4 調試級別和打印 511 12.5.5 版本控制 514 12.6 為未來的GPU進行開發 515 12.6.1 開普勒架構 515 12.6.2 思考 518 12.7 后續學習資源 519 12.7.1 介紹 519 12.7.2 在線課程 519 12.7.3 教學課程 520 12.7.4 書籍 521 12.7.5 英偉達CUDA資格認證 521 12.8 本章小結 522
詳細資料
- ISBN:9787111448617
- 規格:522頁 / 普通級 / 1-1
- 出版地:大陸
|
|
|
| 作者:王怡仁主講 出版社:賽斯文化 出版日期:2017-11-01 66折: $ 660 | | 作者:許豪 出版社:捷徑文化 出版日期:2022-11-02 66折: $ 238 | | 作者:陳嘉珍 出版社:賽斯文化 出版日期:2012-12-03 66折: $ 211 | | 作者:許添盛 出版社:賽斯文化 出版日期:2017-01-06 66折: $ 660 | |
|
| 作者:安正鳳 出版社:語研學院 出版日期:2020-04-09 $ 299 | | 作者:S井ミツル 出版社:東立出版社 出版日期:2025-02-12 $ 153 | | 作者:游文玫 出版社:時報文化出版企業股份有限公司 出版日期:2025-01-21 $ 379 | | 作者:蔡康永 出版社:如何 出版日期:2024-08-01 $ 316 | |
|
| 作者:芝崎みゆき 出版社:如果出版 出版日期:2025-02-21 $ 300 | | $ 127 | | 作者:高瑞希 出版社:三采 出版日期:2025-02-27 $ 331 | | 作者:仔縞樂々 出版社:台灣角川股份有限公司 出版日期:2025-02-20 $ 126 | |
|
|
|
|