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