基於CUDA的GPU並行程式開發指南

基於CUDA的GPU並行程式開發指南

《基於CUDA的GPU並行程式開發指南》是2019年機械工業出版社出版的圖書,作者是[美] 托爾加·索亞塔。

基本介紹

  • 中文名:基於CUDA的GPU並行程式開發指南
  • 作者:[美] 托爾加·索亞塔
  • 譯者:唐傑
  • 出版社機械工業出版社
  • ISBN:9787111630616
內容簡介,圖書目錄,作者簡介,

內容簡介

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

圖書目錄

譯者序
前言
關於作者
第一部分 理解CPU的並行性
第1章 CPU並行編程概述
1.1 並行編程的演化
1.2 核心越多,並行性越高
1.3 核心與執行緒
1.3.1 並行化更多的是執行緒還是核心
1.3.2 核心資源共享的影響
1.3.3 記憶體資源共享的影響
1.4 第一個串列程式
1.4.1 理解數據傳輸速度
1.4.2 imflip.c中的main()函式
1.4.3 垂直翻轉行:FlipImageV()
1.4.4 水平翻轉列:FlipImageH()
1.5 程式的編輯、編譯、運行
1.5.1 選擇編輯器和編譯器
1.5.2 在Windows7、8、10平台上開發
1.5.3 在Mac平台上開發
1.5.4 在Unix平台上開發
1.6 Unix速成
1.6.1 與目錄相關的Unix命令
1.6.2 與檔案相關的Unix命令
1.7 調試程式
1.7.1 gdb
1.7.2 古典調試方法
1.7.3 valgrind
1.8 第一個串列程式的性能
1.8.1 可以估計執行時間嗎
1.8.2 代碼執行時OS在做什麼
1.8.3 如何並行化
1.8.4 關於資源的思考
第2章 開發第一個CPU並行程式
2.1 第一個並行程式
2.1.1 imflipP.c中的main()函式
2.1.2 運行時間
2.1.3 imflipP.c中main()函式代碼的劃分
2.1.4 執行緒初始化
2.1.5 創建執行緒
2.1.6 執行緒啟動/執行
2.1.7 執行緒終止(合併)
2.1.8 執行緒任務和數據劃分
2.2 點陣圖檔案
2.2.1 BMP是一種無損/不壓縮的檔案格式
2.2.2 BMP圖像檔案格式
2.2.3 頭檔案ImageStuff.h
2.2.4 ImageStuffc中的圖像操作函式
2.3 執行執行緒任務
2.3.1 啟動執行緒
2.3.2 多執行緒垂直翻轉函式MTFlipV()
2.3.3 FlipImageV()和MTFlipV()的比較
2.3.4 多執行緒水平翻轉函式MTFlipH()
2.4 多執行緒代碼的測試/計時
第3章 改進第-個CPU並行程式
……
第二部分 基於CUDA的GPU編程
第三部分 拓展知識

作者簡介

唐傑,博士,南京大學計算機科學與技術系副教授,主要研究高性能計算與並行處理技術,主持和參與國家科技重大專項、國家自然科學基金等十餘項課題,在國內外學術會議和期刊上發表了50多篇論文,還參與編寫了多部教材。
  托爾加·索亞塔(Tolga Soyata),紐約州立大學奧爾巴尼分校電氣與計算機工程系副教授。主要教授大規模積體電路、GPU編程課程,曾擔任羅切斯特大學CUDA教學中心和CUDA研究中心負責人。
  Tolga Soyata,於1988年在伊斯坦堡技術大學電子與通信工程系獲得學士學位,1992年在美國馬里蘭州巴爾的摩的約翰·霍普金斯大學電氣與計算機工程系(ECE)獲得碩士學位,2000年在羅切斯特大學電氣與計算機工程系獲得博士學位。2000年至2015年間,他成立了一家IT外包和複印機銷售/服務公司。在運營公司的同時,他重返學術界,在羅切斯特大學電氣與計算機工程系擔任研究員。之後,他成為助理教授,並一直擔任電氣與計算機工程系教職研究人員至2016年。在羅切斯特大學電氣與計算機工程系任職期間,他指導了三名博士研究生。其中兩人在他的指導下獲得博士學位,另一位在他2016年加入紐約州立大學奧爾巴尼分校擔任電氣與計算機工程系副教授時留在了羅切斯特大學。Soyata的教學課程包括大規模積體電路、模擬電路以及使用FPGA和GPU進行並行編程。他的研究興趣包括信息物理系統、數字健康和高性能醫療移動雲計算系統等。
  Tolga Soyata從2009年開始從事GPU編程的教學,當時他聯繫Nvidia將羅切斯特大學認證為CUDA教學中心(CTC)。在Nvidia將羅切斯特大學認證為教學中心後,他成為主要負責人。之後,Nvidia還將羅切斯特大學認證為CUDA研究中心(CRC),他也成為項目負責人。Tolga Soyata在羅切斯特大學擔任這些計畫的負責人直到他於2016年加入紐約州立大學奧爾巴尼分校。這些計畫後來被Nvidia命名為GPU教育中心和GPU研究中心。在羅切斯特大學期間,他講授了5年GPU編程和高級GPU項目開發課程,這些課程同時被列入電氣與計算機工程系以及計算機科學與技術系的課程體系。自2016年加入紐約州立大學奧爾巴尼分校以來,他一直在講授類似的課程。本書是他在兩所大學講授GPU課程的經驗結晶。

相關詞條

熱門詞條

聯絡我們