僅需6200美元,高價效比構建3塊2080Ti的強大工作站

機器之心發表於2019-03-14

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

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

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

我在 MIT 量子計算實驗室和數字學習實驗室構建了一臺多 GPU 深度學習工作站。在網路中搜尋時我發現,並沒有一篇文章詳細介紹了所有裝機細節。

不過我還是發現了像 Lambda GPU 工作站這樣的整機供應商。唯一的問題是:一臺這樣的機器需要花費 12,500 美元。這是進行頂級前沿深度學習研究的最佳配置,但如果買不起的話什麼都無從談起了。在這篇文章中,我將介紹一個自己版本的裝機配置——使用相同或更好的配置,而且節省一半以上資金:只需 6200 美元。為了能讓所有研究者獲得幫助,在這篇文章中我會分享所有配置細節。

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

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

完美配置?

完美配置是不存在的,因為每個人的需求都不盡相同。即使過去曾經出現過,最佳配置也會隨著新硬體的不斷推出而改變。所以,本文試圖給出儘可能好的配置。

深度學習工作站的所有元件

以下就是清單的全部了。

我訂購的所有元件都是在 Newegg 上線上購買的,不過對於我們來說,亞馬遜等其他途徑都是可以的。如果你想去電子城找更便宜的,也可以嘗試。

僅需6200美元,高價效比構建3塊2080Ti的強大工作站

深度學習工作站的所有元件。

在 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 美元)。

僅需6200美元,高價效比構建3塊2080Ti的強大工作站

深度學習工作站檢視。

每一個元件的考慮事項

在選擇 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,以避免過熱降頻。僅需6200美元,高價效比構建3塊2080Ti的強大工作站




相關文章