選自Medium,作者:Jeff Chen,機器之心編譯。
如果你用過或者正在考慮將 AWS/Azure/Google Cloud 用於機器學習,你就會知道 GPU 使用成本有多高。此外,開、關機器對自己的工作流也有極大的破壞。更好的選擇是,自己搭建機器。這篇文章表明,自建機器要比租賃機器便宜 10 倍,也更容易使用。
建立一個可擴充套件的深度學習計算機 W/1 高檔 GPU 只需要花費 3000 美元
我建的機器只花費了 3000 美元,下面是花費清單,包括一張 1080Ti(你可以多加 500 美元使用全新的 2080Ti 做機器學習,但注意要加上增壓風機設計)、一個 12 核 CPU、64GB 的 RAM 和 1TB 的 M.2 SSD。你還可以在這臺機器上多加 3 張 GPU。
自建機器要比在 AWS/EC2 上租機器便宜 10 倍,而且同樣高效能
假設自建的機器(帶有一張 GPU)三年內貶值到 0(非常保守了),下表顯示,如果使用超過 1 年,即使包括電費,它也要比租賃機器便宜 10 倍。如果你有多年租約,亞馬遜會打折。即便這樣,折算下來自建還是要比亞馬遜價便宜 4-6 倍。如果你一次簽訂多年租賃合約,支付幾千至上萬美元,那不妨考慮自建機器。如果自建的機器包含 4 塊 GPU,1 年內成本要低 21 倍,更為可觀。
自建機器與 AWS 租賃機器的成本對比。根據使用程度,一塊 GPU 的機器要便宜 4-10 倍,4 塊 GPU 的機器要便宜 9-21 倍。AWS 有租賃一年和租三年的折扣(分別便宜 35% 和 60%)。電力消耗假定為 0.2 美元每 kWh,一塊 GPU 的機器消耗 1kW/h,4 塊 GPU 機器消耗 2kW/h,且保守估計三年線性折舊整個自建機器。每多加一塊 GPU,成本增加 700 美元(稅前)。
自建機器有一些缺點,例如較慢的下載速度,因為並不是主幹網,靜態 IP 需要遠端接入。一兩年後,可能需要更新 GPU,但因為搭建時節約的成本非常可觀,所以仍然很值。
如果你正準備使用 2080Ti 作為深度學習計器的計算引擎,那麼它要多花 500 多美元,但對於單張 GPU 的機器來說,仍然要便宜 4-9 倍。雲 GPU 機器價格大約為 3 美元/小時,即使不使用機器進行計算也要付費。
這種巨大的成本差異主要是因為 Amazon Web Services EC2(或者谷歌雲與微軟 Azure)的 GPU 費用太高,即 3 美元/小時或約為 2100 美元/月。在史丹佛,我使用雲機器實現語義分割專案,賬單需要 1000 美元。我也嘗試使用谷歌雲來做專案,賬單高達到 1800 美元。這主要是因為我沒仔細監控使用情況並按時關閉機器,唉~~
此外即使我們關閉了機器,同樣還需要以每月每 GB 0.10 美元的價格支付儲存費用,所以我每月需要支付 100 美元的費用來儲存資料。
幾個月內就回收成本
對於花 3000 美元搭建的單張 GPU 機器(1 kW/h),如果經常使用,我們在兩月內就能達到不賺不賠。這並不表示我們仍擁有完整的計算機器,不會產生一點折舊,但搭建個人機器還是一個很明智的選擇。此外,分析表明搭建 4 張 GPU 的機器能獲利更多,因為常用的話我們可以在一個月內達到收支平衡(假定電費為 0.20/kWh)。
我們的 GPU 效能與 AWS 相當
與雲 Nvidia V100 GPU(使用新一代 Volta 技術)相比,我們價值 700 刀的 Nvidia 1080 Ti 以 90% 的速度執行。這是因為雲 GPU 在例項和 GPU 之間的 IO 速度很慢,所以儘管理論上來說,V100 可能要快個 1.5-2 倍,但實際上 IO 會拖慢其速度。因為我們採用的是 M.2 SSD,所以 IO 在我們的電腦上執行速度非常快。
V100 的視訊記憶體也更大,有 16 個 G,不過如果你把批大小設定得小一點,模型效率提高一點,那麼視訊記憶體只有 11 個 G 也沒什麼關係。
跟線上租賃上一代 Nvidia K80(更便宜,1 美元/每小時)相比,我們的 1080 Ti 比它強多了,訓練速度就提高了 4 倍。在基準測試中,我發現它快了 3-4 倍(我將在隨後的帖子中說明如何進行基準測試)。每塊 K80 GPU 的視訊記憶體有 12 個 G,這是相比於 11GB 1080 Ti 的一個小優勢。
AWS 價格昂貴,因為亞馬遜只能使用更貴的 GPU
資料中心比較昂貴的一個原因是:他們使用的不是 Geforce 1080 Ti。根據合同,英偉達禁止在資料中心使用 GeForce 和 Titan 卡。所以亞馬遜和其他供應商不得不使用 8500 多刀的資料中心版 GPU,因此他們給出的租賃價格也高。
自己搭建比購買強
首先,我們得決定是買一臺電腦還是自己搭建比較好,但是自己搭建要便宜個 40-50% 呢。自己搭建的話,預製的計算機器至少需要花費 5000 刀,推薦的兩個產品是 MITXPC Deep Learning DevBox 和 The MITXPC MWS-X299MDL CUDA Workstation。
實際上我們並不必要買成品的服務站。自己搭建電腦比較難的一步是找到適合機器學習的部件,並確保它們能好好工作。關於這個我接下來會說明。構建計算機機身並不難,第一次上手的人 6 小時之內可以完成,而專業人員則一小時不到。
自己搭建可以利用大降價來購買零件!
每年新一代硬體出來之後,舊的硬體就會降價。比如,當 AMD 出了 Threadripper 2 CPU,它的 1920X 處理器價格從 800 刀降到了 400 刀。因此,降價的時候你可以立馬採取行動,這會省下不少錢。
自行搭建允許我們選擇零部件
因為能選擇零部件,我們可以擴充套件到 4 塊 GPU,或者使用其它方法優化計算系統。我檢視了一些現成的搭建方法,有的並不能擴充套件到 4 塊 GPU,或者並不能進一步提升系統效能。這些方法存在一些問題,例如一塊 CPU 不會有 36+的 PCIe 執行緒、主機板在物理上插不了 4 塊 GPU、電源功率低於 1400W 且 CPU 的核心數少於 8 等。
我個人認為普通的電腦機箱看起來非常醜陋,因此我們同樣要確保零附件具有設計美感。例如確保噪聲低和附件對機器學習有幫助等,因為 SATA3 SSD 的讀寫速度為 600MB/sec,而 M.2 PCIe SSD 快了 5 倍,並達到了 3.4GB/sec。
如何開始搭建
在下一篇部落格中,我將討論怎麼選擇元件來搭建自己的電腦。如果你想搶先開始搭建,可以檢視我公開的零件清單和價格,然後著手定製。
地址如下:pcpartpicker.com/b/B6LJ7P