2016-05-17 35 views
2

最近,我嘗試在大型CPU服務器上實施並部署一個深度學習解決方案(帶有用於靜態輸入的附加層的多層LSTM網絡)。經過多次嘗試後,我的個人電腦性能僅比我的速度提高了3倍。我聽說GPU可能會做得更好。你能否解釋一下,在深度神經網絡計算中,GPU比CPU更好的確切原因是什麼?什麼讓GPU在神經網絡計算中如此高效?

+1

深度學習(和AI)嚴重依賴於矩陣和矩陣運算(即線性代數)。 Matrix ops可以高度並行化,並且可以利用數百個線程(考慮例如兩個matries的乘法) - 這就是GPU非常擅長的(也可以認爲GPU中的內存帶寬) – rbm

回答

3

GPU的架構主要集中在並行性上,而CPU的架構則不是。這意味着GPU可以同時進行很多簡單的操作;例如,GPU可以每秒60次處理屏幕上每個像素的顏色(1920x1080幾乎是200萬像素)。 通用CPU每個核心可以有一個ALU(物理或邏輯),所以也許你的CPU有8/16個ALU。 GPU可以有thousands of them。長話短說:CPU可以非常快地執行一些複雜的操作,而GPU可以非常快速地執行數千個非常簡單的操作。另外,由於GPU同時處理大量數據,因此通常會配備高速RAM以避免出現瓶頸。

神經網絡是基本上很多小的「計算機」,在並行工作,所以GPU適合完成這個任務

2

訓練深層神經漁網事實上的算法更好的架構是反向傳播算法。它涉及在網絡的不同層次上計算雅可比矩陣和乘以這些矩陣。由於涉及的操作是結構化的並且不需要存在於CPU中的複雜機器(如分支預測,無序調度),所以步驟是GPU超過CPU的步驟。作爲一個觀點,你可能會爭辯說,通過使用諸如緩存阻塞,預取和手工編碼彙編等技術,CPU在矩陣乘法中變得更好。

除了訓練,神經網絡的推理部分也利用了有效的矩陣乘法。這是因爲各層的輸入和權重(參數)矢量通常以張量形式存儲。

使用GPU的另一個好處是提供更好的內存帶寬。 GDDR5x正在接近500 GB/s,而最先進的DDR4提供的約80-100 GB/s。因此,您可以獲得帶寬提升的5倍,這是內存密集型神經網絡計算可以利用的。