市面上的 GPU各式各樣,但那一款才是最適合你的呢。隨著硬件的更新?lián)Q代,選擇 GPU 的成了難題。機器學(xué)習(xí)的成功與否很大程度上取決于硬件的承載能力。為此本文對市面上的所有 GPU 進行了評測。而在本文中,我們將更加深入地探討:
GPU + 深度學(xué)習(xí)
深度學(xué)習(xí)(DL)是機器學(xué)習(xí)(ML)的一個分支。深度學(xué)習(xí)使用神經(jīng)網(wǎng)絡(luò)來解決問題。神經(jīng)網(wǎng)絡(luò)的優(yōu)點之一是自行尋找數(shù)據(jù)(特征)模式。這和以前告訴算法需要找什么不一樣。但是,通常這意味著該模型從空白狀態(tài)開始(除非使用遷移學(xué)習(xí))。為了從頭捕捉數(shù)據(jù)的本質(zhì)/模式,神經(jīng)網(wǎng)絡(luò)需要處理大量信息。通常有兩種處理方式:使用 CPU 或 GPU。
計算機的主要計算模塊是中央處理器(CPU),CPU 的設(shè)計目的是在少量數(shù)據(jù)上執(zhí)行快速計算。在 CPU 上添加數(shù)倍的數(shù)字非??欤窃诖罅繑?shù)據(jù)上進行計算就會很慢。如,幾十、幾百或幾千次矩陣乘法。在表象背后,深度學(xué)習(xí)多由矩陣乘法之類的操作組成。
有趣的是,3D 電子游戲同樣依賴這些操作來渲染那些美麗的風(fēng)景。因此,GPU 的作用被開發(fā)出來,它們可以使用數(shù)千個核心處理大量并行計算。此外,它們還有大量內(nèi)存帶寬處理數(shù)據(jù)。這使得 GPU 成為進行 DL 的完美硬件。至少,在用于機器學(xué)習(xí)的 ASIC 如谷歌的 TPU 投入市場之前,我們還沒有其他更好的選擇。
總之,盡管使用 CPU 進行深度學(xué)習(xí)從技術(shù)上是可行的,想獲得真實的結(jié)果你就應(yīng)該使用 GPU。
對我來說,選擇一個強大的圖形處理器最重要的理由是節(jié)省時間和開發(fā)原型模型。網(wǎng)絡(luò)訓(xùn)練速度加快,反饋時間就會縮短。這樣我就可以更輕松地將模型假設(shè)和結(jié)果之間建立聯(lián)系。
選擇 GPU 的時候,我們在選擇什么?
和深度學(xué)習(xí)相關(guān)的主要 GPU 性能指標(biāo)如下:
內(nèi)存帶寬:GPU 處理大量數(shù)據(jù)的能力,是最重要的性能指標(biāo)。
處理能力:表示 GPU 處理數(shù)據(jù)的速度,我們將其量化為 CUDA 核心數(shù)量和每一個核心的頻率的乘積。
顯存大?。阂淮涡约虞d到顯卡上的數(shù)據(jù)量。運行計算機視覺模型時,顯存越大越好,特別是如果你想?yún)⒓?CV Kaggle 競賽的話。對于自然語言處理和數(shù)據(jù)分類,顯存沒有那么重要。
常見問題
多 GPU(SLI/交火)
選擇多 GPU 有兩個理由:需要并行訓(xùn)練多個模型,或者對單個模型進行分布式訓(xùn)練。
并行訓(xùn)練多個模型是一種測試不同原型和超參數(shù)的技術(shù),可縮短反饋周期,你可以同時進行多項嘗試。
分布式訓(xùn)練,或在多個顯卡上訓(xùn)練單個模型的效率較低,但這種方式確實越來越受人們的歡迎?,F(xiàn)在,使用 TensorFlow、Keras(通過 Horovod)、CNTK 和 PyTorch 可以讓我們輕易地做到分布式訓(xùn)練。這些分布式訓(xùn)練庫幾乎都可以隨 GPU 數(shù)量達成線性的性能提升。例如,使用兩個 GPU 可以獲得 1.8 倍的訓(xùn)練速度。
PCIe 通道:使用多顯卡時需要注意,必須具備將數(shù)據(jù)饋送到顯卡的能力。為此,每一個 GPU 必須有 16 個 PCIe 通道用于數(shù)據(jù)傳輸。Tim Dettmers 指出,使用兩個有 8 個 PCIe 通道的 GPU,性能應(yīng)該僅降低「0—10%」。
對于單個 GPU 而言,任何桌面級處理器和芯片組如 Intel i5 7500 和 Asus TUF Z270 需要使用 16 個通道。
然而,對于雙 GPU,你可以使用 8x/8x 通道,或者使用一個處理器和支持 32PCIe 通道的主板。32 個通道超出了桌面級 CPU 的處理能力。使用 Intel Xeon 組合 MSI—X99A SLI PLUS 是可行的方案。
對于 3 個或 4 個 GPU,每個 GPU 可使用 8x 通道,組合支持 24 到 32 個 PCIe 通道的 Xeon。
如果需要使用 3 到 4 個有 16 個 PCIe 通道的 GPU,你得有一個怪獸級處理器。例如 AMD ThreadRipper(64 個通道)和相應(yīng)的主板。
總之,GPU 越多,需要越快的處理器,還需要有更快的數(shù)據(jù)讀取能力的硬盤。
英偉達還是 AMD
英偉達已經(jīng)關(guān)注深度學(xué)習(xí)有一段時間,并取得了領(lǐng)先優(yōu)勢。他們的 CUDA 工具包具備扎實的技術(shù)水平,可用于所有主要的深度學(xué)習(xí)框架——TensorFlow、PyTorch、Caffe、CNTK 等。但截至目前,這些框架都不能在 OpenCL(運行于 AMD GPU)上工作。由于市面上的 AMD GPU 便宜得多,我希望這些框架對 OpenCL 的支持能盡快實現(xiàn)。而且,一些 AMD 卡還支持半精度計算,從而能將性能和顯存大小加倍。
今年夏天,AMD 還發(fā)布了 ROCm 平臺提供深度學(xué)習(xí)支持,它同樣適用于主流深度學(xué)習(xí)庫(如 PyTorch、TensorFlow、MxNet 和 CNTK)。目前,ROCm 仍然在不斷開發(fā)中。
然而目前而言,如果想做深度學(xué)習(xí)的話,還是選擇英偉達吧。
其它硬件
你的 GPU 還需要以下這些硬件才能正常運行:
硬盤:首先需要從硬盤讀取數(shù)據(jù),我推薦使用固態(tài)硬盤,但機械硬盤也可以。
CPU:深度學(xué)習(xí)任務(wù)有時需要用 CPU 解碼數(shù)據(jù)(例如,jpeg 圖片)。幸運的是,任何中端現(xiàn)代處理器都能做得不錯。
主板:數(shù)據(jù)需要通過主板傳輸?shù)?GPU 上。單顯卡可以使用幾乎任何芯片組都可以使用。
RAM:一般推薦內(nèi)存的大小至少和顯存一樣大,但有更多的內(nèi)存確實在某些場景是非常有幫助的,例如我們希望將整個數(shù)據(jù)集保存在內(nèi)存中。
電源:一般來說我們需要為 CPU 和 GPU 提供足夠的電源,至少需要超過額定功率 100 瓦。
我們總體上需要 500 到 1000 美元來獲得以上設(shè)備,當(dāng)然如果買一個二手工作站會更加省錢。
GPU 性能對比(2017 年 11 月)
下面是截止目前英偉達產(chǎn)品線主要 GPU 的性能對比,每個 GPU 的 RAM 或內(nèi)存帶寬等信息都展示在圖表中。注意 Titan XP 和 GTX 1080 Ti 盡管價格相差非常多,但它們的性能卻非常相近。
價格對比表明 GTX 1080 Ti、GTX 1070 和 GTX 1060 的性價比較高。所有GPU都是幾乎相同的比值,除了 Titan XP。
Titan XP
顯存(VRAM):12 GB
內(nèi)存帶寬:547.7 GB/s
處理器:3840 個 CUDA 核心 @ 1480 MHz(約 5.49 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:9700 元
Titan XP 是目前英偉達消費級顯卡的旗艦產(chǎn)品,正如性能指標(biāo)所述,12GB 的內(nèi)存宣示著它并不是為大多數(shù)人準(zhǔn)備的,只有當(dāng)你知道為什么需要它的時候,它才會位列推薦列表。
一塊 Titan XP 的價格可以讓你買到兩塊 GTX 1080,而那意味著強大的算力和 16GB 的顯存。
GTX 1080 Ti
參數(shù):
顯存(VRAM):11 GB
內(nèi)存帶寬:484 GB/s
處理器:3584 個 CUDA 核心 @ 1582 MHz(約 5.67 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:4600 元
這塊顯卡正是我目前正在使用的型號,它是一個完美的高端選項,擁有大容量顯存和高吞吐量,物有所值。
如果資金允許,它是一個很好的選擇。GTX 1080 Ti 可以讓你完成計算機視覺任務(wù),并在 Kaggle 競賽中保持強勢。
GTX 1080
參數(shù):
顯存(VRAM):8 GB
內(nèi)存帶寬:320 GB/s
處理器:2560 個 CUDA 核心 @ 1733 MHz(約 4.44 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:3600 元
作為目前英偉達產(chǎn)品線里的中高端顯卡,GTX 1080 的官方價格從 1080 Ti 的 700 美元降到了 550 美元。8 GB 的內(nèi)存對于計算機視覺任務(wù)來說夠用了。大多數(shù) Kaggle 上的人都在使用這款顯卡。
GTX 1070 Ti
參數(shù):
顯存(VRAM):8 GB
內(nèi)存帶寬:256 GB/s
處理器:2432 個 CUDA 核心 @ 1683 MHz(約 4.09 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:3000 元
11 月 2 日推出的 GTX 1070 Ti 是英偉達產(chǎn)品線上最新的顯卡。如果你覺得 GTX 1080 超出了預(yù)算,1070 Ti 可以為你提供同樣大的 8 GB 顯存,以及大約 80% 的性能,價格也打了八折,看起來不錯。
GTX 1070
參數(shù):
顯存(VRAM):8 GB
內(nèi)存帶寬:256 GB/s
處理器:1920 個 CUDA 核心 @ 1683 MHz(約 3.23 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:2700 元
現(xiàn)在很難買到這款 GPU 了,因為它們主要用于虛擬貨幣挖礦。它的顯存配得上這個價位,就是速度有些慢。如果你能用較便宜的價格買到一兩個二手的,那就下手吧。
GTX 1060(6 GB 版本)
參數(shù):
顯存(VRAM):6 GB
內(nèi)存帶寬:216 GB/s
處理器:1280 個 CUDA 核心 @ 1708 MHz(約 2.19 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:2000 元
相對來說比較便宜,但是 6 GB 顯存對于深度學(xué)習(xí)任務(wù)可能不夠用。如果你要做計算機視覺,那么這可能是最低配置。如果做 NLP 和分類數(shù)據(jù)模型,這款還可以。
GTX 1050 Ti
參數(shù):
顯存(VRAM):4 GB
內(nèi)存帶寬:112 GB/s
處理器:768 個 CUDA 核心 @ 1392 MHz(約 1.07 億 CUDA 核心頻率)
英偉達官網(wǎng)價格:1060 元
這是一款入門級 GPU。如果你不確定是否要做深度學(xué)習(xí),那么選擇這款不用花費太多錢就可以體驗一下。
值得注意的問題
上代旗艦 Titan X Pascal 曾是英偉達最好的消費級 GPU 產(chǎn)品,而 GTX 1080 Ti 的出現(xiàn)淘汰了 Titan X Pascal,前者與后者有同樣的參數(shù),但 1080 Ti 便宜了 40%。
英偉達還擁有一個面向?qū)I(yè)市場的 Tesla GPU 產(chǎn)品線,其中包括 K40、K80、P100 和其他型號。雖然你或許很少能夠接觸到,但你可能已經(jīng)通過 Amazon Web Services、谷歌云平臺或其他云供應(yīng)商在使用這些 GPU 了。
我在之前的文章中對 GTX 1080 Ti 和 K40 進行了一些基準(zhǔn)測試。1080 的速度是 K40 的 5 倍,是 K80 的 2.5 倍。K40 有 12 GB 顯存,K80 有 24 GB 的顯存。
理論上,P100 和 GTX 1080 Ti 應(yīng)該性能差不多。但是,之前的對比(https://www.reddit.com/r/NiceHash/comments/77uxe0/gtx_1080ti_vs_nvidia_tesla_p100_xpost_from/)發(fā)現(xiàn) P100 在每個基準(zhǔn)中都比較落后。
K40 售價超過了 13,000元,K80 售價超過 20,000 元,P100 售價約 30,000 元。它們的市場正被英偉達自家的桌面級 GPU 無情吞噬。顯然,按照現(xiàn)在的情況,我不推薦你去購買它們。
一句話推薦
如果你不設(shè)定自己的預(yù)算,裝配電腦就成了一件困難的事。在這里,我將給出不同預(yù)算區(qū)間下 GPU 的最佳選擇。
4600-6000 元區(qū)間:首推 GTX 1080 Ti。如果你需要雙顯卡 SLI,請購買兩塊 GTX 1070(可能不太好找)或兩塊 GTX 1070 Ti。Kaggle 排行榜,我來了!
2600-4600 元區(qū)間:可選 GTX 1080 或 GTX 1070 Ti。如果你真的需要 SLI 的話或許兩塊 GTX 1060 也是可以的,但請注意它們的 6GB 內(nèi)存可能會不夠用。
2000-2600 元區(qū)間:GTX 1060 可以讓你入門深度學(xué)習(xí),如果你可以找到成色不錯的 GTX 1070 那就更好了。
2000 元以下:在這個區(qū)間內(nèi),GTX 1050 Ti 是最佳選擇,但如果你真的想做深度學(xué)習(xí),請加錢上 GTX 1060。
深度學(xué)習(xí)有望改變我們生活中的很多方面。然而,構(gòu)建深度學(xué)習(xí)系統(tǒng)需要強大的硬件,希望本文能夠?qū)δ阊b配自己的深度學(xué)習(xí)機器有所幫助。
評論
查看更多