tft每日頭條

 > 生活

 > 深度學習需要什麼硬件

深度學習需要什麼硬件

生活 更新时间:2024-07-22 08:26:32

點擊上方關注,All in AI中國

深度學習是計算密集型的,搭建硬件環境很重要。因此您需要具有多個内核的快速CPU,對吧?在構建深度學習系統時,最糟糕的事情之一就是在沒有必要的硬件上浪費錢。在這裡,我将逐步指導您使用廉價高性能系統所需的硬件。

多年來,我總共建立了7個不同的深度學習工作站,盡管經過了仔細的研究和推理,但我還是在選擇硬件部分時犯了一些錯誤。在本指南中,我想分享一下我多年來積累的經驗,這樣你就不會再犯同樣的錯誤了。

這篇文章是按錯誤嚴重程度排序的。這意味着人們通常浪費最多錢的錯誤首先出現。

GPU

本博文假設您将使用GPU進行深度學習。如果您正在構建或升級系統以進行深度學習,那麼不考慮GPU是不明智的。 GPU正是深度學習應用程序的核心 - 處理速度的提高太大了,不容忽視。

我在GPU推薦博客文章中詳細讨論了GPU的選擇,而GPU的選擇可能是深度學習系統最關鍵的選擇。選擇GPU時可能會出現三個主要錯誤:(1)成本/性能不佳,(2)内存不足,(3)散熱不良。

為了獲得良好的性價比,我通常推薦使用RTX 2070或RTX 2080 Ti。如果使用這些卡,則應使用16位模型。否則,來自eBay的GTX 1070,GTX 1080,GTX 1070 Ti和GTX 1080 Ti才是好的選擇,您可以使用這些具有32位(但不是16位)的GPU。

選擇GPU時要留意内存的要求。 RTX卡可以以16位運行,可以訓練相比GTX卡使用相同内存大兩倍的型号。因此,RTX卡具有内存優勢,并且選擇RTX卡并學習如何有效地使用16位模型将帶您走很長的路。通常,對内存的要求大緻如下:

  • 正在尋找最先進分數的研究:> = 11 GB
  • 正在尋找有趣架構的研究:> = 8 GB
  • 其他研究:8 GB
  • Kaggle:4 - 8 GB
  • 初創公司:8 GB(但檢查特定應用領域的型号尺寸)
  • 企業項目:8 GB用于原型設計,> = 11 GB用于訓練

需要注意的另一個問題是,如果您購買多個RTX卡,則需要冷卻系統。如果您想将GPU固定在彼此相鄰的PCIe插槽中,您應該确保使用鼓風機式風扇獲得GPU。否則,您可能會遇到溫度問題,您的GPU會變得更慢(大約30%)并且更快死亡。

深度學習需要什麼硬件(深度學習完整硬件指南)1

懷疑陣容您能否識别出因性能不佳而出現故障的硬件部分?其中一個GPU?或者也許這畢竟是CPU的錯

内存

RAM的主要錯誤是購買時鐘頻率過高的RAM。第二個錯誤是購買不夠的RAM以獲得平滑的原型制作體驗。

所需的RAM時鐘速率

RAM時鐘速率是市場營銷的一種情況,RAM公司會引誘你購買“更快”的RAM,實際上幾乎沒有産生性能提升。

此外,重要的是要知道RAM速度與快速CPU RAM-> GPU RAM傳輸幾乎無關。這是因為(1)如果您使用固定内存,您的迷你批次将轉移到GPU而不涉及CPU,以及(2)如果您不使用固定内存,快速與慢速RAM的性能提升是關于0-3% - 把錢花在别的地方!

RAM大小

RAM大小不會影響深度學習性能。但是,它可能會阻礙您輕松執行GPU代碼(無需交換到磁盤)。你應該有足夠的内存來舒适地使用你的GPU。這意味着您應該至少擁有與最大GPU匹配的RAM量。例如,如果你有一個24 GB内存的Titan RTX,你應該至少有24 GB的RAM。但是,如果您有更多的GPU,則不一定需要更多RAM。

這種“在RAM中匹配最大GPU内存”策略的問題在于,如果處理大型數據集,您可能仍然無法使用RAM。這裡最好的策略是匹配你的GPU,如果你覺得你沒有足夠的RAM,隻需購買更多。

一種不同的策略受到心理學的影響:心理學告訴我們,注意力是一種随着時間推移而耗盡的資源。 RAM是為數不多的硬件之一,可以讓您節省集中資源,解決更困難的編程問題。如果你有更多的RAM,你可以将注意力集中在更緊迫的問題上,而不是花費大量時間來環繞RAM瓶頸。有了大量的RAM,您可以避免這些瓶頸,節省時間并提高生産率,解決更緊迫的問題。特别是在Kaggle比賽中,我發現額外的RAM對于特征工程非常有用。因此,如果您有錢并進行大量預處理,那麼額外的RAM可能是一個不錯的選擇。因此,使用此策略,您希望現在擁有更多、更便宜的RAM而不是以後。

中央處理器

人們犯的主要錯誤是人們過分關注CPU的PCIe通道。您不應該太在意PCIe通道。相反,隻需查看您的CPU和主闆組合是否支持您要運行的GPU數量。第二個最常見的錯誤是獲得一個太強大的CPU。

CPU和PCI-Express

人們對PCIe通道位數極為癡迷!然而,事實是它對深度學習表現幾乎沒有影響。如果您隻有一個GPU,則隻需要PCIe通道即可快速将數據從CPU RAM傳輸到GPU RAM。然而,ImageNet批次的32個圖像(32x225x225x3)和32位需要1.1毫秒,16個通道,2.3毫秒,8個通道,4.5毫秒,4個通道。這些是理論數字,實際上你經常會看到PCIe的速度是它的兩倍 - 但這仍然是閃電般快速的! PCIe通道通常具有納秒範圍内的延遲,因此可以忽略延遲。

下面是用ResNet-152進行ImageNet32位圖像迷你批次傳輸測試的實際結果與理論數據的對比:

  • 前向和後向傳遞總用時:216毫秒(ms)
  • 16個PCIe通道CPU-> GPU傳輸:大約2 ms(理論上為1.1 ms)
  • 8個PCIe通道CPU-> GPU傳輸:大約5毫秒(2.3毫秒)
  • 4個PCIe通道CPU-> GPU傳輸:大約9毫秒(4.5毫秒)

因此,從4到16個PCIe通道将使性能提升約3.2%。但是,如果你使用帶有固定内存的PyTorch數據加載器,你可以獲得0%的性能。因此,如果您使用單個GPU,請不要在PCIe通道上浪費資金!

選擇CPU PCIe通道和主闆PCIe通道時,請确保選擇支持所需GPU數量的組合。如果您購買支持2個GPU的主闆,并且您希望最終擁有2個GPU,請确保購買支持2個GPU的CPU,但不一定要查看PCIe通道。

PCIe通道和多GPU并行

如果您在具有數據并行性的多個GPU上訓練網絡,PCIe通道是否重要?我已經在ICLR2016上發表了一篇論文,我可以告訴你,如果你有96個GPU,那麼PCIe通道非常重要。但是,如果你有4個或更少的GPU,這并不重要。如果您在2-3個GPU之間并行化,我根本不關心PCIe通道。有了4個GPU,我确保每個GPU可以獲得8個PCIe通道的支持(總共32個PCIe通道)。因為幾乎沒有人運行超過4個GPU的系統作為經驗法則:不要花費額外的錢來獲得每GPU更多的PCIe通道 - 這沒關系!

CPU核心數量很重要

為了能夠為CPU做出明智的選擇,我們首先需要了解CPU以及它與深度學習的關系。 CPU為深度學習做了什麼?當您在GPU上運行深度網絡時,CPU幾乎不會進行任何計算。主要是它(1)啟動GPU函數調用,(2)執行CPU函數。

到目前為止,CPU最有用的應用程序是數據預處理。有兩種不同的通用數據處理策略,它們具有不同的CPU需求。

第一個策略是在訓練時進行預處理:

循環:

  • 加載小批量
  • 預處理小批量
  • 小批量訓練

第二種策略是在訓練之前進行預處理:

  • 預處理數據
  • 循環:1.加載預處理的小批量

2.小批量訓練

對于第一種策略,具有多個内核的良好CPU可以顯著提高性能。對于第二種策略,您不需要非常好的CPU。對于第一個策略,我建議每個GPU至少有4個線程 - 通常每個GPU有兩個核心。我沒有對此進行過硬測試,但每增加一個核心/ GPU,你應該獲得大約0-5%的額外性能。

對于第二種策略,我建議每個GPU至少有2個線程 - 通常是每個GPU一個核心。如果您使用第二個策略,那麼當您擁有更多内核時,您将不會看到性能的顯著提升。

雖然這種推理似乎很明智,但是當我運行深度學習程序時,CPU有100%的使用率,那麼這裡的問題是什麼?我做了一些CPU核心速率的低頻實驗來找出答案。

深度學習需要什麼硬件(深度學習完整硬件指南)2

MNIST和ImageNet上的CPU降頻:可以看出,不同主頻CPU在内核大幅降頻後對整個系統的性能影響不大。作為比較:從GTX 580升級到GTX Titan的性能約為 20%;從GTX Titan到GTX 980另外 30%的性能; GPU超頻可為任何GPU帶來約 5%的性能

請注意,這些實驗是在過時的硬件上進行的,但是,對于現代CPU / GPU,這些結果應該仍然相同。

硬盤/ SSD

硬盤通常不是深度學習的瓶頸。但是,如果你做了愚蠢的事情依然會對你造成傷害:如果你在需要時從磁盤讀取數據(阻塞等待),那麼一個100 MB / s的硬盤驅動器将花費大約185毫秒的時間用于32的ImageNet迷你批次!但是,如果您在使用數據之前異步獲取數據(例如Torch視覺加載器),那麼您将在185毫秒内加載小批量,而ImageNet上大多數深度神經網絡的計算時間約為200毫秒。因此,在當前仍處于計算狀态時加載下一個小批量,您将不會面臨任何性能損失。

但是,我推薦使用SSD來提高舒适度和工作效率:程序啟動和響應速度更快,使用大文件進行預處理要快得多。如果您購買NVMe SSD,與普通SSD相比,您将獲得更加平滑的體驗。

因此,理想的設置是為數據集和SSD配備容量性能稍差的機械硬盤驅動器,以兼顧生産力和成本。

電源裝置(PSU)

通常,您需要一個足以容納所有未來GPU的PSU。 GPU随着時間的推移通常會變得更加節能;因此,雖然需要更換其他組件,但PSU應該持續很長時間,因此良好的PSU是一項很好的投資。

您可以通過将CPU和GPU的功耗與其他組件的額外10%瓦特相加來計算所需的功率,并作為功率峰值的緩沖器。例如,如果您有4個GPU,每個250瓦TDP和一個150瓦TDP的CPU,那麼您将需要一個最小為4×250 150 100 = 1250瓦的PSU。我通常會添加另外10%,以确保一切正常,在這種情況下将導緻總共1375瓦特。在這種情況下,我想要獲得一個1400瓦的PSU。

需要注意的一個重要部分是,即使PSU具有所需的功率,它也可能沒有足夠的PCIe 8針或6針連接器。确保PSU上有足夠的連接器以支持所有GPU!

另一個重要的事情是購買具有高功率效率等級的PSU - 特别是如果你運行許多GPU并将運行它們更長的時間。

以全功率(1000-1500瓦)運行4 GPU系統來訓練卷積網兩周将達到300-500千瓦時,在德國 - 相當高的電力成本為每千瓦時20美分 - 将達到60- 100歐元(66-111美元)。如果這個價格是100%的效率,那麼用80%的電源進行這樣的網絡訓練會使成本增加18-26歐元 。對于單個GPU而言,這個問題要少得多,但重點仍然存在——在高效電源上投入更多資金是有道理的。

全天候使用幾個GPU将大大增加您的碳足迹,并将使運輸(主要是飛機)和其他有助于您的足迹的因素蒙上陰影。如果你想要負責,請考慮像NYU機器學習語言組(ML2)那樣實現碳中性 - 它很容易做到,價格便宜,應該成為深度學習研究人員的标準。

CPU和GPU冷卻

冷卻很重要,它可能是一個重要的瓶頸,與糟糕的硬件選擇相比,它會降低性能。對于CPU來說,使用标準散熱器或一體化(AIO)水冷卻解決方案應該沒問題,但是對于GPU來說,需要特别注意。

風冷GPU

對于單個GPU,空氣冷卻是安全可靠的,或者如果您有多個GPU之間有空間(在3-4 GPU情況下為2個GPU)。但是,當您嘗試冷卻3-4個GPU時,可能會出現最大的錯誤之一,在這種情況下您需要仔細考慮您的選項。

現代GPU在運行算法時會将速度以及功耗提高到最大值,但一旦GPU達到溫度障礙 - 通常為80°C - GPU将降低速度,以便溫度阈值為沒有違反。這樣可以在保證GPU不過熱的情況下獲得最好的性能。

然而,對于深度學習程序而言,典型的預編程風扇速度調度設計非常糟糕,因此在開始深度學習程序之後幾秒内就達到了這個溫度阈值。結果是性能下降(0-10%),這對于GPU相互加熱的多個GPU(10-25%)而言可能很重要。

由于NVIDIA GPU首先是一個遊戲GPU,因此它們針對Windows進行了優化。您可以在Windows中點擊幾下就更改粉絲計劃,但在Linux中不是這樣,并且因為大多數深度學習庫都是針對Linux編寫的,所以這是一個問題。

Linux下唯一的選擇是用于設置Xorg服務器(Ubuntu)的配置,您可以在其中設置“coolbits”選項。這對于單個GPU非常有效,但是如果你有多個GPU,其中一些是無頭的,即它們沒有附加監視器,你必須模拟一個非常複雜的監視器。我嘗試了很長時間,并且使用實時啟動CD來恢複我的圖形設置讓我很沮喪 - 我無法讓它在無頭GPU上正常運行。

如果在空氣冷卻下運行3-4個GPU,最重要的考慮因素是注意風扇設計。 “鼓風機”風扇設計将空氣推出到機箱背面,以便将新鮮、涼爽的空氣推入GPU。非鼓風機風扇在GPU的虛拟性中吸入空氣并冷卻GPU。但是,如果你有多個GPU彼此相鄰,那麼周圍就沒有冷空氣了,帶有非鼓風機風扇的GPU會越來越多地加熱,直到它們自己降低溫度以達到更低的溫度。不惜一切代價避免在3-4個GPU設置中的非鼓風機風扇。

用于多個GPU的水冷GPU

另一種更昂貴且更加工藝的選擇是使用水冷卻。如果你有一個GPU,或者你的兩個GPU之間有空隙(3-4 GPU闆中有2個GPU),我不推薦使用水冷。然而,水冷卻确保即使最強勁的GPU在4 GPU設置下也能保持涼爽,這在用空氣冷卻時是不可能的。水冷卻的另一個優點是它可以運行很安靜,如果你在其他人工作的區域運行多個GPU,這是一個很大的優勢。水冷卻每個GPU需要花費大約100美元和一些額外的前期成本(大約50美元)。水冷還需要一些額外的工作來組裝你的計算機,但有很多詳細的指南,它應該隻需要幾個小時的時間。維護不應該那麼複雜或費力。

為了更好的冷卻效果購買大機箱?

我為我的深度學習集群購買了大型塔式機箱,但我發現這在很大程度上是無關緊要的:大約2-5°C的下降,卻導緻空間占用和成本上的飙升,不值得投資。最重要的部分是直接在GPU上的冷卻解決方案 - 而不是為GPU冷卻功能選擇昂貴的外殼。

結論冷卻

所以最後很簡單:對于1 GPU,空氣冷卻是最好的。對于多個GPU,您應該獲得鼓風式空氣冷卻并接受微小的性能損失(10-15%),或者您需要額外支付水冷卻,這也更難以正确設置并且您沒有性能損失。在某些情況下,空氣和水冷卻都是合理的選擇。然而,我會建議空氣冷卻以簡化操作 - 如果您運行多個GPU,請使用鼓風機式GPU。如果您想用水冷卻,請嘗試為GPU找到一體化(AIO)水冷卻解決方案。

主闆

您的主闆應該有足夠的PCIe端口來支持您要運行的GPU數量(通常限制為4個GPU,即使您有更多的PCIe插槽);請記住,大多數GPU的寬度都是兩個PCIe插槽,因此如果您打算使用多個GPU,請購買PCIe插槽之間有足夠空間的主闆。确保您的主闆不僅具有PCIe插槽,而且實際上支持您要運行的GPU設置。如果您在newegg上搜索您選擇的主闆并查看規格頁面上的PCIe部分,通常可以找到相關信息。

電腦機箱

選擇外殼時,應确保它支持位于主闆頂部的全長GPU。大多數情況下都支持全長GPU,但是如果你購買一個小盒子,你應該懷疑。檢查其尺寸和規格;你也可以嘗試谷歌圖像搜索該模型,看看你是否找到了帶有GPU的圖片。

如果您使用自定義水冷卻,請确保您的外殼有足夠的空間放置散熱器。如果您為GPU使用水冷卻尤其如此。每個GPU的散熱器都需要一些空間 - 确保您的設置實際上适合GPU。

顯示器

顯示器貌似不應該出現在深度學習硬件的推薦列表裡,但出乎很多人的意料,顯示器對生産力的影響極為巨大。

我在3台27英寸顯示器上花的錢可能是我用過的最好的錢。使用多台顯示器時,生産力會大幅提升。如果我必須使用一台顯示器,工作幾乎不能進行。如果您無法以有效的方式操作它,不要在這件事上做出改變。那麼快速深度學習系統有什麼用呢?

深度學習需要什麼硬件(深度學習完整硬件指南)3

我的深度學習典型顯示器布局:左:論文,谷歌搜索,gmail,stackoverflow;中:代碼;右:輸出窗口,R,文件夾,系統監視器,GPU監視器,待辦事項列表和其他小型應用程序。

關于構建PC的一些話

許多人害怕構建,因為硬件組件很昂貴,你不想做錯事。但它非常簡單,因為不屬于一起的組件不能組合在一起。主闆手冊通常非常具體描述如何組裝所有内容,并且有大量的指南和分步視頻,如果您沒有經驗,它們将指導您完成整個過程。

構建計算機的好處在于,您知道在執行計算機時有關構建計算機的所有信息,因為所有計算機都以相同的方式構建。

結論/ TL; DR

  • GPU:RTX 2070或RTX 2080 Ti。來自eBay的GTX 1070,GTX 1080,GTX 1070 Ti和GTX 1080 Ti也不
  • CPU:每GPU 1-2個核心,具體取決于您預處理數據的方式。 > 2GHz; CPU應該支持您要運行的GPU數量。 PCIe通道并不重要。
  • RAM
  • – 時鐘頻率無關緊要 – 購買最便宜的RAM。
  • – 購買至少與最大GPU的RAM相匹配的CPU RAM。
  • – 僅在需要時購買更多RAM。
  • – 如果您經常使用大型數據集,則可以使用更多RAM。
  • 硬盤/ SSD
  • – 用于數據的硬盤驅動器(> = 3TB)
  • – 使用SSD來獲得舒适性并預處理小型數據集。
  • PSU
  • – 加上GPU CPU的瓦數。然後将所需瓦數的總和乘以110%。
  • – 如果您使用多個GPU,請獲得高效率。
  • – 确保PSU有足夠的PCIe連接器(6 8針)
  • 散熱
  • – CPU:獲得标準CPU散熱器或一體化(AIO)水冷解決方案
  • – GPU:
  • – 使用空氣冷卻
  • – 如果您購買多個GPU,則使用“鼓風式”風扇獲取GPU
  • – 在您的Xorg中設置coolbits标志配置控制風扇速度
  • 主闆
  • – 為您的(未來)GPU準備盡可能多的PCIe插槽(一個GPU需要兩個插槽;每個系統最多4個GPU)
  • 監視器
  • – 額外的監視器可能會比增加GPU更高效。

深度學習需要什麼硬件(深度學習完整硬件指南)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved