1. 程式人生 > >關於CUDA的一些學習資料

關於CUDA的一些學習資料

前言

最近看了一些關於CUDA方面的資料,並粗略地瀏覽了兩本關於CUDA和GPGPU的書(《GPGPU程式設計技術:從GLSL、CUDA到OpenCL》《CUDA並行程式設計:GPU程式設計指南》),對於CUDA目前本人也是處於正在入門的階段。在此彙編CUDA的學習資料,方便以後的學習。

關於GPGPU

所謂GPGPU,就是把強大的圖形處理器應用於日益複雜的計算工作。究其本質,圖形處理單元(Graphices Processor Unit, GPU)是為高速圖形處理而設計的,它具有天然的並行性,程式並行執行自然要比序列快很多。

早期的GPGPU程式設計比較痛苦,經典的GPGPU需要使用通用的圖形API,比如OpenGL,而圖形API並不是為了通用程式而設計的,所以需要使用大量的技巧,讓通用計算的資料“看起來像幅圖”。除了難以掌握外,更重要的是不能根據硬體特性獲取硬體應有的效能,於是就產生了CUDA。

關於CUDA

CUDA全名計算統一裝置架構(Compute Unified Device Architecture, CUDA),東家是英偉達(NVIDIA)。CUDA是專門為通用計算而設計的(Tesla卡甚至連圖形輸出都沒有,專為計算而設計),CUDA採用一種簡單的資料並行模型,再結合程式設計模型,從而無需操縱複雜的圖形基元,CUDA使得GPU看起來和別的可程式設計裝置一樣。

CUDA書籍

CUDA Online

線上課程

其它

CUDA作為平行計算架構,通常會和其它並行架構一起配合使用。如OpenMP、OpenACC、MPI,OpenACC是NVIDIA明確支援的。

結語

本文主要整理收集了CUDA的相關書籍和資料,以供學習時方便查閱,整理可能不完整。

參考文獻

  1. 庫克. CUDA並行程式設計[M]. 機械工業出版社, 2014.
  2. 仇德元. GPGPU程式設計技術. 機械工業出版社, 2011.