欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    曉查 安妮 郭一璞 發(fā)自 凹非寺
    量子位 報道 | 公眾號 QbitAI

    硬件設(shè)備,是任何一名深度學(xué)習(xí)er不可或缺的核心裝備。各位初級調(diào)參魔法師們,你們有沒有感到缺少那一根命中注定的魔杖?

    可是,各種CPU、GPU、內(nèi)存條、外設(shè),那么多品牌種類型號參數(shù),到底該怎么選?

    為了幫你湊齊一套能打的裝備,一位名叫Tim Dettmers的歪果小哥哥將自己一年組裝七部工作站的裝機經(jīng)驗?zāi)毘梢黄獙嵱霉ヂ苑窒砹顺鰜恚瑤湍愦_定一整套硬件選型,并且,還根據(jù)今年的新硬件做了推薦。

    好啦,下面我們從GPU開始,依次看看各重要部件應(yīng)該如何選擇,全文超過5000字,預(yù)計閱讀時間11分鐘。當(dāng)然,文末還為大家準備了“精華清單”~

    GPU

    顯卡(GPU)是深度學(xué)習(xí)的重要部件,甚至比CPU更重要。做深度學(xué)習(xí)不用GPU只用CPU顯然是不明智的,所以作者Tim先介紹了GPU的選擇。

    選購GPU有三大注意事項:性價比、顯存、散熱。

    使用16bit的RTX 2070或者RTX 2080 Ti性價比更高。另外在eBay上購買二手的32bit GTX 1070、GTX 1080或者1080 Ti也是不錯的選擇。

    除了GPU核心,顯存(GPU RAM)也是不可忽視的部分。RTX比GTX系列顯卡在顯存方面更具優(yōu)勢,在顯存相同的情況下,RTX能夠訓(xùn)練兩倍大的模型。

    通常對顯存的要求如下:

    • 如果想在研究中追求最高成績:顯存>=11 GB;
    • 在研究中搜尋有趣新架構(gòu):顯存>=8 GB;
    • 其他研究:8GB;
    • Kaggle競賽:4~8GB;
    • 創(chuàng)業(yè)公司:8GB(取決于具體應(yīng)用的模型大小)
    • 公司:打造原型8GB,訓(xùn)練不小于11GB

    需要注意的是,如果你購買了多個RTX顯卡,一定不要忽視散熱。兩個顯卡堆疊在相鄰PCI-e插槽,很容易令GPU過熱降頻,可能導(dǎo)致性能下降30%。這個問題后面還會具體討論。

    內(nèi)存

    選擇內(nèi)存(RAM)有兩個參數(shù):時鐘頻率、容量。這兩個參數(shù)哪個更重要?

    時鐘頻率

    炒作內(nèi)存時鐘頻率是廠家常用的營銷手段,他們宣傳內(nèi)存越快越好,實際上真的是這樣嗎?

    知名數(shù)碼博主Linus Tech Tips解答了這個問題:廠商會引誘你購買“更快”的RAM,實際上卻幾乎沒有性能提升。

    內(nèi)存頻率和數(shù)據(jù)轉(zhuǎn)移到顯存的速度無關(guān),提高頻率最多只能有3%的性能提升,你還是把錢花在其他地方吧!

    內(nèi)存容量

    內(nèi)存大小不會影響深度學(xué)習(xí)性能,但是它可能會影響你執(zhí)行GPU代碼的效率。內(nèi)存容量大一點,CPU就可以不通過磁盤,直接和GPU交換數(shù)據(jù)。

    所以用戶應(yīng)該配備與GPU顯存匹配的內(nèi)存容量。如果有一個24GB顯存的Titan RTX,應(yīng)該至少有24GB的內(nèi)存。但是,如果有更多的GPU,則不一定需要更多內(nèi)存。

    Tim認為:內(nèi)存關(guān)系到你能不能集中資源,解決更困難的編程問題。如果有更多的內(nèi)存,你就可以將注意力集中在更緊迫的問題上,而不用花大量時間解決內(nèi)存瓶頸。

    他還在參加Kaggle比賽的過程中發(fā)現(xiàn),額外的內(nèi)存對特征工程非常有用。

    CPU

    過分關(guān)注CPU的性能和PCIe通道數(shù)量,是常見的認知誤區(qū)。用戶更需要關(guān)注的是CPU和主板組合支持同時運行的GPU數(shù)量。

    CPU和PCIe

    人們對PCIe通道的執(zhí)念近乎瘋狂!而實際上,它對深度學(xué)習(xí)性能幾乎沒有影響。

    如果只有一個GPU,PCIe通道的作用只是快速地將數(shù)據(jù)從內(nèi)存?zhèn)鬏數(shù)斤@存。

    ImageNet里的32張圖像(32x225x225x3)在16通道上傳輸需要1.1毫秒,在8通道上需要2.3毫秒,在4通道上需要4.5毫秒。

    這些只是是理論數(shù)字,實際上PCIe的速度只有理論的一半。PCIe通道通常具有納秒級別的延遲,因此可以忽略延遲。

    Tim測試了用32張ImageNet圖像的mini-batch,訓(xùn)練ResNet-152模型所需要的傳輸時間:

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

    因此,在總用時上,從4到16個PCIe通道,性能提升約3.2%。但是,如果PyTorch的數(shù)據(jù)加載器有固定內(nèi)存,則性能提升為0%。因此,如果使用單個GPU,請不要在PCIe通道上浪費金錢。

    在選擇CPU PCIe通道和主板PCIe通道時,要保證你選擇的組合能支持你想要的GPU數(shù)量。如果買了支持2個GPU的主板,而且希望用上2個GPU,就要買支持2個GPU的CPU,但不一定要查看PCIe通道數(shù)量。

    PCIe通道和多GPU并行計算

    如果在多個GPU上訓(xùn)練網(wǎng)絡(luò),PCIe通道是否重要呢?Tim曾在ICLR 2016上發(fā)表了一篇論文指出(https://arxiv.org/abs/1511.04561):如果你有96個GPU,那么PCIe通道非常重要。

    但是,如果GPU數(shù)量少于4個,則根本不必關(guān)心PCIe通道。幾乎很少有人同時運行超過4個GPU,所以不要在PCIe通道上花冤枉錢。這不重要!

    CPU核心數(shù)

    為了選擇CPU,首先需要了解CPU與深度學(xué)習(xí)的關(guān)系。

    CPU為深度學(xué)習(xí)中起到什么作用?當(dāng)在GPU上運行深度網(wǎng)絡(luò)時,CPU幾乎不會進行任何計算。CPU的主要作用有:(1)啟動GPU函數(shù)調(diào)用(2)執(zhí)行CPU函數(shù)。

    到目前為止,CPU最有用的應(yīng)用是數(shù)據(jù)預(yù)處理。有兩種不同的通用數(shù)據(jù)處理策略,具有不同的CPU需求。

    第一種策略是在訓(xùn)練時進行預(yù)處理,第二種是在訓(xùn)練之前進行預(yù)處理。

    對于第一種策略,高性能的多核CPU能顯著提高效率。建議每個GPU至少有4個線程,即為每個GPU分配兩個CPU核心。Tim預(yù)計,每為GPU增加一個核心 ,應(yīng)該獲得大約0-5%的額外性能提升。

    對于第二種策略,不需要非常好的CPU。建議每個GPU至少有2個線程,即為每個GPU分配一個CPU核心。用這種策略,更多內(nèi)核也不會讓性能顯著提升。

    CPU時鐘頻率

    4GHz的CPU性能是否比3.5GHz的強?對于相同架構(gòu)處理器的比較,通常是正確的。但在不同架構(gòu)處理器之間,不能簡單比較頻率。CPU時鐘頻率并不總是衡量性能的最佳方法。

    在深度學(xué)習(xí)的情況下,CPU參與很少的計算:比如增加一些變量,評估一些布爾表達式,在GPU或程序內(nèi)進行一些函數(shù)調(diào)用。所有這些都取決于CPU核心時鐘率。

    雖然這種推理似乎很明智,但是在運行深度學(xué)習(xí)程序時,CPU仍有100%的使用率,那么這里的問題是什么?Tim做了一些CPU的降頻實驗來找出答案。

    CPU降頻對性能的影響:

    請注意,這些實驗是在一些“上古”CPU(2012年推出的第三代酷睿處理器)上進行的。但是對于近年推出的CPU應(yīng)該仍然適用。

    硬盤/固態(tài)硬盤(SSD)

    通常,硬盤不會限制深度學(xué)習(xí)任務(wù)的運行,但如果小看了硬盤的作用,可能會讓你追、悔、莫、及。

    想象一下,如果你從硬盤中讀取的數(shù)據(jù)的速度只有100MB/s,那么加載一個32張ImageNet圖片構(gòu)成的mini-batch,將耗時185毫秒。

    相反,如果在使用數(shù)據(jù)前異步獲取數(shù)據(jù),將在185毫秒內(nèi)加載這些mini-batch的數(shù)據(jù),而ImageNet上大多數(shù)神經(jīng)網(wǎng)絡(luò)的計算時間約為200毫秒。所以,在計算狀態(tài)時加載下一個mini-batch,性能將不會有任何損失。

    Tim小哥推薦的是固態(tài)硬盤(SSD),他認為SSD在手,舒適度和效率皆有。和普通硬盤相比,SSD程序啟動和響應(yīng)速度更快,大文件的預(yù)處理更是要快得多。

    頂配的體驗就是NVMe SSD了,比一般SSD更流暢。

    電源裝置(PSU)

    一個程序員對電源最基礎(chǔ)的期望,首先得是能滿足各種GPU所需能量吧。隨著GPU朝著更低能耗發(fā)展,一個質(zhì)量優(yōu)秀的PSU能陪你走很久。

    應(yīng)該怎么選?Tim小哥有一套計算方法:將電腦CPU和GPU的功率相加,再額外加上10%的功率算作其他組件的耗能,就得到了功率的峰值。

    舉個例子,如果你有4個GPU,每個功率為250瓦,還有一個功率為150瓦的CPU,則需電源提供4×250+150+100=1250瓦的電量。

    Tim通常會在此基礎(chǔ)上再額外添加10%確保萬無一失,那就總共需要1375瓦。所以這種情況下,電源性能需達1400瓦。

    這樣手把手教學(xué),應(yīng)該不難理解了。還有一點得注意,即使一個PSU達到了所需瓦數(shù),也可能沒有足夠的PCIe 8-pin或6-pin的接頭,所以買的時候還要確保電源上有足夠多的接頭接GPU。

    另外,買一個能效等級高的電源,特別是當(dāng)你需要連很多GPU并且可能運行很長時間的時候,原因你懂的。

    再舉個例子吧,如果以滿功率(1000-1500瓦)運行4 GPU系統(tǒng)、花兩周時間訓(xùn)練一個卷積神經(jīng)網(wǎng)絡(luò),需要耗用300-500度電。按德國每度0.2歐元計算,電費最終耗費約折合人民幣455-766元。

    如果電源效率降到80%,電費將增加140-203元人民幣。

    需要的GPU數(shù)量越多,拉開的差距越明顯。PSU的挑選是不是比之前想象的復(fù)雜一點?

    CPU和GPU的冷卻

    對于產(chǎn)熱大戶CPU和GPU來說,散熱性不好會降低它們的性能。

    對CPU來說,則標(biāo)配的散熱器,或者AIO水冷散熱器都是不錯的選擇。

    但GPU該用哪種散熱方案,卻是個復(fù)雜的事。

    風(fēng)冷散熱

    如果只有單個GPU,風(fēng)冷是安全可靠的,但若你GPU多達3-4個,靠空氣冷卻可能就不能滿足需求了。

    目前的GPU會在運行算法時將速度提升到最大,所以功耗也達到最大值,一旦溫度超過80℃,很有可能降低速度,無法實現(xiàn)最佳性能。

    對于深度學(xué)習(xí)任務(wù)來說這種現(xiàn)象更常見了,一般的散熱風(fēng)扇遠達不到所需效果,運行幾秒鐘就達到溫度閾值了。如果是用多個GPU,性能可能會降低10%~25%。

    怎么辦?目前,英偉達GPU很多是針對游戲設(shè)計的,所以對于Windows系統(tǒng)進行了專門的優(yōu)化,也可以輕松設(shè)置風(fēng)扇方案。

    但在Linux系統(tǒng)中這招就不能用了,麻煩的是,很多深度學(xué)習(xí)庫也都是針對Linux編寫的。

    這是一個問題,但也不是無解。

    在Linux系統(tǒng)中,你可以進行Xorg服務(wù)器的配置,選擇“coolbits”選項,這對于單個GPU還是很奏效。

    若你有多個GPU, 就必須模擬一個監(jiān)視器,Tim小哥說自己嘗試了很長時間,但還是沒有什么改進。

    如果你想在空氣冷卻的環(huán)境中運行3-4個小時,則最應(yīng)該注意風(fēng)扇的設(shè)計。

    目前市場上的散熱風(fēng)扇原理大致有兩種:鼓風(fēng)式的風(fēng)扇將熱空氣從機箱背面推出,讓涼空氣進來;非鼓風(fēng)式的風(fēng)扇是在GPU中吸入空氣達到冷卻效果。

    所以,如果你有多個GPU彼此相鄰,那么周圍就沒有冷空氣可用了,所以這種情況,一定不要用非鼓風(fēng)式的散熱風(fēng)扇了

    那用什么?接著往下看——

    水冷散熱

    水冷散熱雖然比風(fēng)冷法成本略高,但很適用于多個GPU相鄰的情況,它能hold住四個最強勁的GPU保持周身涼爽,是風(fēng)冷無法企及的效果。

    另外,水冷散熱可以更安靜地進行,如果你在公共區(qū)域運行多個GPU,水冷的優(yōu)勢更為凸顯了。

    至于大家最關(guān)心的成本問題,水冷單個GPU大概需要100美元(約690元人民幣)再加一些額外的前期成本(大約350元人民幣)。

    除了財力準備,還需要你投入一些精力,比如額外花時間組裝計算機等。這類事情網(wǎng)上教程已經(jīng)很多了,只需要幾個小時搞定,后期的維護也不復(fù)雜。

    結(jié)論

    對于單個GPU,風(fēng)冷便宜也夠用;多個GPU情況下,鼓風(fēng)式的空氣冷卻比較便宜,可能會帶來10%~15%的性能損失。如果想追求散熱極致,水冷散熱安靜且效果最好。

    所以,風(fēng)冷or水冷都合理,看你自己的實際情況和預(yù)算了。但小哥最后建議,通常情況下,還是考慮下低成本的風(fēng)冷吧。

    主板

    主板應(yīng)該有足夠的PCIe插槽來支持所需的GPU數(shù)量。但需要注意的是,大多數(shù)顯卡寬度需要占用兩個PCIe插槽。

    如果打算使用多個GPU,就要購買PCIe插槽之間有足夠空間的主板,確保顯卡之間不會相互遮擋。

    機箱

    選機箱的時候,必須保證機箱能裝下主板頂部的全長GPU,雖然大部分機箱是沒問題的,但是萬一你買小了,那就得看商家給不給你七天無理由了……

    所以,買之前最好確認一下機箱的尺寸規(guī)格,也可以搜一下機箱裝著GPU的圖,有別人的成品圖的話就能買得放心一些。

    另外,如果你想用定制水冷的話,保證你的機箱能裝得下散熱器,尤其是給GPU用定制水冷的時候,每個GPU的散熱器都需要占空間。

    顯示器

    怎么配顯示器還用教?

    必須得教。

    Tim放出了買家秀:

    是的,作為一個成熟的技術(shù)人員,用多臺顯示器是基本配置了。

    想象一下把買家秀上這三臺顯示器上的內(nèi)容堆到同一塊屏幕里,來回切換窗口,這得多累人。

    太長不看版

    GPU

    RTX 2070、RTX 2080 Ti、GTX 1070、GTX 1080、GTX 1080,這些都不錯。

    CPU

    1.給每個GPU配1-2個CPU核心,具體要看你預(yù)處理數(shù)據(jù)的方式;

    2.頻率要大于2GHz,CPU要能支持你的GPU數(shù)量;

    3.PCIe通道不重要。

    內(nèi)存

    1.時鐘頻率無關(guān)緊要,內(nèi)存買最便宜的就行了;

    2.內(nèi)存 ≥ 顯存最大的那塊GPU的RAM;

    3.內(nèi)存不用太大,用多少買多少;

    4.如果你經(jīng)常用大型數(shù)據(jù)集,買更多內(nèi)存會很有用。

    硬盤/SSD

    1.給你的數(shù)據(jù)集準備足夠大的硬盤(≥3TB);

    2.有SSD會用的舒坦一些,還能預(yù)處理小型數(shù)據(jù)集。

    PSU

    1.需要的功率最大值≈(CPU功率+GPU功率)×110%;

    2.買一個高能效等級的電源,特別是當(dāng)你需要連很多GPU并且可能運行很長時間的時,這樣可以節(jié)省很多電費;

    3.買之前請確保電源上有足夠多的接頭(PCIe 8-pin或6-pin)接GPU。

    散熱

    CPU:

    標(biāo)準配置的CPU散熱器或者AIO水冷散熱器;

    GPU:

    1.單個GPU,風(fēng)冷散熱即可;

    2.若用多個GPU,選擇鼓風(fēng)式風(fēng)冷散熱或水冷散熱。

    主板

    準備盡可能多的鏈接GPU的PCle插槽,一個GPU需要兩個插槽,每個系統(tǒng)最多4個GPU,不過你也要考慮GPU的厚度。

    顯示器

    為了提高效率,多買幾塊屏幕吧。

    發(fā)了三篇頂會的博士在讀小哥哥

    這篇指南的作者Tim Dettmers去年碩士畢業(yè),目前在華盛頓大學(xué)讀博,主要研究知識表達、問答系統(tǒng)和常識推理,曾在UCL機器學(xué)習(xí)組和微軟實習(xí)。

    按照去年畢業(yè)開始讀博的話,Tim的博士才讀了一年半,現(xiàn)在就已經(jīng)是三篇頂會論文的作者了,其中還有一篇AAAI是一作,一篇ICLR是唯一作者。

    另外,他還是一個刷Kaggle愛好者,曾經(jīng)在2013年排到全球第63名(前0.22%)。

    One More Thing

    其實說了這么多,你也不想裝機對不對?

    Tim已然料到,所以,在裝機指南之外,他還主動奉獻了一些裝機鼓勵:

    雖然買硬件很貴,一不小心搞錯會肉疼,但是不要怕裝電腦這件事。

    其一,裝機本身很簡單,主板手冊里都把如何裝機寫的明明白白,比裝樂高難不了多少,還附帶了大量的指南和分步操作視頻,就算你是0經(jīng)驗小白也能學(xué)得會。

    其二,裝機這件事,只要有第一次,后面就不難了,因為所有的計算機都是那幾個硬件構(gòu)成的。所以,只要裝一次,就可以get一門終身技能,投資回報率非常高。

    所以,加油準備一臺你自己的設(shè)備吧~

    傳送門

    原文:

    A Full Hardware Guide to Deep Learning

    http://timdettmers.com/2018/12/16/deep-learning-hardware-guide/

    作者推薦,數(shù)碼博主Linus Tech Tips解答疑問:高頻率內(nèi)存對性能提升有用嗎?(B站官方中文版):

    https://www.bilibili.com/video/av14528439

    誠摯招聘

    量子位正在招募編輯/記者,工作地點在北京中關(guān)村。期待有才氣、有熱情的同學(xué)加入我們!相關(guān)細節(jié),請在量子位公眾號(QbitAI)對話界面,回復(fù)“招聘”兩個字。

    量子位 QbitAI · 頭條號簽約作者

    ?'?' ? 追蹤AI技術(shù)和產(chǎn)品新動態(tài)

    原標(biāo)題 | A Full Hardware Guide to Deep Learning

    作者 | Tim Dettmers

    譯者 | linlh、呀啦呼(Tufts University)、Ryan222(重慶郵電大學(xué))

    深度學(xué)習(xí)是非常消耗計算資源的,毫無疑問這就需要多核高速的CPU。但買一個更快的CPU有沒有必要?在構(gòu)建深度學(xué)習(xí)系統(tǒng)時,最糟糕的事情之一就是把錢浪費在不必要的硬件上。本文中我將一步一步教你如何使用低價的硬件構(gòu)建一個高性能的系統(tǒng)。

    這些年來,我總共搭建了7個不同的深度學(xué)習(xí)工作站,盡管經(jīng)過了仔細的研究和推理,我在選擇硬件時也犯了很多錯誤。在這篇文章中,我將分享我這些年的經(jīng)驗,幫助你避免同樣的錯誤。

    這篇博客的順序是按照我犯錯的嚴重程度編排的,所以我首先提到的是那些使人浪費最多錢的錯誤。

    GPU

    假設(shè)你將用GPU來進行深度學(xué)習(xí)或者你正在構(gòu)建或者升級用于深度學(xué)習(xí)的系統(tǒng),那么拋開GPU是不合理的。GPU是深度學(xué)習(xí)應(yīng)用的心臟——訓(xùn)練過程速度的提升是非常的大的,不容忽視。

    我在GPU推薦博客中對如何選擇GPU講的非常詳細,如何選擇GPU在深度學(xué)習(xí)系統(tǒng)中相當(dāng)關(guān)鍵。在選擇GPU時,你可能會犯這三個錯誤:(1)性價比不高,(2)內(nèi)存不夠大,(3)散熱差。

    性價比方面,我通常推薦 RTX 2070或者 RTX 2080 Ti。使用這些顯卡的時候,你應(yīng)該使用16位的模型,除此以外,eBay 的 GTX 1070, GTX 1080 和 GTX 1080 Ti 是非常好的選擇,選擇他們時,可以使用32位的模型,但不能是16位的模型。

    在選擇GPU時,要十分留意你的內(nèi)存需求。在消耗同樣內(nèi)存的情況下,相比GTX,能跑16位模型的RTX能夠訓(xùn)練2倍大小的模型。正是因為RTX有著內(nèi)存優(yōu)勢,選擇RTX、學(xué)習(xí)高效地使用16位模型,能夠帶給你更好的的使用體驗。通常,對內(nèi)存的要求大致如下:

    • 追求最高水平分數(shù)的研究:>=11 GB

    • 探尋有趣架構(gòu)的研究:>=8 GB

    • 其他的研究:8 GB

    • Kaggle:4 – 8 GB

    • 初學(xué)者:8 GB (但是要注意檢查下應(yīng)用領(lǐng)域的模型大小)

    • 企業(yè):8 GB 用于原型, >=11 GB 用于訓(xùn)練

    在你買了多塊RTX顯卡時,需要留意散熱問題。如果你想將 GPU 固定在彼此相鄰的 PCIe 插槽中,應(yīng)該確保使用帶有鼓風(fēng)機式風(fēng)扇的 GPU。否則,您可能會遇到溫度問題,并且您的 GPU 速度會變慢(約30%)并且損耗得更快。

    找茬時間到!

    你能否識別出因性能不佳而出現(xiàn)故障的硬件部分?是其中一個GPU?或者也許這是CPU的錯?

    RAM

    購買內(nèi)存最大的錯誤就是買了主頻太高的內(nèi)存。第二個錯誤是沒有購買足夠大的內(nèi)存,導(dǎo)致在原型構(gòu)建上出問題。

    需要的主頻

    主頻是內(nèi)存公司引誘你購買“更快”的內(nèi)存的一種營銷手段,實際上幾乎沒有產(chǎn)生任何性能的提升。這個關(guān)于RAM的視頻很詳細地解釋了內(nèi)存在Linux上的技術(shù)竅門:內(nèi)存速度真的重要嗎?

    此外,重要的是要知道內(nèi)存速度與快速CPU RAM-> GPU RAM傳輸幾乎無關(guān)。這是因為(1)如果你使用固定內(nèi)存(pinned memory),那么你的mini-batch會直接傳輸?shù)紾PU中而不需要CPU的干預(yù),(2)如果你不使用固定內(nèi)存的話,快的和慢的內(nèi)存獲得的性能差別只有0-3%——把你的錢花到別處去!

    內(nèi)存大小

    內(nèi)存大小不會影響到深度學(xué)習(xí)的性能。但是,它可能會阻礙你輕松執(zhí)行GPU代碼(無需交換到磁盤)。你應(yīng)該有足夠的內(nèi)存來愉快地配合GPU工作。這意味你至少應(yīng)該有匹配GPU的內(nèi)存大小。比如說,如果你有一張24GB顯存的Titan RTX,那你至少應(yīng)該有24GB的內(nèi)存。但是,如果你有多塊GPU的話,你不需要更多的內(nèi)存。

    “在內(nèi)存上匹配最大的GPU顯存”策略在于,如果你在處理大數(shù)據(jù)集時,你可能夠還是會內(nèi)存不足。最好的方式是和你的GPU匹配,如果你覺得內(nèi)存不夠,再買更大的內(nèi)存。

    另外一個不同的策略受心理學(xué)的影響:心理學(xué)告訴我們,專注是一種隨著時間推移而耗盡的資源。內(nèi)存是為數(shù)不多的硬件之一,可以讓您浪費專注的精力,從而聚焦在解決更困難的編程問題。如果你有更多的內(nèi)存,你可以將注意力集中在更緊迫的事情上,而不是困擾在內(nèi)存瓶頸上浪費了大量時間。有了大量內(nèi)存你就可以避開這些瓶頸,為更為緊急的問題節(jié)約時間,提升效率。特別在Kaggle比賽中,我發(fā)現(xiàn)有著額外的內(nèi)存對于特征工程是非常有幫助的。如果資金足夠,并且好做大量的預(yù)處理工作,那么增加額外的內(nèi)存是一個非常好的選擇。按照這個策略,現(xiàn)在就要考慮購買更多、實惠的內(nèi)存,而不是后面再考慮。

    CPU

    人們常犯的最大錯誤是花太多的時間糾結(jié)CPU的PCIe通道數(shù)。其實,你并不需要太在意CPU的PCIe通道數(shù)。取而代之的是,應(yīng)該注重你的CPU和主板的組合是否能夠支撐起想要運行的GPU數(shù)量。第二個最常見錯誤是購買功能過于強大的CPU。

    CPU和PCI-Express(新一代總線接口)

    很多人癡迷于PCIe的通道數(shù)。然而,事情的真相是PCIe(的通道數(shù))幾乎不會影響深度學(xué)習(xí)的表現(xiàn)。如果你只有一個單一的GPU,PCIe通道唯一的作用是能夠快速地將數(shù)據(jù)從你的CPU 內(nèi)存中轉(zhuǎn)換到GPU 內(nèi)存中。但是,一個具有32張圖片的ImageNet數(shù)據(jù)集批次(數(shù)據(jù)集的shape為32*225*225*3)和32位模型,在16通道PCIe上訓(xùn)練需要1.1毫秒,在8通道上需要2.3毫秒,在4通道上需要4.5毫秒。這些僅僅是理論上的數(shù)值,而在實際中你常常會發(fā)現(xiàn)PCIe會比理論速度慢上兩倍——但是它仍然像閃電一樣快。PCIe 通道的延時通常在納秒范圍內(nèi),因此其延時問題可以被忽視。

    綜上考慮后,我們提出了使用152層殘差網(wǎng)絡(luò)訓(xùn)練一個具有32張圖片的小批量ImageNet數(shù)據(jù)集所需的時間,如下所示:

    • 向前傳播和向后傳播用時:216毫秒(ms)

    • 使用16通道PCIe將數(shù)據(jù)從CPU內(nèi)存轉(zhuǎn)換到GPU內(nèi)存用時:大概2ms(理論上1.1ms)

    • 使用8通道PCIe將數(shù)據(jù)從CPU內(nèi)存轉(zhuǎn)換到GPU內(nèi)存用時:大概5ms(理論上2.3ms)

    • 使用4通道PCIe將數(shù)據(jù)從CPU內(nèi)存轉(zhuǎn)換到GPU內(nèi)存用時:大概9ms(理論上4.5ms)

    因此將4通道的PCIe換成16通道的PCIe將給你的訓(xùn)練表現(xiàn)帶來大概3.2%的提升。然而,如果你的pyTorch數(shù)據(jù)下載器含有CUDA頁鎖定內(nèi)存,那么(改變PCIe的通道)其實給你的訓(xùn)練表現(xiàn)帶來的提升是0%。所以如果你僅使用1個GPU,那么不要把你的錢浪費在PCIe上!

    當(dāng)你在選擇CPU的PCIe通道和主板PCIe通道時,(一定要)明確所選的CPU和主板組合能夠支持期望的GPU數(shù)量。如果你買了一個支持2個GPU的主板,并且你最終確實需要用到2個GPU,那么就需要確認你購買的CPU能夠支持2個GPU,而沒有必要糾結(jié)PCIe的通道數(shù)。

    PCIe通道數(shù)和多GPU并行

    如果你在多GPU上并行的訓(xùn)練數(shù)據(jù)時,PCIe的通道數(shù)是重要的嗎?針對這個問題我在2016年的ICLR會議中發(fā)表了一篇論文,而且我可以告訴你如果你有96個GPU那么PCIe的通道數(shù)確實非常重要。然而如果你只有4個或者更少的GPU,那么PCIe通道數(shù)的影響不大。如果在兩到三個GPU上訓(xùn)練,我完全不會關(guān)心PCIe的通道數(shù)。當(dāng)我使用四個GPU訓(xùn)練時,我才會確保每個GPU都能夠得到8條PCIe通道的支持(總共32條PCIe通道)。由于幾乎沒有人會在超過4個GPU上面運行一個系統(tǒng),那么記住一個經(jīng)驗準則:不要為了在每個GPU中得到更多的PCIe花額外的錢——這沒有必要!

    所需的 CPU 核數(shù)

    為了能夠在CPU上作出明確的選擇,我們首先需要了解CPU以及它和深度學(xué)習(xí)間的關(guān)系。CPU為深度學(xué)習(xí)做了什么?當(dāng)你在一個GPU上運行你的深度網(wǎng)絡(luò)時,CPU僅進行很簡單的運算。它主要主要(1)啟動GPU函數(shù)調(diào)用,(2)執(zhí)行CPU函數(shù)。

    目前,CPU最大的應(yīng)用是數(shù)據(jù)預(yù)處理。常用的兩種數(shù)據(jù)預(yù)處理策略有著不同的CPU需求。

    一種策略是在訓(xùn)練過程中進行預(yù)處理:

    循環(huán)以下(三個)步驟:

    1.導(dǎo)入小批量數(shù)據(jù)

    2.預(yù)處理小批量數(shù)據(jù)

    3. 訓(xùn)練小批量數(shù)據(jù)

    第二種預(yù)處理策略是在訓(xùn)練之前進行預(yù)處理操作:

    1. 導(dǎo)入數(shù)據(jù)

    2. 循環(huán)以下(兩個)步驟:

    導(dǎo)入小批量數(shù)據(jù)

    訓(xùn)練小批量數(shù)據(jù)

    對于第一種策略,一個多核CPU可以明顯地加強訓(xùn)練表現(xiàn)。對于第二種策略,你不需要一個很好的CPU。對第一種訓(xùn)練策略,我建議每個GPU至少有4個線程——通常每個GPU有兩個核心。我沒有對此進行嚴格的測試,但是每增加一個核心/GPU應(yīng)該有0-5%的額外性能提升。

    對于第二種策略,我建議每個GPU最少有2個線程——通常每個GPU有一個核心。如果你使用第二種策略,那么更多的內(nèi)核并不會給你帶來明顯的性能提升。

    所需的 CPU 主頻(時鐘頻率)

    當(dāng)人們考慮(購買)快速的CPU時,他們通常首先查看時鐘頻率。4GHz的CPU比3.5GHz的好,是嗎?這對于比較具有相同結(jié)構(gòu)的處理器來說通常是正確的,例如“Ivy Bridge微架構(gòu)”,但是對于不同架構(gòu)的處理器來說這并不好比較。此外,CPU主頻并不總是衡量性能的最佳方法。

    在深度學(xué)習(xí)中CPU僅僅做一些微不足道的計算:增加一些參數(shù),評估布爾表達式,在GPU或程序內(nèi)進行函數(shù)調(diào)用——這些都取決于CPU核心的時鐘頻率。

    雖然這些理由看似合理,但是當(dāng)我運行深度學(xué)習(xí)程序時卻發(fā)現(xiàn)CPU使用率為100%,那么這是為什么呢?為了找尋答案,我做了一些CPU降頻實驗。

    在MNIST和ImageNet數(shù)據(jù)集上的GPU降頻實驗:不同CPU時鐘頻率的性能以訓(xùn)練200個epoch的MNIST數(shù)據(jù)集和50個epoch的ImageNet數(shù)據(jù)集所花費的時間來衡量, 其中最大的時鐘頻率作為每個CPU的基線。作為比較:從GTX 680升級到GTX Titan的性能提升約為 15%; 從GTX Titan到GTX 980又提升20%的性能; GPU超頻可為任何GPU帶來5%的性能提升。

    值得注意的是,這些實驗是在落后過時的硬件設(shè)備上進行的,然而,對于現(xiàn)代的CPU/GPU它的結(jié)果仍然不變。

    硬盤/SSD

    一般來說硬盤不是深度學(xué)習(xí)的瓶頸。但也別整這種蠢事兒:當(dāng)你從一個100MB/s的硬盤讀取mini-batch為32的ImageNet時候,需要185毫秒。你可以在數(shù)據(jù)使用前異步加載數(shù)據(jù)(比如說torch vision loader),因為加載數(shù)據(jù)需要185毫秒而ImageNet上運行的大多數(shù)DNN需要200毫秒來計算。我們完全可以提前加載下一個mini-batch來避免性能損失。

    從生產(chǎn)效率來說,我推薦SSD,因為程序啟動反應(yīng)更快,大文件的預(yù)處理速度也更快。另外,NVMe SSD會帶給你更好的使用體驗。

    電源(PSU)

    你得確保你的電源能夠滿足所有預(yù)留GPU的功率需求。一般來說,GPU能耗會越來越低,所以不用更換電源,買個好的電源是個值當(dāng)?shù)馁I賣。

    在計算需要的功率時,你最好加上所有CPU和GPU功耗的10%作為功率峰值的緩沖。舉個例子,你有四個250瓦的GPU和一個150瓦的CPU,那我們需要一個最少4×250 + 150 + 100=1250瓦的電源。一般我會加上至少10%來確保一切正常,那么在這種情況下一共需要1375瓦。最后我會買一個1400瓦的電源。

    你得注意有些電源即使達到了要求的功率,但是沒有足夠的8針或者6針PCIe插槽接口。你得多多注意這點。

    另外請盡量購買高功率功效的電源——特別是你運行多個GPU且長時間運行。

    滿負載運行一個4GPU系統(tǒng)(1000-1500瓦)來訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)兩周會消耗300-500千瓦時。德國每千瓦時的價格是20分,所以會用60-100歐(66-111美金)。剛剛我們假設(shè)的電源效率是100%,如果使用的是效率是80%的電源,還要額外消耗18-26歐。使用單顆GPU的話,會少很多。但是不影響重點:值得在高效電源上多花點兒錢。

    全天候的使用一些GPU會顯著的增加你的碳排放足跡,甚至這比你的交通(譬如飛機)和其他因素還要多。如果你想要負責(zé)的話,可以用紐約大學(xué)機器學(xué)習(xí)語言組(ML2)- 很容易辦到,也很便宜,可以作為深度學(xué)習(xí)研究院的標(biāo)準。

    CPU 和 GPU 的冷卻系統(tǒng)

    冷卻非常重要,是整個系統(tǒng)中一個重要的瓶頸。相比較于糟糕的硬件選擇,它更容易降低性能。對于CPU,你可以使用標(biāo)準散熱器或者一體化(AIO)水冷解決方案。但是對于GPU,你需要特別注意。

    風(fēng)冷 GPUs

    如果你有多顆GPU并且他們中間有足夠的空間(在3-4顆GPU的位置放置2顆GPU),風(fēng)冷是安全可靠的。當(dāng)你想去冷卻3-4顆GPU的時候,可能會犯一個巨大的錯誤。這時候你需要認證考慮在這個案例中的選擇。

    運行一個算法的時候,現(xiàn)代GPU會提高他們的速度以及功耗,直至最大值。一旦GPU達到溫度臨界值(通常為80°C),GPU就會降低運算速度防止達到溫度闕值。這樣可以在保持GPU過熱的同時實現(xiàn)最佳性能。

    對于深度學(xué)習(xí)程序而言,典型的風(fēng)扇速度預(yù)編程時間表設(shè)計得很糟糕。啟動一個深度學(xué)習(xí)程序后幾秒鐘就會達到溫度闕值,結(jié)果就是性能會下降0-10%。多個GPU之間相互加熱,性能會下降的更明顯(10%-25%)。

    因為 NVIDIA GPU 在大部分情況下是作為游戲 GPU,它們對windows進行了優(yōu)化。在Windows中點一點鼠標(biāo)就能改變風(fēng)扇計劃的方式在Linux中行不通。可是大多數(shù)深度學(xué)習(xí)庫都是針對Linux編寫。

    如果你有一臺Xorg服務(wù)器(Ubuntu),唯一的選項是用“coolbits”來設(shè)置溫度。對于單個GPU來說,這種方法非常奏效。當(dāng)有多個GPU的時候,其中一些沒有監(jiān)視器,模擬出監(jiān)視器來監(jiān)測他們是很艱難晦澀的工作。我曾經(jīng)花過很長的時間嘗試使用實時啟動CD來恢復(fù)我的圖形設(shè)置,但是從沒有在無監(jiān)視器GPU上成功運行過。

    在風(fēng)冷系統(tǒng)下運行3-4顆GPU需要尤其重視風(fēng)扇設(shè)計。“鼓風(fēng)機式”風(fēng)扇設(shè)計讓冷風(fēng)進入GPU,然后從機箱背部吹出熱風(fēng)。“非鼓風(fēng)機式”風(fēng)扇吸入GPU附近的空氣來冷卻它。但是如果是多顆GPU,那么它們的周圍就沒有冷空氣,使用“非鼓風(fēng)機式”風(fēng)扇的GPU會越來越熱,最終通過降低性能來降溫。我們應(yīng)該不惜一切代價來必變在3-4顆GPU的環(huán)境中使用“非鼓風(fēng)機式”風(fēng)扇。

    多GPU使用的水冷系統(tǒng)

    另一種更棒更昂貴的方式是使用水冷系統(tǒng)。如果你只有一顆GPU或者兩顆GPU之間有足夠的空間(比如在3-4顆GPU的主板上有兩顆GPU),我不建議使用水冷系統(tǒng)。在4GPU配置中,水冷保證即使最強勁的GPU也能保持低溫,而這在風(fēng)冷中是不可能實現(xiàn)的。水冷的另一個優(yōu)點是運行很安靜,這對于在公共區(qū)域運行多GPU來說是一個巨大的優(yōu)勢。每顆GPU需要100美金的成本安裝水冷,另外需要一些額外的前期成本(大約50美金)。組裝有水冷的計算機也會需要一些額外工作,但是不用擔(dān)心,會有詳細的指南來指導(dǎo)你安裝,僅僅需要你多付出幾個小時。維護工作也沒有那么的復(fù)雜費力。

    一個冷卻的案例

    大型的塔式服務(wù)器在GPU位置有額外的風(fēng)扇,所以我為深度學(xué)習(xí)集群購買了他們。然后我發(fā)現(xiàn)太不劃算了,只下降了2-5°C卻要付出大量的投資。最重要的部分是直接在GPU上安裝冷卻系統(tǒng),完全沒必要為冷卻系統(tǒng)買貴不啦嘰的殼子。

    冷卻的總結(jié)

    對于一個GPU來說,風(fēng)冷足夠了。如果你有多個GPU, 你可以在接受性能損失(10% - 15%)的情況下使用“鼓風(fēng)式”風(fēng)冷系統(tǒng),或者花更多的錢購置水冷系統(tǒng),雖然難以設(shè)置但是它可以保證沒有性能損失。對于不同的場景,我們可以因地制宜選擇風(fēng)冷或者水冷。我建議使用風(fēng)冷就好--使用“鼓風(fēng)式”GPU。如果你想使用水冷, 請使用一體化水冷(AIO)方案。

    主板

    你的主板上應(yīng)該有足夠的PCIe端口來支持你需要運行的GPU數(shù)量(即使你有更多的PCIe 插槽,但是一般限制最多4顆GPU);另外,銘記大部分GPU都會占據(jù)兩個PCIe卡槽的寬度,所以如果想使用多顆GPU,請確保購買的主板有足夠的預(yù)留空間。主板不僅需要有足夠的PCIe插槽位置,而且需要支持你購買的GPU。在新蛋上你可以查看到對應(yīng)主板的信息和PCIe情況。

    電腦機箱

    麻煩買個能放下全尺寸長度GPU的機箱。大部分的機箱都沒問題,不過還是查看尺寸規(guī)格來確保沒有買了個小號的;或者你可以嘗試在google image里面搜索這款兒,然后看有沒有有GPU在里面的圖片。

    另外如果使用定制化水冷系統(tǒng),得確保你的機箱有足夠空間來放置散熱器。因為每個GPU的散熱器都需要單獨的空間。

    顯示器

    剛開始吧我覺得寫一些關(guān)于顯示器的心得很蠢,但是它們各不相同,所以我還是整點話吧。

    花在我的3臺27寸顯示器上的錢是我最值當(dāng)?shù)耐顿Y了。當(dāng)使用多顯示器的時候,生產(chǎn)力提升很多。只有一臺顯示器的話,我會感覺完全干不了活。在這事兒上別妥協(xié),如果干活不開森,深度學(xué)習(xí)系統(tǒng)再快有啥意思咧?

    我一般這么擱我的顯示器:左邊看論文,搜搜google,收收郵件,瞅瞅stackoverflow;中間就用來寫代碼;右邊放一些雜七八啦的玩意兒,比如輸出界面辣,文件夾辣,系統(tǒng)、GPU監(jiān)視器辣,待辦事項辣。

    一些后話

    因為硬件很貴,很多人怕犯錯,一提到DIY計算機就怵得慌。其實特簡單這事兒,因為不匹配的零件也組裝不到一起對不對?主板手冊啊,指南啊以及網(wǎng)絡(luò)視頻啊也會教小白的你如何組裝這些玩意兒。

    自己組裝計算機的好處是,你整了一次就啥都全明白了,這輩子也忘不掉。計算機么,都大差不差,別慫!

    結(jié)論 / 長話短說

    GPU:來自eBay的RTX 2070 、RTX 2080 Ti、 GTX 1070 、GTX 1080, 和 GTX 1080 Ti 是非常好的選擇。

    CPU:每個GPU分配1-2個兩個核心,這取決于你是怎么處理數(shù)據(jù)的。頻率 > 2GHz。CPU應(yīng)該要能夠支持你要運行的GPU數(shù)量。PCIE通道并不重要。

    RAM:

    - 時鐘頻率不重要 - 買最便宜的內(nèi)存

    - 最少要購買和你最大的GPU顯存大小的內(nèi)存

    - 只有在需要的時候購買更多的內(nèi)存

    - 如果你經(jīng)常處理大數(shù)據(jù)集的話更多的內(nèi)存是非常有幫助的

    硬盤/SSD:

    - 存放數(shù)據(jù)的硬盤(>=3GB)

    - 使用SSD可以快速處理小數(shù)據(jù)集

    電源

    - 把GPU和CPU需要的功率瓦數(shù)加起來,然后乘以總數(shù)的110%得到需要的功率瓦數(shù)

    - 如果使用多個GPU,要選擇高效率的電源。

    - 確保電源有足夠的PCIE接口(6+8引腳)

    散熱

    - CPU:使用標(biāo)準的CPU散熱或者是一體式的水冷解決方案

    - GPU:風(fēng)扇散熱

    - 如果購買多個GPU的話使用“鼓風(fēng)式”的風(fēng)扇

    - 在Xorg配置中設(shè)置coolbits標(biāo)志以控制風(fēng)扇速度

    主板

    - 為(未來的)GPU預(yù)留盡可能多的PCIe插槽(一個GPU需要兩個插槽;每個系統(tǒng)最多4個GPU)

    顯示器

    - 一個額外的顯示器比一個額外的GPU更能提高你的效率

    本文編輯:Pita

    英語原文:https://timdettmers.com/2018/12/16/deep-learning-hardware-guide/

    想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻?

    點擊【深度學(xué)習(xí)的完整硬件指南】即可訪問!

    福利大放送——滿滿的干貨課程免費送!

    「好玩的Python:從數(shù)據(jù)挖掘到深度學(xué)習(xí)」該課程涵蓋了從Python入門到CV、NLP實踐等內(nèi)容,是非常不錯的深度學(xué)習(xí)入門課程,共計9節(jié)32課時,總長度約為13個小時。。

    課程頁面:https://ai.yanxishe.com/page/domesticCourse/37

    「計算機視覺基礎(chǔ)入門課程」本課程主要介紹深度學(xué)習(xí)在計算機視覺方向的算法與應(yīng)用,涵蓋了計算機視覺的歷史與整個課程規(guī)劃、CNN的模型原理與訓(xùn)練技巧、計算機視覺的應(yīng)用案例等,適合對計算機視覺感興趣的新人。

    課程頁面:https://ai.yanxishe.com/page/domesticCourse/46

    現(xiàn)AI研習(xí)社將兩門課程免費開放給社區(qū)認證用戶,只要您在認證時在備注框里填寫「Python」,待認證通過后,即可獲得該課程全部解鎖權(quán)限。心動不如行動噢~

    認證方式:https://ai.yanxishe.com/page/blogDetail/13999

    雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有