CUDA 高性能並行計算 CUDA高性能并行计算

杜安·斯托爾蒂 (Duane Storti), 梅特·尤爾托盧 (Mete Yurtoglu)

買這商品的人也買了...

商品描述

本書以清晰簡明的方式介紹了CUDAC編程的核心知識,始於運行CUDA樣例程序,快速引導讀者構建自己的代碼。自始至終,你可以通過親手創建、運行和修改書中的示例程序進行體驗式教學。書中配備的實踐項目用以加深和鞏固你的理解。

作者簡介

作者:(美國)杜安·斯托爾蒂(Duane Storti) (土耳其)梅特·尤爾托盧(Mete Yurtoglu)譯者:蘇統華項文成李松澤姚宇鵬

杜安·斯托爾蒂(Duane Storti), 1984年從康奈爾大學獲得理論和應用機械學博士學位,現任教於華盛頓大學西雅圖校區機械工程系,從事工程數學、動力學與振動、計算機輔助設計、3D打印以及GPU計算方面的教學和研究工作。

梅特·尤爾托盧(Mete Yurtoglu),2008年獲得土耳其伊斯坦布爾海峽大學物理學和機械工程學學士學位。他的研究方向為基於GPU的計算機視覺與機器學習算法。

蘇統華,副教授,晗爾濱工業大學軟件學院碩士生導師,GPU研究中心及GPU教育中心負責人,英偉達中國首批CUDA官方認證工程師。主要研究領域包括大規模並行計算、模式識別、物聯網大數據智能信息處理、智能媒體交互與計算等。著有英文專著《Chinese Handwriting Recognition:An Algorithmic Perspective》(由德國施普林格出版社出版),並有CUDA相關譯著3本(由機械工業出版社出版)。

目錄大綱

本書讚譽
致謝
第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.1dist_v1應用15 
1.2.2dist_v2應用16 
1.3本章小結18 
1.4推薦項目18 

第2章CUDA基礎知識19 
2.1CUDA並行模式19 
2.2需要知道的CUDAAPI和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.3dist_2d43 
4.2通過圖形交互實時顯示45 
4.3stability應用程序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.2Thrust庫143 
8.2.1使用inner_product()計算向量的模144 
8.2.2使用transform()計算距離147 
8.2.3使用generate()、transform()以及reduce()對的值進行估計151 
8.3cuRAND庫156 
8.4NPP庫158 
8.4.1sharpen_npp159 
8.4.2更多使用NPP進行的圖像處理操作163 
8.5線性代數中的cuSOLVER和cuBLAS實踐166 
8.6cuDNN庫170 
8.7ArrayFire庫171 
8.8本章小結171 
8.9推薦項目171 
參考文獻172 

第9章探索CUDA生態系統174
9.1主要資源的權威列表174 
9.1.1CUDA空間174 
9.1.2其他的主要網絡資源175 
9.1.3在線課程176 
9.1.4CUDA書籍176 
9.2更多資源179 
9.2.1CUDA樣例179 
9.2.2CUDA語言和庫179 
9.2.3更多的CUDA書籍179 
9.3本章小結180 
9.4推薦項目180 
附錄A硬件設置182 
附錄B軟件設置189 
附錄CC語言編程須知201 
附錄DCUDA實踐技巧:計時、性能分析、錯誤處理與調試229