2017-04-04 217 views
3

正如問題已經提出的那樣,我對於深度學習並不陌生。我知道,沒有GPU的情況下,模型的學習過程會很慢。如果我願意等,如果我只用CPU,會不會好?爲什麼我們需要GPU進行深度學習?

+3

,當然,這將是確定 –

+0

這將是確定,如果你不會做卷積。 GPU在處理包含卷積圖層的圖像數據集時確實很有幫助。對於學習目的來說CPU就足夠了 –

+0

@MihailBurduja GPU不是深度學習所必需的。他們加速了很多事情(不管你是使用卷積還是簡單的密集層),但他並沒有問及時間。 –

回答

6

許多在計算深度學習(以及一般的神經網絡)中執行的操作可以並行運行,這意味着它們可以獨立計算,然後再進行彙總。這部分是因爲大部分操作都是基於矢量的。

典型的消費類CPU有4到8個內核,超線程允許它們分別被當作8或16。服務器CPU可以有4到24個內核,分別有8到48個線程。此外,大多數現代CPU具有SIMD(單指令多數據)擴展,這些擴展允許它們在單個線程上並行執行矢量操作。根據您使用的數據類型,8核CPU可以一次執行8 * 2 * 4 = 64至8 * 2 * 8 = 128個矢量計算。

Nvidia新的1080ti擁有3584個CUDA核心,這意味着它可以一次執行3584個矢量計算(超線程和SIMD不會在這裏發揮作用)。與8核心CPU相比,這一次的運算量要多56至28倍。因此,無論您是在訓練單個網絡還是多個網絡來調整元參數,它在GPU上的運行速度都可能明顯快於CPU。

2

取決於你在做什麼,可能需要更長的時間。我有20倍的加速使用GPU。如果你閱讀了一些計算機視覺論文,他們在ImageNet上訓練他們的網絡大約1-2周。現在想象一下,如果這花了20倍的時間...

話雖如此:有更簡單的任務。例如,對於我的HASY dataset,您可以在大概3個小時內訓練一個沒有GPU的合理網絡。類似的小數據集是MNIST,CIFAR-10,CIFAR-100。

+0

感謝Martin,你的回答也很有幫助。你能說出一些計算機視覺文件,其中作者告訴他們訓練他們的網絡1-2周? – Kanu

+0

VGG-net論文爲2-3周:https://arxiv.org/pdf/1409.1556.pdf –

1

神經網絡的計算密集部分是多個矩陣乘法。我們如何讓它更快?我們可以通過同時進行所有的操作來做到這一點,而不是一個接一個地做。簡而言之,我們使用GPU(圖形處理單元)而不是CPU(中央處理單元)。

谷歌過去有一個強大的系統,他們專門爲訓練巨大的網絡而建造。該系統耗資50億美元,擁有多個CPU集羣。 幾年之後,斯坦福大學的研究人員在計算方面建立了相同的系統,以使用GPU來訓練其深層網絡。他們把成本降到了33K美元。該系統使用GPU構建,並且具有與Google系統相同的處理能力。

來源:https://www.analyticsvidhya.com/blog/2017/05/gpus-necessary-for-deep-learning/