1. 程式人生 > >GPU程式設計自學1 —— 引言

GPU程式設計自學1 —— 引言

深度學習的興起,使得多執行緒以及GPU程式設計逐漸成為演算法工程師無法規避的問題。這裡主要記錄自己的GPU自學歷程。

目錄

一、 引言

傳統的中央處理器(CPU,Central Processing Unit) 內部結構異常複雜,主要是因為其需要很強的通用性來處理各種不同的資料型別,同時又要邏輯判斷又會引入大量的分支跳轉和中斷的處理。 為了提高計算能力,CPU通常會採取提高時鐘頻率或增加處理器核數量的策略。

為了進一步獲得更高效的計算,圖形處理器(GPU, Graphics Processing Unit)應運而生。 GPU可以在無需中斷的純淨環境下處理型別高度統一的、相互無依賴的大規模資料。

如下圖所示:
float

GPU的高效在於可以高度並行處理。 以兩個向量相加為例,CPU可能採取迴圈處理,每個迴圈對一個分量做加法。GPU則可以開多個執行緒,每個執行緒同時對一個分量做加法。CPU加法的速度一般快於GPU,但因為GPU可以同時開大量執行緒並行跑,因此更加高效。

為了降低GPU程式的開發難度,NVIDIA推出了 CUDA(Compute Unified Device Architecture,統一計算裝置架構)這一程式設計模型。

參考連結: