-
1 # 鎂客網
-
2 # joy0123
CPU和GPU都是可以訓練神經網路的,相同的資料最終訓練出的結果都是一樣,區別是訓練神經網路模型耗時不同。
CPU計算速度快,但一次只能處理少量資料,GPU計算速度慢於CPU,但GPU在處理大資料的計算時,平行計算能力要優於CPU。CPU就相當於高階跑車,速度快,效能優越,但載貨能力不行。GPU就相當於大卡車,雖然速度慢,但擋不住載貨能力強。訓練神經網路時,對精度要求不是很高,依靠其超強的平行計算能力,訓練一個神經網路的速度要比CPU快很多很多倍。GPU的平行計算就體現在下面圖中一個個小格子上,每個格子就是一個計算單元,對於大資料的計算有其先天的優勢。訓練神經網需要調參,神經網路模型訓練時間越短,調參時間就越短。用CPU訓練模型耗時超長,十天半個月的調一次參,是很難讓人忍受的。
-
3 # 七色慧
為什麼要用GPU來訓練神經網路?
這要從人的大腦認識世界說起,每個人感知世界主要是透過視覺、聽覺和觸覺來進行的,這三種感覺面對的資訊量非常大,所以在大腦裡就產生了非常多的神經元,而計算機神經網路就是透過模仿人自身的大腦運算結構而獨立誕生的。
最初計算機的CPU幾乎包攬了所有的計算,成為一切的指揮官,顯示卡只是很簡單地輔助小模組,計算並不複雜,隨著遊戲產業的發展,越來越多的3D遊戲場景誕生,中央處理器的核心處理圖形的弊端顯現,GPU這個圖形處理器開始飛速進化。
一個CPU就像是一個大力士,它可以搬運很重的石頭,但是大力士只有個位數,只能在幾條路上搬運,而GPU對於外界的天量普通資料,就像是非常多的普通人一起搬磚,在幾百條的道路上向著目的地搬運,大力士雖然可以輕鬆乾的,GPU卻幹不了,但是圖形這樣只需要運算位置與顏色的輕鬆類似活,可以並行的大量處理,而神經網路就是和大腦一樣處理普通的海量輸入資訊,最終得到結果。
CPU並非不能取代GPU,只是它是一個世外高人,繁瑣的事不停的去做,體現不了它暴擊的屬性,核心成本太高,所以就把普通的瑣碎事交給普通人GPU來鬆鬆運算,物盡其用。
所以GPU取代CPU進行神經網路運算,無論是從成本上還是功能上來看,都是一種比較划算的運算買賣。
回覆列表
首先得知道GPU和CPU到底是個啥吧?
GPU(graphics processing unit)是顯示卡上的一個部件,如果是獨立顯示卡,一般就在顯示卡板子上的風扇下面;如果是整合顯示卡,比如商務辦公本、輕薄本,其CPU和GPU是整合在一起的。它的作用主要是最底層的計算,對,計算。
CPU(Central Processing Unit)是電腦最主要的部件,他的主要功能是解釋計算機指令以及處理計算機軟體中的資料,說白了就是做指揮工作,統籌各方面。
CPU相當於整個電腦的心臟,而GPU相當於顯示卡的心臟。
普通的處理器CPU差不多雙核心四執行緒,目前市面上最高階的桌面處理器i9-7980XE(RMB1.5萬)不過十八核心三十六執行緒。
GPU則不同,就拿普通的2000塊的遊戲顯示卡RX 480來說,RX480的GPU晶片計算單元劃分為36個CU計算核心,每個CU核心又包含了64個流處理器計算核心,所以總共就是36X64=2304個流處理器計算核心。
CPU相對於GPU就像老教授和小學生,拿i9-7980XE和RX480舉個例子,出一套小學數學試卷,老教授剛做一道題,兩千多名學生一人一題早就交卷子了。如果套高數卷子,老教授做完學生們一道也不會做。
這就是CPU和GPU的區別,因為神經網路主要是進行矩陣運算,大量的矩陣包含矩陣,矩陣運算的特點是簡單重複,就像常見的加減法,但是需要計算的矩陣量巨大。
在這個前提下,“老教授”一道一道算也需要時間,而上千名“小學生”的優勢就很明顯了,在訓練網路上,小學生速度是老教授的n倍。市面上專門做影象處理的顯示卡的GPU的流處理器都有五千多,這速度遠超CPU。
因此主要用GPU來訓練神經網路而不是CPU。