- GPU編程實戰(基于Python和CUDA)
- (美)布萊恩·圖奧邁寧
- 804字
- 2022-12-20 18:30:46
本書內容
第1章“為什么要學習GPU編程”,介紹學習這個領域知識的動機、如何應用阿姆達爾定律,以及評估從串行編程切換到GPU編程后所能帶來的性能提升。
第2章“搭建GPU編程環境”,解釋如何在Windows和Linux系統下為CUDA編程搭建合適的Python與C++開發環境。
第3章“PyCUDA入門”,展示利用Python語言進行GPU編程時所需的基本技能。本章著重介紹如何使用PyCUDA的gpuarray類與GPU進行數據傳輸,以及如何使用PyCUDA的ElementwiseKernel函數來編譯簡單的CUDA內核函數。
第4章“內核函數、線程、線程塊與網格”,介紹編寫高效CUDA內核函數所需的基礎知識。這些內核函數是在GPU上運行的并行函數。本章除了介紹如何編寫CUDA設備函數(由CUDA內核直接調用的“串行”函數),還將介紹CUDA的抽象線程塊/網格結構及其在啟動內核函數方面所發揮的作用。
第5章“流、事件、上下文與并發性”,講解CUDA流的概念。利用CUDA流,我們可以在GPU上同時啟動多個內核函數并實現同步。本章介紹如何使用CUDA事件來計算內核函數的運行時間,以及如何創建和使用CUDA上下文。
第6章“CUDA代碼的調試與性能分析”,填補純CUDA C編程方面的一些空白,并展示如何使用Nsight IDE進行開發和調試,以及如何使用英偉達(后簡稱NVIDA)公司的性能分析工具。
第7章“通過Scikit-CUDA模塊使用CUDA庫”,介紹幾種可以通過Python Scikit-CUDA模塊使用的標準CUDA庫,例如cuBLAS、cuFFT和cuSolver庫。
第8章“CUDA設備函數庫與Thrust庫”,演示如何在代碼中使用cuRAND和CUDA Math API庫,以及如何使用CUDA Thrust C++容器。
第9章“實現深度神經網絡”,介紹如何應用前面幾章中介紹的知識,從零開始構建一個完整的深度神經網絡。
第10章“應用編譯好的GPU代碼”,展示如何使用PyCUDA和Ctypes,實現Python代碼與預編譯的GPU代碼之間的交互。
第 11 章“CUDA性能優化”,講解非常底層的各種性能優化技巧,特別是與CUDA相關的技巧,例如向量化內存訪問、原子操作、線程束洗牌和使用內聯PTX匯編代碼。
第12章“未來展望”,給出一些教育規劃和職業規劃方面的內容。當然,這些都是以扎實掌握GPU編程基礎知識為前提的。
最后的“習題提示”針對各章的習題給出了解題思路。
- Android應用程序開發與典型案例
- MATLAB圖像處理超級學習手冊
- Android 9 Development Cookbook(Third Edition)
- Visual Basic程序設計習題解答與上機指導
- 常用工具軟件立體化教程(微課版)
- Babylon.js Essentials
- ServiceNow:Building Powerful Workflows
- Mastering Backbone.js
- 現代C++編程實戰:132個核心技巧示例(原書第2版)
- JavaScript機器人編程指南
- Emotional Intelligence for IT Professionals
- Java并發實現原理:JDK源碼剖析
- Bitcoin Essentials
- Java EE輕量級解決方案:S2SH
- 第五空間戰略:大國間的網絡博弈