基於 CUDA 的 GPU 並行程序開發指南 (GPU Parallel Program Development Using CUDA)

[美]托爾加·索亞塔(Tolga Soyata) 著

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

商品描述

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

本書詳細介紹GPU編程方法,展示了不同的GPU系列之間的區別。這樣的講授方式能使讀者更好地應對下一代或未來的GPU系列。本書重點關註基礎性概念,同時也關註與平臺相關的概念。提供平臺相關的內容與通用的GPU概念一樣有價值。
本書分為三個部分,第一部分利用CPU的多線程概念介紹了並行性的基礎知識,通過一些簡單的代碼示例展示瞭如何將一個大任務分成若乾並行的子任務,然後將它們映射到CPU線程。對於同一個任務,嘗試了多種不同的並行實現方法,並針對核心和內存操作分析了這些方法的優缺點。
第二部分介紹了GPU的大規模並行性。在多個Nvidia GPU平臺上對相同的程序進行了並行化實現,並分析了它們的性能。由於CPU和GPU的核心與內存結構不同,運行結果也顯示出了很多有趣的差異。最終目標是希望程序員既能掌握有益的思想,也能瞭解那些不好的做法,這樣在自己開發的程序中能採用有用的策略,同時避免犯錯。
第三部分為想要拓展知識的讀者提供了建議。該部分簡要介紹了一些常用的CUDA庫(例如cuBLAS、cuFFT、NPP和Thrust),OpenCL編程語言,其他GPU編程語言和API(如Python、OpenCV、OpenGL、Swift與Metal),以及深度學習庫cuDNN。