為什么深度學習需要使用 GPU?選擇 GPU 有兩點原因:
深度學習會涉及大量的矩陣運算。
對于
以及
B=\begin{bmatrix} b_{11} & b_{12} & \cdots & b_{1m}\\ \vdots & \vdots & \ddots & \vdots \\ b_{k1} & b_{k2} & \cdots & b_{km} \\ \end{bmatrix}
在計算兩者乘積的結果
C=A\times B時,
C中任意一個元素的計算公式為:
從公式中可以看出:
好比 GPU 有好多成千上萬的的“小計算器”,CPU 中幾個或十幾個的“高性能的小計算器”。
因此從這個可以看出,GPU 上的運算單元比 CPU 多。
雖然 CPU 上每個單元性能高,但面對大量計算時,GPU 在完成一批矩陣運算時,同時運算的數量高,所以總體下來還是 GPU 適合。
實際上深度學習并不一定需要用GPU,只是如果不使用GPU,訓練模型所耗的時間會變得巨長,如果沒有并行運行,GPU可能還不如CPU。
GPU優勢在于并行運算,而深度學習中的運算大部分都是矩陣運算 (矩陣運算就是并行運算的一種)。可以想象 矩陣A * 矩陣B = 矩陣C,GPU可以做到的并行運算是指,矩陣C中的每個元素可以同時運算得出,而CPU可以做到的只能夠是先算出矩陣C第一行第一列的元素,接著再去算第一行第二列的元素,與此類推。
CPU就好比1位高中生,5分鐘就能做出一道幾何題,但是要讓他5分鐘做1000道簡單的加法題,可能會做不完。而GPU就好比100位小學生,雖然會的東西不及高中生,但是讓它們在5分鐘內合力完成1000道簡單的加法題,還是綽綽有余的。
同一深度學習模型gpu運算一定比cpu快,模型越復雜(神經網絡層數越多、每層訓練器維度越大),gpu優勢越明顯。