目 錄 Contents
本書贊譽
緻謝
第0章 本書導讀1
0.1 什麼是CUDA1
0.2 學習CUDA的“須知”2
0.3 本書的讀者對象3
0.4 學習CUDA的必備3
0.5 本書的組織結構4
0.6 本書體例5
0.7 本書代碼6
0.8 用戶指南7
0.9 曆史沿革8
參考文獻9
第1章 起步10
1.1 運行CUDA樣例程序10
1.1.1 在Windows下運行CUDA樣例程序11
1.1.2 在Linux下運行CUDA樣例程序13
1.1.3 估計“加速效果”13
1.2 運行我們自己的串行程序14
1.2.1 dist_v1應用15
1.2.2 dist_v2應用16
1.3 本章小結18
1.4 推薦項目18
第2章 CUDA基礎知識19
2.1 CUDA並行模式 19
2.2 需要知道的CUDA API和C語言拓展21
2.3 本章小結23
2.4 推薦項目23
參考文獻24
第3章 從循環到網格25
3.1 並行化 dist_v125
3.2 並行化dist_v229
3.3 標準操作流程33
3.4 簡化操作流程33
3.4.1 統一內存和托管數組34
3.4.2 使用cudaMallocManaged()實現的距離應用34
3.5 本章小結36
3.6 推薦項目37
參考文獻38
第4章 二維網格與交互式圖形39
4.1 啓動二維計算網格40
4.1.1 二維內核啓動的語法41
4.1.2 定義二維內核41
4.1.3 dist_2d43
4.2 通過圖形交互實時顯示45
4.3 stability應用程序54
4.4 本章小結62
4.5 推薦項目62
參考文獻62
第5章 模闆與共享內存64
5.1 綫程間依賴64
5.2 一維網格上的導數計算66
5.2.1 實現dd_ld_global66
5.2.2 實現dd_ld_shared69
5.2.3 解決二維拉普拉斯方程:heat_2d72
5.2.4 圖像邊緣銳化:sharpen83
5.3 本章小結96
5.4 推薦項目97
參考文獻98
第6章 歸約與原子操作99
6.1 全局交互的綫程99
6.2 實現parallel_dot100
6.3 計算整體屬性:centroid_2d106
6.4 本章小結113
6.5 推薦項目113
參考文獻114
第7章 三維數據交互115
7.1 計算三維網格數據:dist_3d117
7.2 查看三維數據並與之交互:vis_3d119
7.2.1 切片法121
7.2.2 體繪製法124
7.2.3 光綫投射法124
7.2.4 創建vis_3d應用126
7.3 本章小結139
7.4 推薦項目139
參考文獻140
第8章 CUDA函數庫實踐141
8.1 自定義的與現有的141
8.2 Thrust庫143
8.2.1 使用inner_product()計算嚮量的模144
8.2.2 使用transform()計算距離147
8.2.3 使用generate()、transform()以及reduce()對的值進行估計151
8.3 cuRAND庫156
8.4 NPP庫158
8.4.1 sharpen_npp159
8.4.2 更多使用NPP進行的圖像處理操作163
8.5 綫性代數中的cuSOLVER和cuBLAS實踐166
8.6 cuDNN庫170
8.7 ArrayFire庫171
8.8 本章小結171
8.9 推薦項目171
參考文獻172
第9章 探索CUDA生態係統174
9.1 主要資源的權威列錶174
9.1.1 CUDA空間174
9.1.2 其他的主要網絡資源175
9.1.3 在綫課程176
9.1.4 CUDA書籍176
9.2 更多資源179
9.2.1 CUDA樣例179
9.2.2 CUDA語言和庫179
9.2.3 更多的CUDA書籍179
9.3 本章小結180
9.4 推薦項目180
附錄A 硬件設置182
附錄B 軟件設置189
附錄C C語言編程須知201
附錄D CUDA實踐技巧:計時、性能分析、錯誤處理與調試229
· · · · · · (
收起)