商品簡介
作者簡介
名人/編輯推薦
全面、詳實地講解了CUDA并行程序設計的技術知識點和編程方法,包含大量實用代碼示例,是目前學習CUDA編程最權威的著作之一
目次
譯者序
前 言
第1章 超級計算簡史
1.1 簡介
1.2 馮?諾依曼計算機架構
1.3 克雷
1.4 連接機
1.5 Cell處理器
1.6 多點計算
1.7 早期的GPGPU編程
1.8 單核解決方案的消亡
1.9 英偉達和CUDA
1.10 GPU硬件
1.11 CUDA的替代選擇
致中國讀者 譯者序 前 言 第1章 超級計算簡史 1.1 簡介 1.2 馮?諾依曼計算機架構 1.3 克雷 1.4 連接機 1.5 Cell處理器 1.6 多點計算 1.7 早期的GPGPU編程 1.8 單核解決方案的消亡 1.9 英偉達和CUDA 1.10 GPU硬件 1.11 CUDA的替代選擇 1.11.1 OpenCL 1.11.2 DirectCompute 1.11.3 CPU的替代選擇 1.11.4 編譯指令和庫 1.12 本章小結 第2章 使用GPU理解并行計算 2.1 簡介 2.2 傳統的串行代碼 2.3 串行/并行問題 2.4 并發性 2.5 并行處理的類型 2.5.1 基于任務的并行處理 2.5.2 基于數據的并行處理 2.6 弗林分類法 2.7 常用的并行模式 2.7.1 基于循環的模式 2.7.2 派生/匯集模式 2.7.3 分條/分塊 2.7.4 分而治之 2.8 本章小結 第3章 CUDA硬件概述 3.1 PC架構 3.2 GPU硬件結構 3.3 CPU與GPU 3.4 GPU計算能力 3.4.1 計算能力1.0 3.4.2 計算能力1.1 3.4.3 計算能力1.2 3.4.4 計算能力1.3 3.4.5 計算能力2.0 3.4.6 計算能力2.1 第4章 CUDA環境搭建 4.1 簡介 4.2 在Windows下安裝軟件開發工具包 4.3 Visual Studio 4.3.1 工程 4.3.2 64位用戶 4.3.3 創建工程 4.4 Linux 4.5 Mac 4.6 安裝調試器 4.7 編譯模型 4.8 錯誤處理 4.9 本章小結 第5章 線程網格、線程塊以及線程 5.1 簡介 5.2 線程 5.2.1 問題分解 5.2.2 CPU與GPU的不同 5.2.3 任務執行模式 5.2.4 GPU線程 5.2.5 硬件初窺 5.2.6 CUDA內核 5.3 線程塊 5.4 線程網格 5.4.1 跨幅與偏移 5.4.2 X與Y方向的線程索引 5.5 線程束 5.5.1 分支 5.5.2 GPU的利用率 5.6 線程塊的調度 5.7 一個實例——統計直方圖 5.8 本章小結 第6章 CUDA內存處理 6.1 簡介 6.2 高速緩存 6.3 寄存器的用法 6.4 共享內存 6.4.1 使用共享內存排序 6.4.2 基數排序 6.4.3 合并列表 6.4.4 并行合并 6.4.5 并行歸約 6.4.6 混合算法 6.4.7 不同GPU上的共享內存 6.4.8 共享內存小結 6.5 常量內存 6.5.1 常量內存高速緩存 6.5.2 常量內存廣播機制 6.5.3 運行時進行常量內存更新 6.6 全局內存 6.6.1 記分牌 6.6.2 全局內存排序 6.6.3 樣本排序 6.7 紋理內存 6.7.1 紋理緩存 6.7.2 基于硬件的內存獲取操作 6.7.3 使用紋理的限制 6.8 本章小結 第7章 CUDA實踐之道 7.1 簡介 7.2 串行編碼與并行編碼 7.2.1 CPU與GPU的設計目標 7.2.2 CPU與GPU上的最佳算法對比 7.3 數據集處理 7.4 性能分析 7.5 一個使用AES的示例 7.5.1 算法 7.5.2 AES的串行實現 7.5.3 初始內核函數 7.5.4 內核函數性能 7.5.5 傳輸性能 7.5.6 單個執行流版本 7.5.7 如何與CPU比較 7.5.8 考慮在其他GPU上運行 7.5.9 使用多個流 7.5.10 AES總結 7.6 本章小結 第8章 多CPU和多GPU解決方案 8.1 簡介 8.2 局部性 8.3 多CPU系統 8.4 多GPU系統 8.5 多GPU算法 8.6 按需選用GPU 8.7 單節點系統 8.8 流 8.9 多節點系統 8.10 本章小結 第9章 應用程序性能優化 9.1 策略1:并行/串行在GPU/CPU上的問題分解 9.1.1 分析問題 9.1.2 時間 9.1.3 問題分解 9.1.4 依賴性 9.1.5 數據集大小 9.1.6 分辨率 9.1.7 識別瓶頸 9.1.8 CPU和GPU的任務分組 9.1.9 本節小結 9.2 策略2:內存因素 9.2.1 內存帶寬 9.2.2 限制的來源 9.2.3 內存組織 9.2.4 內存訪問以計算比率 9.2.5 循環融合和內核融合 9.2.6 共享內存和高速緩存的使用 9.2.7 本節小結 9.3 策略3:傳輸 9.3.1 鎖頁內存 9.3.2 零復制內存 9.3.3 帶寬限制 9.3.4 GPU計時 9.3.5 重疊GPU傳輸 9.3.6 本節小結 9.4 策略4:線程使用、計算和分支 9.4.1 線程內存模式 9.4.2 非活動線程 9.4.3 算術運算密度 9.4.4 一些常見的編譯器優化 9.4.5 分支 9.4.6 理解底層匯編代碼 9.4.7 寄存器的使用 9.4.8 本節小結 9.5 策略5:算法 9.5.1 排序 9.5.2 歸約 9.5.3 本節小結 9.6 策略6:資源競爭 9.6.1 識別瓶頸 9.6.2 解析瓶頸 9.6.3 本節小結 9.7 策略7:自調優應用程序 9.7.1 識別硬件 9.7.2 設備的利用 9.7.3 性能采樣 9.7.4 本節小結 9.8 本章小結 第10章 函數庫和SDK 10.1 簡介 10.2 函數庫 10.2.1 函數庫通用規范 10.2.2 NPP 10.2.3 Thrust 10.2.4 CuRAND 10.2.5 CuBLAS庫 10.3 CUDA運算SDK 10.3.1 設備查詢 10.3.2 帶寬測試 10.3.3 SimpleP2P 10.3.4 asyncAPI和cudaOpenMP 10.3.5 對齊類型 10.4 基于指令的編程 10.5 編寫自己的內核 10.6 本章小結 第11章 規劃GPU硬件系統 11.1 簡介 11.2 CPU處理器 11.3 GPU設備 11.3.1 大容量內存的支持 11.3.2 ECC內存的支持 11.3.3 Tesla計算集群驅動程序 11.3.4 更高雙精度數學運算 11.3.5 大內存總線帶寬 11.3.6 系統管理中斷 11.3.7 狀態指示燈 11.4 PCI-E總線 11.5 GeForce板卡 11.6 CPU內存 11.7 風冷 11.8 液冷 11.9 機箱與主板 11.10 大容量存儲 11.10.1 主板上的輸入/輸出接口 11.10.2 專用RAID控制器 11.10.3 HDSL 11.10.4 大容量存儲需求 11.10.5 聯網 11.11 電源選擇 11.12 操作系統 11.12.1 Windows 11.12.2 Linux 11.13 本章小結 第12章 常見問題、原因及解決方案 12.1 簡介 12.2 CUDA指令錯誤 12.2.1 CUDA錯誤處理 12.2.2 內核啟動和邊界檢查 12.2.3 無效的設備操作 12.2.4 volatile限定符 12.2.5 計算能力依賴函數 12.2.6 設備函數、全局函數和主機函數 12.2.7 內核中的流 12.3 并行編程問題 12.3.1 競爭冒險 12.3.2 同步 12.3.3 原子操作 12.4 算法問題 12.4.1 對比測試 12.4.2 內存泄漏 12.4.3 耗時的內核程序 12.5 查找并避免錯誤 12.5.1 你的GPU程序有多少錯誤 12.5.2 分而治之 12.5.3 斷言和防御型編程 12.5.4 調試級別和打印 12.5.5 版本控制 12.6 為未來的GPU進行開發 12.6.1 開普勒架構 12.6.2 思考 12.7 后續學習資源 12.7.1 介紹 12.7.2 在線課程 12.7.3 教學課程 12.7.4 書籍 12.7.5 英偉達CUDA資格認證 12.8 本章小結
書摘/試閱
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

