CUDA GPU 編程從入門到放棄

CUDA GPU 編程從入門到放棄

來自專欄 數字編程

GPU 為這一次的人工智慧復興提供了「戰略核能力」,其中又以 NVIDIA GPU 為中堅力量,驅動NV GPU 以 CUDA 為主要編程語言。

GPU 編程早期被稱為 通用GPU編程(General-popuse GPU programing,GPGPU),這一時期的程序員藉助 Direct3D 和 OpenGL 的圖形 API 通過迷惑圖形硬體來執行非圖形的計算任務。CUDA (自2007年)的出現改變了這一切。Ian Buck 在斯坦福大學開展一項名為 Brook 的項目,意在簡化 GPGPU 應用程序的的開發過程。之後 Buck 進入 NVIDIA 並領導開發了GPU 編程工具套裝,即 CUDA。 -- 摘自 《CUDA專家手冊》

本文提供介紹一些CUDA編程入門材料。

入門書籍《CUDA by Example》

進階書籍 《GPU高性能編程CUDA實戰》 《CUDA專家手冊》 《大規模並行處理器編程實戰(第2版)》

豆列:CUDA Programming

《大規模並行處理器編程實戰(第2版)》原本在 Coursera 上有公開課,現在好像搜不到了;曾受邀做過這門課的網路助教(更早一期的課程拿了滿分+);課程的編程 exercises 非常值得做一遍,試試這個資源鏈接 [Coursera] Heterogeneous Parallel Programming。

為什麼說「放棄」呢,因為大部分時候不需要寫太底層的 CUDA kernel,很多開源(如Tensorflow、Pytorch 等)都有很好的封裝,大多數的時候調用 cuBLAS、cudnn 就可以完成計算的任務。


推薦閱讀:

TAG:並行計算 | CUDA | 圖形處理器GPU |