TOP
0
0
【簡體曬書節】 單本79折,5本7折,優惠只到5/31,點擊此處看更多!
基於CUDA的GPU並行程序開發指南(簡體書)
滿額折

基於CUDA的GPU並行程序開發指南(簡體書)

商品資訊

人民幣定價:179 元
定價
:NT$ 1074 元
優惠價
87934
領券後再享88折起
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:28 點
相關商品
商品簡介
作者簡介
目次

商品簡介

本書旨在幫助讀者瞭解與基於CUDA的並行編程技術有關的基本概念,並掌握實用c語言進行GPU高性能編程的相關技巧。本書第一部分通過CPU多線程編程解釋了並行計算,使得沒有太多並行計算基礎的讀者也能毫無阻礙地進入CUDA天地;第二部分重點介紹了基於CUDA的GPU大規模並行程序的開發與實現,並通過大量的性能分析幫助讀者理解如何開發一個好的GPU並行程序以及GPU架構對程序性能的影響;本書的第三部分介紹了一些常用的CUDA庫。
本書內容詳盡、實例豐富,可作為高等院校相關專業高年級本科生和研究生課程的教材,也可作為有關專業研究生或計算機技術人員的參考書。

作者簡介

托爾加‧索亞塔,紐約州立大學奧爾巴尼分校電氣與計算機工程系副教授。

目次

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

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 934
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區