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