1. 程式人生 > >CUDA(9)之平行計算之CUDA

CUDA(9)之平行計算之CUDA

摘要

本文主要談談CUDA程式設計的一些特點。

1. CUDA擅長做什麼?

CUDA主要擅長可並行性的計算,以及浮點計算。換句話說,如果你的程式可並行化的程度較高,或者需要大量的浮點運算,那麼你的程式如果在GPU上執行的話,可以有比較顯然的效能的提升。

2. CUDA程式設計等價於GPU程式設計麼?

CUDA程式設計不完全等價於GPU程式設計,CUDA其實是CPU程式和GPU程式的結合。其中,CUDA的CPU程式主要是序列計算部分,GPU程式主要是平行計算部分。整體的CUDA程式可以形象地描述為:序列->並行->序列->並行......,相對於純序列方案而言,CUDA程式效能的提升主要歸功於可平行計算的部分。

3. CUDA程式設計的關鍵是?

CUDA程式設計的關鍵主要是應用程式的並行化問題。應用程式的並行化有很多中方式,比如可以通過並行多threads執行緒去除序列的loop迴圈等,所以在並行程式碼中很少看到迴圈。目前來講,平行計算對系統性能的優化程度是相當可觀的。相對於序列的程式而言,平行計算的發展也是比較看好的。下圖是各種程式優化方式對系統性能的影響。