-
1 # IT數碼大排檔
-
2 # 論智
先看下GTX 1070 Ti的引數:(隨便從某顯示卡廠商官網上找的圖)
首先看視訊記憶體,8GB對於很多深度學習應用來說足夠了。當然,某些特定應用比較吃視訊記憶體,比如視覺(vision)領域的部分應用,視訊記憶體是多多益善,那可能需要考慮11GB或者12GB視訊記憶體的顯示卡。
然後,看頻寬。深度學習由多層的神經網路組成,這些神經網路包含很多權重和偏置。而這些權重和偏置簡單來說,就是許多巨大的浮點矩陣。這就意味著,深度學習需要很大的記憶體頻寬訪問這些網路。我們看到,一般的顯示卡廠商面向的是普通消費者,所以上面的引數表沒有列頻寬資料。不過引數表裡列了視訊記憶體種類(GDDR5)、位寬和頻率,因此可以大概計算出頻寬,公式是頻率x等效係數(GDDR5是4)x位寬/8,所以頻寬是256GB/s(好吧,我說謊了,其實我才懶得算,是直接到網上搜的)。
最後,對於深度學習很重要的,就是和cuDNN的相容性,因為基本上所有深度學習庫都用cuDNN,當然,像1070 Ti這個級別的顯示卡,基本上不用擔心和cuDNN的相容性問題。
以上就是挑選深度學習顯示卡主要考慮的因素。
也許你會嫌上面囉嗦,說這麼多幹嘛,直接說1070 Ti可用不就行了?但是俗話說:“授人以魚,不如授人以漁。”年年都有新顯示卡,把握以上因素,以後你可以用同樣的方法判斷新出的顯示卡適不適合深度學習。
實際上,不用等以後,你現在就可以用上面的方法思考一個問題:GTX 1070 Ti用來進行深度學習沒問題,但是,在這個價位,它是不是最好的選擇?或者說,要不要加幾百塊錢上GTX 1080,或者買GTX 1070省幾百塊錢?
我想,基於上面提到的因素,不難得出答案:
cuDNN相容性:沒什麼好說的,這三張卡都支援。
頻寬:GTX 1080是320 GB/s,而1070和1070 Ti同樣是256GB/s。
視訊記憶體:都是8GB。
1080Ti/1080/1070 引數對比(取自Nvidia官網)
實際上,1070 Ti是Nvidia為了和RX VEGA系列競爭推出的產品,補了1080和1070之間的空當。吃雞什麼的,買個1070 Ti可能不錯,但深度學習,不建議購買。無論是加幾百塊錢預算上1080,還是乾脆買1070省幾百塊錢,都是比購買1070 Ti更好的選擇。
另外,上圖中還包括了1080 Ti的引數。我們可以看到,1080 Ti的視訊記憶體更大(11 GB),頻寬更大(484 GB/s)。所以,在深度學習方面,1080 Ti比1080優勢要大不少,和1070 Ti/1070的情況完全不同。當然,1080 Ti的價格也要貴很多。
至於搭配什麼CPU才能發揮性能?這個問題你不用擔心。除非你買很奇葩的非主流CPU,否則隨便配個CPU都不會成為效能瓶頸。
深度學習的主要運算在GPU上完成,CPU完成的工作主要是programming和mini-batch。
一般計算需要比較強力的CPU,因為
比較強力的CPU有更高的頻率和更多的核心;比較強力的CPU有較大的快取,而快取的速度和RAM是天壤之別。如前所述,programming和mini-batch,用不上多高的頻率,也用不著多個核心。
至於快取,對於programming而言,主要是變數和函式呼叫。這些完全可以放進L1快取。而mini-batch,一般而言,快取也放得下。比如MNIST的mini-batch大概0.4M,CIFAR大概1.5M,放快取沒問題。至於像ImageNet這種規模的資料,有85M之多,那就肯定要靠RAM,即使是強力的CPU,快取也放不下。
CPU還有一個指標是訪問記憶體的效率,包括記憶體頻率和通道數。但是這兩個引數對深度學習基本上沒有什麼影響。
如前說述,資料或者足夠小,可以放進L1快取,或者足夠大,只能依靠RAM。
對於能放進L1快取的資料,CPU可以直接訪問L1快取,無需訪問記憶體,因此和CPU的記憶體頻率和通道數無關。
至於依靠RAM存放的資料,基本上是資料量較大的mini-batch。這些資料量較大的mini-batch,會從RAM流入CPU,然後再由CPU傳入GPU的視訊記憶體。這其中,RAM到CPU是效能瓶頸。然而,一般而言,RAM的頻率比CPU的記憶體頻率低,因此買強力CPU並不能改善這裡的效能。
還有一種做法就是繞過CPU,GPU和RAM直接透過DMA通訊。但是這種做法比經過CPU中轉還要慢。
事實上,CUDA的非同步功能是非常完善的。一旦GPU接受到第一份待處理的mini-batch,就會開始處理,在處理的過程中,會收到後面的mini-batch,一旦第一份mini-batch處理完畢,就會緊接著處理下一份mini-batch。這意味著,只有第一份mini-batch的傳輸會阻塞GPU的運算,後面所有的mini-batch傳得慢都不會影響進度。
綜上,CPU你可以隨便買,隨便買一個就能充分發揮顯示卡在深度學習上的效能。(呃,隨便買的意思是主流桌面CPU,大概相當於普通i5之類的,如果有思路清奇的去買個低壓U,可別來找我算賬哦~)
順便說下,CPU隨便買,其他配件倒是要留意一下:
考慮到資料交換和作業系統、軟體本身的開銷,記憶體不能太小,至少別低於視訊記憶體。
主機板的話,注意相容性就可以。最好買PCIe 3.0的,不過萬一買了PCIe 2.0的,也不要緊,一般也不影響(據說會有0%到5%的效能損失)。
如果買PCIe SSD的話(如果有大批次資料,需要配SSD,即使沒有這樣的資料,從開發效率考慮,也建議SSD),要留意主機板的PCIe介面的配置,小心SSD擠佔顯示卡頻寬(不過,單顯示卡不太會碰到這個問題)。
深度學習網路訓練需要跑很久,機器常常24小時執行。因此長期來看能效低的電源會多花不少電費。所以一般來說,推薦透過80plus白金牌認證的電源。除了能效高以外,一般來說白金電源也比較穩定。常常24小時高負荷執行的機器對電源的穩定性要求較高。白金電源可以降低因為電源不靠譜燒掉顯示卡的風險。
最後,千萬不要忽視散熱。深度學習要求GPU長時間執行演算法,GPU的溫度也會隨著時間的流逝而升高。如果散熱不良,GPU的溫度會很快升到80攝氏度,觸發GPU的保護機制,自動降頻,因此拖慢進度。另外,散熱也會影響GPU的壽命。散熱不良會加速GPU老化。如果有避免干擾同事或者避免打擾同住的人的需求,建議上水冷。
-
3 # 林檎作坊
先放結論:
研究用,可以了。工業用,不夠。
補充建議:如果不差錢,買1080Ti,幾乎可以達到頂級顯示卡的效果,但是價效比很高。
詳細:首先和GTX 1070的關鍵引數差不多,價格也貴了小几百軟妹幣,是一塊價效比比較高的顯示卡。一般專門做深度學習的實驗室用的都是GTX Titan X/Xp之類的頂級顯示卡,我們可以看下主流顯示卡速度上的差距(如下圖),1070差不多是頂級顯示卡的一半。
(結果來自資料科學家Tim Dettmers的部落格)
-
4 # 鷹的家園
科普下,遊戲卡和基於gpu技術的計算卡有本質區別。
深度學習用的是gpu技術,很多人以為是遊戲卡。遊戲卡主要是畫面渲染,單精度計算很快雙精度很低。
所以這些遊戲卡不能用來科學計算的。用nvidia專業運算卡,採用cuda技術,比如K10。
回覆列表
深度學習主要看gpu和記憶體。跟cpu沒太大關係。但是,雖然說cpu佔的比重不算很大,但也要跟平臺搭配才行。先說gpu,完後再說cpu搭配。
深度學習算是科學運算之一了,跟遊戲跟挖礦不沾邊。gpu效能主要看浮點運算能力來決定,精度(單雙精度)浮點運算尤為重要!
gpu最好是專業卡,但是價格以及深度學習這行業硬體更新換代快,學習入門的話那還是算了,划不來。除此外那就只能選用遊戲卡了。1070ti已經夠入門了。同階還有amd的 vega 56。
先看看1070ti。
GTX 1070 Ti是英偉達拿出來跟amd vega56槓的。其預設核心頻率為1607MHz,跟GTX 1080一樣,Boost頻率為1683MHz又跟GTX 1070一樣,老黃刀法果然如神讓人歎為觀止。GTX 1070 Ti為8.1 TFLOPS的高單精度浮點運算能力,但是比RX Vega 56的10.5T還是有差距。
再看看AMD VEGA(織女星)56。
14nm FinFET工藝Vega 10構架,搭載了HBM2視訊記憶體,加入了HBCC(高頻寬快取控制器)等,帶來更極致的表現。RX Vega 56包括3584個流處理器,搭載8GB 2048bit HMB2視訊記憶體,頻率1600MHz,總頻寬410GB/s。效能方面,AMD RX Vega 56峰值浮點效能單精度10.5TFlops、半精度21TFlops。
理論資料上vega56勝一籌,不過既然老黃拿1070ti槓56報1070被打壓的仇,那麼實際應用應該也差不多。兩者價格也差不多,不過現在好像vega56只有公版可選,另外功耗較1070 ti高。
記憶體越大越好,上個ddr4 2400 8g 四根共32G。
最後處理器,基本上六七代i5就行。不過為了搭配整個平臺,那還是六七代i7起步(i7 6700 i7 7700以上)。amd平臺ryzen5 1600以上即可(可以組3A平臺,價效比很高)。