僅需6200美圓,高性價比構建3塊2080Ti的強大工做站

選自L7,做者:Curtis Northcutt,機器之心編譯。python

若是想要進行深度學習訓練,在英偉達的新一代 GPU 中,RTX 2080Ti 是性價比最高的顯卡(參見:首個 Titan RTX 深度學習評測結果出爐:2019 年你該選擇哪款 GPU?)。但即便不上泰坦,9000 元一塊的 GPU 也是很貴的。在本文中,來自 MIT 的 Curtis Northcutt 爲咱們找到了組建一臺三 2080Ti 深度學習工做站的最簡方式。bash

在他的配置下,整個系統需花費 6200 美圓(約合 41700 元人民幣),相比 AI 硬件供應商 Lambda Labs 提供的整機要便宜一半。如何爲實驗室組裝一臺最強大的計算機,讓咱們來看看他是怎麼作到的。網絡

我在 MIT 量子計算實驗室和數字學習實驗室構建了一臺多 GPU 深度學習工做站。在網絡中搜索時我發現,並無一篇文章詳細介紹了全部裝機細節。多線程

不過我仍是發現了像 Lambda GPU 工做站這樣的整機供應商。惟一的問題是:一臺這樣的機器須要花費 12,500 美圓。這是進行頂級前沿深度學習研究的最佳配置,但若是買不起的話什麼都無從談起了。在這篇文章中,我將介紹一個本身版本的裝機配置——使用相同或更好的配置,並且節省一半以上資金:只需 6200 美圓。爲了能讓全部研究者得到幫助,在這篇文章中我會分享全部配置細節。架構

若是你正在構建一臺較小的深度學習機器,你會發現本文一樣有用。在正文中,我加入了可進一步下降成本的一些示例。tcp

在文章最後,我給出了自組建機器與谷歌計算引擎(GCE)深度學習 VM 的時間/成本對比。我使用 PyTorch ImageNet/ResNet50 訓練做爲基準。分佈式

完美配置?ide

完美配置是不存在的,由於每一個人的需求都不盡相同。即便過去曾經出現過,最佳配置也會隨着新硬件的不斷推出而改變。因此,本文試圖給出儘量好的配置。性能

深度學習工做站的全部組件學習

如下就是清單的所有了。

我訂購的全部組件都是在 Newegg 上在線購買的,不過對於咱們來講,亞馬遜等其餘途徑都是能夠的。若是你想去電子城找更便宜的,也能夠嘗試。

深度學習工做站的全部組件。

在 2019 年 1 月 31 日,每一個組件及其價格以下:

  • 3 塊 EVGA 英偉達 RTX 2080 Ti GPU

  • EVGA GeForce 2080 Ti,3570 美圓(每塊 1190 美圓)


  • 20 線程 CPU(中央處理器)

  • 英特爾 Core i9 9820X Skylake X 10 核 3.3Ghz,850 美圓


  • X299 主板(全部其餘組件都要鏈接主板)

  • ASUS WS X299 SAGE LGA 2066 英特爾 X299,492 美圓


  • 機箱

  • 海盜船 Carbide 系列 Air 540,130 美圓


  • 2TB M.2 SSD 固態硬盤

  • 英特爾 660p 系列 M.2 2280 2TB PCI-Express,280 美圓


  • 3TB 機械硬盤(用於速度不敏感文件的存儲)

  • 希捷 BarraCuda ST3000DM008 3TB 7200 轉,85 美圓


  • 128G 內存

  • 4 個海盜船 Vengeance LPX 32GB,740 美圓(每一個 185 美圓)


  • 1600W PSU 電源

  • EVGA SuperNOVA 1600W P2,347 美圓(1300W 的電源在 ImageNet/ResNet50 基準測試時會出現斷電重啓)


  • 散熱器

  • 海盜船 Hydro 系列 H100i PRO 低噪音版,110 美圓

在 Newegg 上使用會員帳戶購買的話,不算消費稅全部組件的總價爲 6200 美圓(升級後的電源另有 107 美圓)。

深度學習工做站視圖。

每個組件的考慮事項

在選擇 GPU、RAM、CPU 和主板等組件時,須要牢記如下三個目標:

  1. 速度和容量最大化

  2. 避免組件間出現瓶頸

  3. 花費少

我列舉了構建工做站所需的全部組件以及每一組件的考慮事項。各組件以其對深度學習模型訓練的性能影響爲序排列。

GPU

  • 經基準測試,RTX 2080 Ti 是 2500 美圓價位下最好的 GPU。

  • 請購買 after-market GPU(如 EVGA 或 MSI),而不是英偉達 Founders Edition。

  • 注意 RTX 2080 Ti 的過熱問題。

  • 該工做站並未使用渦輪風扇式(blower-style)GPU(更便宜),但渦輪風扇式 GPU 的性能可能更好。

GPU 是深度學習機器中最爲重要的組件,同時也是最昂貴的。你一般應該首先考慮使用哪一種 GPU:裝配中的其餘全部組件選擇將基於此。不少博客都有介紹如何選擇知足你須要的 GPU。

若是你想要一款高性能 GPU,我建議不要受市場營銷的干擾,直接購買 RTX 2080 Ti。若是你想本身作研究,並想要選擇一款性價比高的 GPU,則能夠經過 videocardbenchmark.net 檢索,並在你的價格區間內選擇性能最佳的 GPU。除非你的預算在 2,500 美圓以上,RTX 2080 Ti 是最佳選擇。若是性能下降 30%,你能夠選擇購買更便宜的 RTX 2080 或者舊版 GTX 1080 Ti。爲實現最佳的深度學習,我建議你購買至少 11GB 內存的 GPU,而這正是 RTX 2080 Ti 的內存容量。

在購買 RTX 2080 Ti 時,你會注意到市場上有大量相關品牌:EVGA、技嘉、華碩、微星等。這些都是所謂的 after-market GPU(非公版)。你也能夠選擇直接購買英偉達的 Founders Edition。通常而言,若是你想追求最佳性能,不要購買 founders edition。爲優化性能,EVGA 等公司會對 GPU 進行定製設計,有時會進行 GPU 超頻處理。Founders edition 是首次嘗試而非最佳嘗試。非公版 GPU 一般設計有一至三個風扇,大概風扇越多,性能越好。其中一些只是營銷噱頭罷了,兩個風扇一般就夠了。這裏的主要建議是:購買 EVGA、技嘉、華碩或微星的非公版 GPU。

請注意,after-market GPU 品牌衆多,價格不一。超頻 GPU 每每更貴,但一般會做出一些折中,於是實際上並不能提高性能。你一般只需購買最便宜的便可。

一些顧客已經抱怨過 RTX 2080 TI 的過熱問題。我在構建工做站時僅使用三個 GPU 就是爲了增長冷卻氣流。若是沒有出現問題,我會另加第四個 RTX 2080 TI GPU。

我在構建工做站中使用了開放式風扇 GPU(風扇在每一個 GPU 的底部),由於它們成本更低。渦輪風扇式 GPU 將氣流從機箱一側排出,使性能更佳。就咱們使用的主板而言,GPU 被壓縮得很緊,阻止開放式 GPU 風扇排出氣流。若是你購買了渦輪風扇式 GPU,風扇可直接將氣流從機箱一側排出。

固態硬盤 SSD

  • SSD <> GPU 數據遷移是深度學習訓練和預測的主要瓶頸。

  • m.2 SSD 比標準 SSD 快了 6 倍。

  • 若是預算足夠,請購買 m.2 SSD。你須要與 m.2 兼容的主板。

從硬盤到 GPU 的數據遷移是深度學習的主要瓶頸,會極大下降訓練和測試時速。m.2 SSD 能夠解決這個問題。最貴的 SSD 寫入速度爲 3500 mb/s,而標準 SSD 寫入速度爲 500 mb/s。

我購買了一個較便宜的 m.2 SSD 來構建工做站,其寫入速度約爲 1800 mb/s,但容量較大,爲 2 TB。你可能會以爲購買更小的 256MB m.2 SSD 更有用,由於它寫入速度更快且成本更低。這的確是以更少的成本得到更好性能的好辦法。惟一須要注意的是,你要確保全部訓練數據均可以放在 m.2 SSD 上。

主板

  • 爲了支持多 GPU,你須要足夠的 PCI-E 通道。

  • 這意味着你須要 x299(英特爾 CPU)或 x399(AMD CPU)主板。

  • 你能夠選擇便宜一點的,但若是預算足夠,能夠考慮工做站(workstation)主板。

主板很難購買,由於選擇太多,不少人不清楚爲何有的主板會比其它主板貴不少。對於深度學習來講,主板最重要的方面是 PCI-E 通道的數量。在我構建的工做站中,主板有 44 個 PCI-E 通道。這意味着若是有 3 個 GPU(每一個須要 16 個通道),我能夠在 32 個通道上運行兩個 GPU(每一個 GPU16 個通道),在 8 個通道上運行 1 個 GPU(總共須要 40 個通道)。大多數基準測試代表,在 8 個通道和 16 個通道上運行 GPU 的性能差別能夠忽略不計,但將來差異可能會大一些。至少,確保你的主板有足夠的 PCI-E 通道,可以知足每一個 GPU 所需的最少數量。因此對 3 塊 RTX 2080 TI GPU 來講,最少須要 24 個 PCI-E 通道。

另外一個考量是選擇 x299(英特爾 CPU)仍是 x399(AMD CPU)主板。對每一個處理線程來講,英特爾 CPU 更快,但對於相同數量的處理線程來講,AMD CPU 一般比英特爾 CPU 更便宜。我選擇用英特爾處理器(20 個線程和較快的處理速度),所以須要 x299 主板。

更可靠(也更昂貴)的主板一般被稱爲工做站主板。可靠性的提升是否值得如此高價仍有待商榷。我在本身的構建過程當中選擇了工做站主板,但若是你想選擇更便宜的,能夠考慮 SUPERMICRO x299 主板。它知足了個人全部需求,但便宜了 100 美圓。

CPU

  • 選擇英特爾 X 系列(x299 主板)或 AMD ThreadRipper(x399)。

  • 對每一個線程來講,英特爾 CPU 更快,但 AMD CPU 在相同的花費下支持更多線程。

經過考慮如下問題,基於你的計算需求選擇 CPU:

  1. 你是否須要運行大量多線程工做?

  2. 你須要每一個線程運行很快嗎?

若是(1)回答「是」,而(2)回答(不須要),那麼你能夠用更少的成本選擇支持 32 個線程的 AMD Ryzen Threadripper 2950X。若是第二個問題的答案是「須要」,那你可能想要選擇英特爾 CPU。

對於英特爾 CPU,你須要選擇核心的英特爾 X 系列 CPU 用於多 GPU 深度學習。只有 X 系列的 CPU 支持 x299 主板,而只有 x299 主板才具備足夠的 PCI-E 通道來支持多 GPU。若是你僅使用 2 個 GPU,那麼你能夠減小主板+CPU 的成本,選擇較便宜的 300 系列英特爾 CPU 和 LGA 1151 主板(而非 x299)。這樣你就能夠在 16 個 PCI-E 通道上運行一個 GPU,而後在另外 8 個通道上運行另外一個 GPU(大部分 LGA 1151 主板有 24 個 PCI-E 通道,但購買的時候請仔細確認)

機箱

  • 選擇適合本身主板的機箱(ATX 是標準尺寸,mini-ATX 較小)。

  • 選擇具有氣流流通空間的機箱,以保持 GPU 低溫。

  • Carbide Series™ Air 540 High Airflow ATX Cube Case 比較適合深度學習工做站。

對於多 GPU 工做站,氣流和散熱是重中之重。選擇適合主板的機箱。大部分使用多 GPU 的主板是 ATX,所以你能夠選擇一個適合 ATX 主板的機箱。若是你不肯定要買哪一種機箱,Carbide Series™ Air 540 High Airflow ATX Cube Case 是不錯的選擇。

硬盤驅動器

若是 m.2 SSD 沒法知足存儲需求,購買 7200 RPM 的機械硬盤。

若是 m.2 SSD 過小,沒法知足你的存儲需求,你能夠購買一個機械硬盤驅動器。它比較便宜,有兩種速度:5400 RPM(較慢)和 7200 RPM(較快)。RPM 表示每分鐘轉速,這些磁盤會在計算機內進行物理旋轉,因此會有噪音。不過機械硬盤驅動器比較便宜,你能夠買一個 7200 RPM 的。

內存

  • 購買低間隙內存(RAM),確保它適合你的機箱。

  • 避免購買沒據說過的牌子。

關於 RAM,你須要考慮它的容量、物理體積和延遲。我構建的工做站使用的是 128GB RAM,不過你能夠根據數據集大小將容量減到 64GB 或 32GB。若是資金充足,我建議購買 128GB RAM,這樣在訓練深度學習模型時,你能夠將整個數據集加載到內存中,避免每一個 epoch 中出現 hard-drive <> RAM 瓶頸。

對於多 GPU 工做站,確保購買低間隙 RAM(較小機箱),間隙即 RAM 的高度。主板上要安裝大量東西,有時候大機箱 RAM 會阻塞其餘組件。海盜船 Vengeance 是一款不錯的低間隙 RAM。

若是你不使用所有 RAM 插槽的話,記得查看主板文檔。將 RAM 放進合適的插槽中很重要!主板和主板文檔一般會寫明放置 RAM 的位置。

PSU(電源供應器)

  • 確保你的 PSU 能夠提供充足的電量。參考 PSU 計算器:https://outervision.com/power-supply-calculator

  • 每一個 RTX 2080 Ti 須要大約 300W 能耗。

  • 選擇全模組,由於電纜越少就意味着氣流越多。

  • 個人 1300W PSU 致使最大負載時工做站會重啓,1600W 比較適合該工做站。

你可能會看到 gold PSU vs. platinum PSU。這指的是 PSU 所用的金屬,platinum > gold > silver > bronze > basic,它和 PSU 的效能有關。例如,一樣的計算量,bronze PSU 要比 platinum PSU 消耗更多電。若是你須要考慮省電的問題(同時也環保),能夠考慮購買 platinum 或 gold PSU。

至於本文介紹的工做站,我本來買的是 Seasonic PRIME 1300W PSU,可是當我進行分佈式 PyTorch ImageNet/ResNet50 訓練且最大化利用全部 GPU 時,工做站瀕臨重啓狀態。因而我換成了 EVGA SuperNOVA 1600 P2,這些問題解決了。注意,我使用 sudo nvidia-smi -pl 180 將 GPU 電量從 250W 降到 180W 時,1300W PSU 是可使用的。不過我仍然推薦 1600W PSU,否則會限制 GPU 速度。

散熱系統

  • 一般,不錯的氣流和適當的電纜管理對於 GPU 散熱來講足夠了。

  • 高性能(i9 X-Series)CPU 散熱用海盜船 h100i 就能夠了。

  • 即便如此,若是能夠請將機器放在陰涼、裝有空調的房間裏。

從散熱風扇到全系統水冷卻,你有不少選擇。一般,若是機箱很大且電纜管理合適,那麼你不用要太多華麗的東西。我構建的工做站中,CPU 沒有配備散熱器,我使用的是深度學習工做站中的標準配置海盜船 h100i。更低價的選擇是 Noctua NH-U9S CPU Cooler Fan。我沒買它的緣由是它太大了,可能會阻塞部分 RAM 插槽。若是你只須要 32 GB RAM,你能夠選擇這款散熱風扇。

基準測試 VS 谷歌計算引擎

我對這臺機器和谷歌計算引擎(GCE)深度學習虛擬機進行了基準測試對比。這些虛擬機據稱是專門爲優化深度學習而預構建的。GCE 深度學習虛擬機使用 CUDA 版本和基於源代碼構建的驅動程序,這些程序轉爲其硬件架構而優化。GCE 虛擬機沒有英偉達 RTX 2080 Ti GPU,因此我用 Tesla K40 來代替。根據不一樣的基準任務,英偉達 RTX 2080 Ti 的性能是 GPU Tesla K40 的 2 倍至 4 倍。因此爲了公平起見,我將這臺設備上的一個 RTX 2080 Ti 與 GCE 虛擬機上的 4 個 Tesla K40 進行了對比。

爲了作基準測試,我使用了 PyTorch 的 ImageNet 分佈式案例。我下載了 ImageNet 2012 訓練和驗證集,並在個人我的機器和 GCE 深度學習虛擬機上運行了如下代碼:

python examples/imagenet/main.py -a resnet18 --lr 0.1 --dist-url 'tcp://127.0.0.1:FREEPORT' --dist-backend 'nccl' --multiprocessing-distributed --world-size 1 --rank 0 "/location/where/I/stored/imagenet/"複製代碼

GCE 深度學習虛擬機規格

我建立的虛擬機規格以下:

  • 架構:64 位,x86_64

  • K40 GPU 數量:8

  • 內存:394 GB

  • RAM:172 GB

  • CPU 線程數量:24

ImageNet 訓練時間基準

訓練 1 個 epoch 所需時間對比:

  • 我構建的工做站上 1 個 RTX 2080 TI 訓練 1 個 epoch 耗時:37.5 分鐘

  • GCE 虛擬機上 4 個 Tesla K40 GPU 訓練 1 個 epoch 耗時:86.3 分鐘

這些值是通過 50 個 epoch 訓練後平均獲得的。運行的代碼和上面相同,沒有在任何一臺機器上展開其它進程。

訓練每一個 epoch GCE 所需的花費

我使用的 GCE 架構並非最具成本效應的設置,訓練花費爲:

4 個 Tesla K40 GPU 訓練 1 個 epoch 所需花費爲 12.77 美圓

因此用 Tesla K40 GPU 對 ImageNet 進行 100 個 epoch 訓練將花費約 1277 美圓。而對於整個虛擬機來講,將花費約 21 美圓/小時。

與 Lambda 的 4-GPU 工做站進行對比

我所構建的工做站旨在優化成本/性能權衡。若是你想構建與 Lambda 4-GPU 更加匹配的工做站,那麼能夠看一下 Lambda CEO Stephen Balaban 在 reddit 上分享的幾條建議:

  • 添加一塊額外的渦輪風扇式 GPU(1349 美圓)

  • 加 159 美圓,將另外 3 塊 GPU 都升級成渦輪風扇式 GPU(共 477 美圓)

  • 加一個熱插拔式驅動器托架(50 美圓)

  • 加 1600W PSU(107 美圓)

  • 將 CPU 從 10 核升級到 12 核(189 美圓)

  • 上述本來工做站需花費 6200 美圓

進行以上調整後,整個工做站的總花費大約是 8372 美圓,比 Lambda 工做站少大概 4000 美圓。

其餘

我使用的操做系統是 Ubuntu Server 18.04 LTS,我使用 TensorFlow Cuda 10.1(從源代碼安裝)和 PyTorch。當我長時間以最大容量使用這三塊 GPU 時,我發現最上面的 GPU 出現過熱降頻,形成性能出現 5%-20% 的降低。這多是雙風扇 GPU 設計的緣故。若是你擔憂這個問題的話,推薦使用渦輪風扇式 GPU,以免過熱降頻。


相關文章
相關標籤/搜索