深度學習訓練通常需要大量的計算。GPU是目前深度學習性價比最高的硬件加速器。特別是,與 CPU 相比,GPU 更便宜且性能更高,通常高出一個數量級以上。此外,單個服務器可以支持多個 GPU,高端服務器最多支持 8 個。更典型的數字是一個工程工作站最多 4 個 GPU,因為熱量、冷卻和電力需求迅速升級,超出了辦公大樓的支持能力。對于更大規模的部署,云計算(例如,Amazon 的 P3和 G4 實例)是更實用的解決方案。
23.5.1。選擇服務器
通常不需要購買具有許多線程的高端 CPU,因為大部分計算都發生在 GPU 上。也就是說,由于 Python 中的全局解釋器鎖 (GIL),在我們擁有 4-8 個 GPU 的情況下,CPU 的單線程性能可能很重要。在所有條件相同的情況下,這表明內核數量較少但時鐘頻率較高的 CPU 可能是更經濟的選擇。例如,在 6 核 4 GHz 和 8 核 3.5 GHz CPU 之間進行選擇時,前者更可取,盡管其總速度較低。一個重要的考慮因素是 GPU 使用大量功率,因此會散發大量熱量。這需要非常好的散熱和足夠大的機箱來使用 GPU。如果可能,請遵循以下準則:
-
電源。GPU 使用大量電力。每個設備最高 350W 的預算(檢查顯卡的峰值需求而不是典型需求,因為高效代碼會消耗大量能源)。如果您的電源不能滿足需求,您會發現您的系統變得不穩定。
-
機箱尺寸。GPU 很大,輔助電源連接器通常需要額外的空間。另外,大機箱更容易散熱。
-
顯卡散熱。如果您有大量 GPU,則可能需要投資水冷。此外,即使風扇較少,也要以參考設計為目標,因為它們足夠薄,可以在設備之間引入空氣。如果您購買多風扇 GPU,安裝多個 GPU 時它可能太厚而無法獲得足夠的空氣,并且您會遇到熱節流問題。
-
PCIe 插槽。將數據移入和移出 GPU(以及在 GPU 之間交換數據)需要大量帶寬。我們推薦 16 通道的 PCIe 3.0 插槽。如果安裝多個 GPU,請務必仔細閱讀主板說明以確保 16× 當同時使用多個 GPU 并且您獲得 PCIe 3.0 而不是 PCIe 2.0 用于額外插槽時,帶寬仍然可用。一些主板降級到8×甚至4×安裝多個 GPU 時的帶寬。這部分是由于 CPU 提供的 PCIe 通道數量。
簡而言之,這里有一些構建深度學習服務器的建議:
-
初學者。購買低功耗的低端 GPU(適合深度學習的廉價游戲 GPU 使用 150-200W)。如果幸運的話,您當前的計算機將支持它。
-
1 個顯卡。具有 4 核的低端 CPU 就足夠了,大多數主板就足夠了。瞄準至少 32 GB DRAM 并投資 SSD 用于本地數據訪問。600W的電源應該足夠了。買一個有很多風扇的 GPU。
-
2 個 GPU。具有 4-6 個內核的低端 CPU 就足夠了。瞄準 64 GB DRAM 并投資購買 SSD。兩個高端 GPU 需要大約 1000W 的功率。在主板方面,確保它們有 兩個PCIe 3.0 x16 插槽。如果可以,獲得一塊在 PCIe 3.0 x16 插槽之間有兩個可用空間(60 毫米間距)的主板,以提供額外的空氣。在這種情況下,購買兩個風扇很多的 GPU。
-
4 個 GPU。確保購買單線程速度相對較快(即時鐘頻率較高)的 CPU。您可能需要具有更多 PCIe 通道的 CPU,例如 AMD Threadripper。您可能需要相對昂貴的主板來獲得 4 個 PCIe 3.0 x16 插槽,因為它們可能需要一個 PLX 來復用 PCIe 通道。購買具有參考設計的狹窄 GPU,讓空氣進入 GPU 之間。您需要一個 1600–2000W 的電源,而您辦公室的插座可能不支持。該服務器可能會運行得很吵很熱。你不希望它在你的辦公桌下。建議使用 128 GB 的 DRAM。獲取用于本地存儲的 SSD(1–2 TB NVMe)和一組 RAID 配置的硬盤來存儲您的數據。
-
8 個 GPU。您需要購買帶有多個冗余電源的專用多 GPU 服務器機箱(例如,每個電源 1600W 的 2+1)。這將需要雙插槽服務器 CPU、256 GB ECC DRAM、快速網卡(推薦 10 GBE),并且您需要檢查服務器是否支持GPU 的物理外形。消費類 GPU 和服務器 GPU 之間的氣流和布線布局存在顯著差異(例如,RTX 2080 與 Tesla V100)。這意味著您可能無法在服務器中安裝消費類 GPU,因為電源線間隙不足或缺少合適的線束(正如其中一位合著者痛苦地發現的那樣)。
23.5.2。選擇 GPU
目前,AMD和NVIDIA是專用GPU的兩大主要廠商。NVIDIA率先進入深度學習領域,通過CUDA為深度學習框架提供更好的支持。因此,大多數買家選擇 NVIDIA GPU。
NVIDIA 提供兩種類型的 GPU,針對個人用戶(例如,通過 GTX 和 RTX 系列)和企業用戶(通過其 Tesla 系列)。這兩種類型的 GPU 提供了相當的計算能力。但是,企業級用戶GPU普遍采用(被動)強制散熱、更大內存、ECC(糾錯)內存。這些 GPU 更適合數據中心,通常成本是消費級 GPU 的十倍。
如果您是一家擁有 100 多臺服務器的大公司,您應該考慮使用 NVIDIA Tesla 系列或使用云中的 GPU 服務器。對于擁有 10 臺以上服務器的實驗室或中小型公司,NVIDIA RTX 系列可能最具成本效益。您可以購買帶有 Supermicro 或 Asus 機箱的預配置服務器,這些機箱可以高效地容納 4-8 個 GPU。
GPU 供應商通常每隔一到兩年發布一次新一代產品,例如 2017 年發布的 GTX 1000(帕斯卡)系列和 2019 年發布的 RTX 2000(圖靈)系列。每個系列都提供幾種不同的型號,提供不同的性能水平。GPU 性能主要是以下三個參數的組合:
-
計算能力。通常我們尋找 32 位浮點計算能力。16 位浮點訓練(FP16)也正在進入主流。如果你只對預測感興趣,你也可以使用 8 位整數。最新一代的圖靈 GPU 提供 4 位加速。不幸的是,目前訓練低精度網絡的算法還沒有普及。
-
內存大小。隨著您的模型變大或訓練期間使用的批次變大,您將需要更多 GPU 內存。檢查 HBM2(高帶寬內存)與 GDDR6(圖形 DDR)內存。HBM2 更快但更昂貴。
-
內存帶寬。只有當您有足夠的內存帶寬時,您才能充分利用您的計算能力。如果使用 GDDR6,請尋找寬內存總線。
對于大多數用戶來說,看算力就夠了。請注意,許多 GPU 提供不同類型的加速。例如,NVIDIA 的 TensorCores 將一部分算子加速了 5×. 確保您的圖書館支持這一點。GPU 內存應不少于 4 GB(8 GB 更好)。盡量避免將 GPU 也用于顯示 GUI(改為使用內置圖形)。如果無法避免,請添加額外的 2 GB RAM 以確保安全。
圖 23.5.1比較了各種 GTX 900、GTX 1000 和 RTX 2000 系列型號的 32 位浮點計算能力和價格。價格是在維基百科上找到的建議價格。
?
評論
查看更多