時間:2022-08-16 16:33:19
深度學(xué)習(xí)是一個計算需求強(qiáng)烈的領(lǐng)域,GPU的選擇將從根本上決定你的深度學(xué)習(xí)研究過程體驗。在沒有GPU的情況下,等待一個實驗完成往往需要很長時間,可能是運(yùn)行一天,幾天,幾個月或更長的時間。因此,選擇一個好的,合適的GPU,研究人員可以快速開始迭代深度學(xué)習(xí)網(wǎng)絡(luò),幾個月的實驗可以在幾天之內(nèi)跑完,幾天的實驗可以在幾個小時之內(nèi)跑完。因此,在購買GPU時,正確的選擇至關(guān)重要。那么應(yīng)該如何選擇適合的GPU呢?今天我們將深入探討這個問題,并會給出一些合適的建議,幫助你做出適合的選擇。
擁有高速GPU是開始學(xué)習(xí)深度學(xué)習(xí)的一個非常重要的方面,因為這可以幫助你快速獲得實踐經(jīng)驗,這是搭建專業(yè)知識的關(guān)鍵,有足夠的時間將深度學(xué)習(xí)應(yīng)用于解決新問題。如果沒有這種快速的反饋,就需要花費(fèi)太多的時間從錯誤中學(xué)習(xí)。因此,今天就談?wù)勅绾芜x擇一款合適的GPU來進(jìn)行深度學(xué)習(xí)的研究。
首先給出一些總體的建議
非常好的GPU整體(小幅度):Titan Xp
綜合性價比高,但略貴:GTX 1080 Ti,GTX 1070,GTX 1080
性價比還不錯且便宜:GTX 1060(6GB)
當(dāng)使用數(shù)據(jù)集> 250GB:GTX Titan X(Maxwell) ,NVIDIA Titan X Pascal或NVIDIA Titan Xp
沒有足夠的錢:GTX 1060(6GB)
幾乎沒有錢:GTX 1050 Ti(4GB)
做Kaggle比賽:GTX 1060(6GB)適用于任何“正?!北荣?,或GTX 1080 Ti用于“深度學(xué)習(xí)競賽”
計算機(jī)視覺研究員:NVIDIA Titan Xp;不要買現(xiàn)在新出的Titan X(Pascal或Maxwell)
一名研究員人員:GTX 1080 Ti。在某些情況下,如自然語言處理,一個GTX 1070或GTX 1080已經(jīng)足夠了-檢查你現(xiàn)在模型的內(nèi)存需求。
搭建一個GPU集群:這個優(yōu)點(diǎn)復(fù)雜,另做探討。
剛開始進(jìn)行深度學(xué)習(xí)研究:從GTX 1060(6GB)開始。根據(jù)你下一步興趣(入門,Kaggle比賽,研究,應(yīng)用深度學(xué)習(xí))等等,在進(jìn)行選擇。目前,GTX 1060更合適。
想嘗試下深度學(xué)習(xí),但沒有過多要求:GTX 1050 ti(4或2GB)
應(yīng)該選擇什么樣的GPU?NVIDIA GPU,AMD GPU或Intel Xeon Phi?
NVIDIA的標(biāo)準(zhǔn)庫使得基于CUDA來建立第一個深度學(xué)習(xí)庫變得非常容易,而AMD的OpenCL則沒有這樣強(qiáng)大的標(biāo)準(zhǔn)庫?,F(xiàn)在,AMD卡沒有像這樣好的深度學(xué)習(xí)庫,所以就只有NVIDIA。即使未來有一些OpenCL庫可能也可用,但我也會堅持使用NVIDIA,因為GPU計算能力或GPGPU社區(qū)非常強(qiáng)大,可以持續(xù)促進(jìn)CUDA的發(fā)展,而OpenCL則相對有限。因此,在CUDA社區(qū)中,很容易獲得不錯的開源解決方案和可靠的建議。
此外,即使深度學(xué)習(xí)剛剛起步,NVIDIA仍然在持續(xù)深入的發(fā)展。這個選擇得到了回報。而其他公司現(xiàn)在把錢和精力放在深度學(xué)習(xí)上,由于起步較晚,現(xiàn)在還是相對落后。目前,除NVIDIA-CUDA之外,其他很多軟硬件結(jié)合的深度學(xué)習(xí)方案都會遇到或多或少的問題。
至于英特爾的Xeon Phi處理方案,官方廣告宣稱編程者可以使用標(biāo)準(zhǔn)的C代碼進(jìn)行開發(fā),并很容易將代碼輕松轉(zhuǎn)換為經(jīng)過加速的Xeon Phi代碼。這個特性聽起來很有趣,因為我們可以依靠豐富的C代碼資源。但是,實際上只有很小部分的C代碼是被支持的,所以這個特性目前并不是很有用,而且能夠運(yùn)行的大部分C代碼都很慢。
給定預(yù)算下如何選擇較快的GPU
在選擇GPU時,首先要考慮的第一個GPU性能問題是什么呢:是否為cuda核心?時鐘速度多大?內(nèi)存大小多少?
這些都不是,對于深度學(xué)習(xí)性能而言,最重要的特征是內(nèi)存帶寬(memory bandwidth)。
簡而言之:GPU針對內(nèi)存帶寬進(jìn)行了優(yōu)化,但同時犧牲了內(nèi)存訪問時間(延遲)。CPU的設(shè)計恰恰相反:如果涉及少量內(nèi)存(例如幾個數(shù)字相乘(3 * 6 * 9)),CPU可以快速計算,但是對于大量內(nèi)存(如矩陣乘法(A * B * C)則很慢。由于內(nèi)存帶寬的限制,當(dāng)涉及大量內(nèi)存的問題時,GPU快速計算的優(yōu)勢往往會受到限制。當(dāng)然,GPU和CPU之間還有更復(fù)雜的區(qū)別,關(guān)于為何GPU如此適用于處理深度學(xué)習(xí)問題,另做探討。
所以如果你想購買一個快速的GPU,首先要關(guān)注的是GPU的帶寬(bandwidth)。
通過內(nèi)存帶寬評估GPU的性能
隨著時間的變化,CPU和GPU的帶寬比較:帶寬是GPU比CPU更快的主要原因之一。
帶寬可以直接在芯片的體系結(jié)構(gòu)上進(jìn)行比較,例如像GTX 1080和GTX 1070這樣的Pascal卡,其性能可以直接通過單獨(dú)查看內(nèi)存帶寬進(jìn)行比較。例如,GTX 1080(320GB / s)比GTX 1070(256 GB / s)快25%(320/256)。然而,不同的結(jié)構(gòu),例如像GTX 1080與GTX Titan X之類的Pascal與Maxwell不能直接比較,因為不同制造工藝(以納米為單位),導(dǎo)致不同的架構(gòu)對于如何利用給定的內(nèi)存帶寬的方式不同。這使得一切都有點(diǎn)棘手,但僅僅基于整體帶寬就能讓我們很好地評價GPU的速度到底有多快。為了確定在一個給定的條件下,一款GPU能多快,可以查看這個維基百科頁面,以GB / s為單位查看帶寬。
另一個需要考慮的重要因素是,并不是所有的架構(gòu)都與cuDNN兼容。由于幾乎所有深度學(xué)習(xí)庫都使用cuDNN進(jìn)行卷積運(yùn)算,這就限制GPU的選擇只能是Kepler GPU或更高的版本,即GTX 600系列或更高版本。最重要的是,Kepler GPU一般都很慢。所以這意味著應(yīng)該選擇GTX 900或1000系列的GPU,以獲得更好的性能。
為了粗略地估計一下這些卡在深度學(xué)習(xí)任務(wù)上的表現(xiàn),我構(gòu)建了一個簡單的GPU等值圖。如何閱讀這個?例如,一個GTX 980與0.35 Titan X Pascal一樣快,或者換句話說,Titan X Pascal幾乎是GTX 980的三倍。
請注意,我自己并沒有所有的這些卡,我并沒有在所有這些卡上運(yùn)行然后得到深度學(xué)習(xí)的benchemarks。比較的結(jié)果通過卡片規(guī)格以及一些可得到的計算benchmarks(一些用于加密貨幣挖掘的情況,這一性能在深度學(xué)習(xí)相關(guān)的計算能力上是可比較的)得出的。所以這些結(jié)果粗略的估計。實際的數(shù)字可能會有所不同,但通常錯誤應(yīng)該是比較小的,卡的順序應(yīng)該是正確的。另外請注意,那些不足以充分利用GPU性能的小型網(wǎng)絡(luò)會讓GPU的性能看上去不好。例如,GTX 1080 Ti上的小型LSTM(128個隱藏單元;批量大小> 64)不會比在GTX 1070上運(yùn)行速度快很多。為了獲得圖下表中顯示的性能差異,需要運(yùn)行更大的網(wǎng)絡(luò),比如具有1024個隱單元的LSTM(批量大小> 64)。
GPU之間粗略的性能比較。此比較建立于充分利用GPU性能情況下。
性價比分析
基于上面繪制的性能比較圖,除以它們對應(yīng)的價格,得到下圖的基于成本的排名,越長代表性價比越高,該圖某種程度上反映了不同卡之間的性價比差異。
成本效益對比圖。請注意,這個數(shù)字在很多方面都有偏差,例如它沒有考慮到內(nèi)存。
但請注意,這種對GPU排名的衡量標(biāo)準(zhǔn)考慮并不全面。首先,沒有考慮GPU的內(nèi)存大小。從上面的圖看,GTX 1050 Ti性價比高,但當(dāng)實際應(yīng)用中你說需要的內(nèi)存超過了1050 Ti所能提供的內(nèi)存時,也不能用。類似地,使用4個小的GPU比僅使用1個大得GPU要復(fù)雜的多,因此小型GPU也有很多不足之處。此外,不能通過購買16 GTX 1050 Ti來獲得4 GTX 1080 Ti的性能,因為還需要購買3臺額外的昂貴的電腦。如果考慮這一點(diǎn),即GPU的內(nèi)存大小,得到下圖所示性價比分析圖。
綜合考慮其他硬件的價格(比如搭載GPU的電腦價格),對GPU的性價比進(jìn)行標(biāo)準(zhǔn)化。在這里,比較了一臺完整的機(jī)器,包含4個GPU,配置價值約1500美元的其他高端硬件(CPU,主板等)條件下。
因此,在這種情況下,如果您想要購買更多的GPU,毫無疑問,內(nèi)存越大的GPU性價比越高,因為相同內(nèi)存需求條件下,不需要買更多的機(jī)器。但是,這種對GPU選擇方法仍然存在缺陷。如果你預(yù)算金額有限,沒有辦法無法負(fù)擔(dān)4 GTX 1080 Ti機(jī)器的價格,這種對比就毫無意義。因此,實際情況是,基于你有限的預(yù)算下,你可以購買到的哪種系統(tǒng)性能是好的?同時,你還必須處理其他問題,例如:每天使用此GPU的時間有多長?想在幾年內(nèi)升級GPU或整個計算機(jī)?想在未來多長一段時間內(nèi)賣掉當(dāng)前的GPU,并購買新的更好的GPU?等等
所以你可以看到,做出正確的選擇并不容易。但是,如果你對所有這些問題平衡的看待,就會得出類似于以下的這些結(jié)論。
一般的GPU選擇建議
一般來說,我會推薦GTX 1080 Ti,GTX 1080或GTX 1070.他們都是優(yōu)秀的顯卡,如果你有錢,應(yīng)該購買GTX 1080 Ti。GTX 1070比普通的GTX Titan X(Maxwell)便宜一些。GTX 1080的性價比比GTX 1070低一些,但是自GTX 1080 Ti推出以來,價格大幅下滑,現(xiàn)在GTX 1080的性價比已經(jīng)能夠與GTX 1070比擬。所有這三款顯卡應(yīng)該比GTX 980 Ti要好,因為它們具有11GB和8GB(而不是6GB)的內(nèi)存。
8GB的內(nèi)存可能看起來有點(diǎn)小,但是對于許多任務(wù)來說這已經(jīng)足夠了。例如對于Kaggle比賽,大多數(shù)圖像數(shù)據(jù),deep style和自然語言理解任務(wù),這些你可能會遇到幾個問題。
對于入門級的人來或是偶爾想用GPU來參加類似Kaggle比賽的人,GTX 1060是一個不錯的選擇。我不推薦內(nèi)存只有3GB的GTX 1060 variant產(chǎn)品,因為6G的內(nèi)存就已經(jīng)很有限了。但是,對于許多應(yīng)用來說,6GB就足夠了。GTX 1060比普通的Titan X慢,但與GTX 980具有可比的性價比。
就綜合性價比而言,10系列設(shè)計得非常好。GTX 1050 Ti,GTX 1060,GTX 1070,GTX 1080和GTX 1080 Ti都非常出色。GTX 1060和GTX 1050 Ti適用于初學(xué)者,GTX 1070和GTX 1080是適合于初創(chuàng)公司,部分研究和工業(yè)部門,而性能突出的GTX 1080 Ti,對于以上應(yīng)用都合適。
不推薦NVIDIA Titan Xp,因為它的性價比太貴了??梢杂肎TX 1080 Ti代替。然而,NVIDIA Titan Xp在計算機(jī)視覺研究領(lǐng)域中仍然有一定的使用,用于處理大數(shù)據(jù)集或視頻數(shù)據(jù)。在這些領(lǐng)域中,按照每GB的內(nèi)存數(shù)量計算,NVIDIA Titan Xp只比GTX 1080 Ti多1GB,但在這種情況下也具有一定的優(yōu)勢。不推薦NVIDIA Titan X(Pascal),因為NVIDIA Titan Xp速度更快,但價格幾乎相同。但由于市場上這些GPU的稀缺性,如果你找不到NVIDIA Titan Xp,也可以購買Titan X(Pascal)。
如果你已經(jīng)有了GTX Titan X(Maxwell)GPU,那么升級到NVIDIA Titan X(Pascal)或NVIDIA Titan Xp就沒有必要了。
如果你缺錢,但是你需要12GB內(nèi)存來開展你的研究,那么GTX Titan X(Maxwell)也是一個很好的選擇。
對于大多數(shù)研究人員來說,GTX 1080 Ti已經(jīng)完全夠用了。大多數(shù)研究和大多數(shù)應(yīng)用,GTX 1080 Ti的內(nèi)存完全夠用。
在NLP中,內(nèi)存限制并不像計算機(jī)視覺領(lǐng)域那么嚴(yán)格,所以GTX 1070 / GTX 1080也是不錯的選擇。通常是,需要解決什么樣的任務(wù)以及如何進(jìn)行試驗,決定了需要選擇哪一款GPU,無論是GTX 1070還是GTX 1080。當(dāng)你選擇GPU時,應(yīng)該按照類似的方式推理。考慮一下你在做什么任務(wù),如何運(yùn)行你的實驗,然后嘗試找到適合這些要求的GPU。
對于預(yù)算有限的人來說,選擇條件則更加有限。亞馬遜網(wǎng)絡(luò)服務(wù)上的GPU相當(dāng)昂貴和緩慢,如果只有少量的資金,也是一個不錯的選擇。我不推薦GTX 970,因為它很慢,即使在某些限制條件下也是相當(dāng)昂貴的(在eBay上150美元),并且存在與卡啟動相關(guān)的內(nèi)存問題。相反,建議花更多一點(diǎn)的錢購買更快,有更大的內(nèi)存,沒有內(nèi)存問題的GTX 1060。如果實在買不起GTX 1060,我建議選擇配備4GB內(nèi)存的GTX 1050 Ti。4GB內(nèi)存可能有限,但至少可以開展進(jìn)行你的研究,只是需要你對模型進(jìn)行一些調(diào)整,也可以得到良好的性能。
GTX 1050 Ti一般來說也是一個不錯的選擇,如果你只是想嘗試一下深度學(xué)習(xí),而沒有其他更多的需求。
結(jié)論
有了這篇文章中提供的所有信息,你應(yīng)該能夠考慮選擇哪一種合適的GPU,綜合考慮所需的內(nèi)存大小,帶寬(GB/s)大小和GPU的價格,這一思路在未來很久也適用。最后,如果有足夠的資金,建議購買GTX 1080 Ti,GTX 1070或者GTX 1080。如果剛剛開始研究深度學(xué)習(xí),或者資金有限,可以購買GTX 1060。如果資金實在有限,可以購買GTX 1050 ti;如果想要從事計算機(jī)視覺研究,可以購買Titan Xp。