電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>單片機>最基本的深度學(xué)習(xí)系統(tǒng)的硬件指南

最基本的深度學(xué)習(xí)系統(tǒng)的硬件指南

2017-09-22 | rar | 1.10 MB | 次下載 | 1積分

資料介紹

  

  由于深度學(xué)習(xí)的計算相當(dāng)密集,所以有人覺得“必須要購買一個多核快速CPU”, 也有人認(rèn)為“購買快速CPU可能是種浪費”。

  那么,這兩種觀點哪個是對的? 其實,在建立深度學(xué)習(xí)系統(tǒng)時,最糟糕的事情之一就是把錢浪費在不必要的硬件上。 本文將告訴你如何用最省錢的方式,來搭建一個高性能深度學(xué)習(xí)系統(tǒng)。

  當(dāng)初,在我研究并行深度學(xué)習(xí)過程中,我構(gòu)建了一個GPU集群 ,所以我需要仔細(xì)選擇硬件。 盡管經(jīng)過了反復(fù)的研究和推理,但當(dāng)我挑選硬件時,我仍然會犯許多錯誤,并且當(dāng)應(yīng)用于實踐中時,那些錯誤就展現(xiàn)出來了。 所以,在這里,我想分享一下我所學(xué)到的知識,希望你不會像我一樣再陷入同樣的陷阱。

  ▍GPU

  本文假設(shè)您將使用GPU進(jìn)行深度學(xué)習(xí)。 如果您正在建立或升級您的系統(tǒng),那么忽視GPU是不明智的。 GPU才是深度學(xué)習(xí)應(yīng)用的核心,它能大大提升處理速度,所以絕對不能忽略。

  我在之前的文章中詳細(xì)介紹了GPU的選擇,并且GPU的選擇可能是您的深度學(xué)習(xí)系統(tǒng)中最關(guān)鍵的選擇。

  一般來說,如果您的資金預(yù)算有限,我推薦您購買GTX 680,或者GTX Titan X(如果你很有錢,可用它做卷積)或GTX 980(它性價比很高,但若做大型卷積神經(jīng)網(wǎng)絡(luò)就有些局限性了),它們在eBay上就能買得到。

  另外,低成本高性價比的內(nèi)存我推薦GTX Titan。 之前我支持過GTX 580,但是由于新更新的cuDNN庫顯著提升了卷積速度,故而所有不支持cuDNN的GPU都已經(jīng)過時了,其中 GTX 580就是這樣一款GPU。 如果您不使用卷積神經(jīng)網(wǎng)絡(luò),GTX 580仍然是一個很好的選擇。

  

  你能識別上面哪個硬件會導(dǎo)致糟糕的表現(xiàn)? 是這些GPU的其中一個? 還是CPU?

  ▍CPU 要選擇CPU,我們首先要了解CPU及它與深度學(xué)習(xí)的關(guān)系。 CPU對深度學(xué)習(xí)有什么作用? 當(dāng)您在GPU上運行深度網(wǎng)絡(luò)時,CPU幾乎沒有計算, 但是CPU仍然可以處理以下事情:

  在代碼中寫入和讀取變量

  執(zhí)行諸如函數(shù)調(diào)用的指令

  在GPU上啟動函數(shù)調(diào)用

  創(chuàng)建小批量數(shù)據(jù)

  啟動到GPU的數(shù)據(jù)傳輸

  所需CPU的數(shù)量

  當(dāng)我用三個不同的庫訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)時,我總是看到一個CPU線程是100%(有時另一個線程會在0到100%之間波動)。 而且這一切立即告訴你,大多數(shù)深入學(xué)習(xí)的庫,以及實際上大多數(shù)的軟件應(yīng)用程序,一般僅使用一個線程。

  這意味著多核CPU相當(dāng)無用。 如果您運行多個GPU,并使用MPI之類的并行化框架,那么您將一次運行多個程序,同時,也需要多個線程。

  每個GPU應(yīng)該是一個線程,但每個GPU運行兩個線程將會為大多數(shù)深入學(xué)習(xí)庫帶來更好的性能;這些庫在單核上運行,但是有時會異步調(diào)用函數(shù),就使用了第二個CPU線程。

  請記住,許多CPU可以在每個內(nèi)核上運行多個線程(這對于Intel 的CPU尤為如此),因此通常每個GPU對應(yīng)一個CPU核就足夠了。

  CPU和PCI-Express

  這是一個陷阱! 一些新的Haswell CPU不支持那些舊CPU所支持的全部40個PCIe通道。如果要使用多個GPU構(gòu)建系統(tǒng),請避免使用這些CPU。 另外,如果您有一個帶有3.0的主板,則還要確保您的處理器支持PCIe 3.0。

  CPU緩存大小

  正如我們將在后面看到的那樣,CPU高速緩存大小在“CPU-GPU-管線”方面是相當(dāng)無關(guān)緊要的,但是我還是要做一個簡短的分析,以便我們確保沿著這條計算機管道能考慮到每一個可能出現(xiàn)的瓶頸,進(jìn)而我們可以全面了解整體流程。

  通常人們購買CPU時會忽略緩存,但通常它是整體性能問題中非常重要的一部分。 CPU緩存的片上容量非常小,且位置非??拷麮PU,可用于高速計算和操作。 CPU通常具有緩存的分級,從小型高速緩存(L1,L2)到低速大型緩存(L3,L4)。

  作為程序員,您可以將其視為哈希表,其中每個數(shù)據(jù)都是鍵值對(key-value-pair),您可以在特定鍵上進(jìn)行快速查找:如果找到該鍵,則可以對高速緩存中的值執(zhí)行快速讀寫操作; 如果沒有找到(這被稱為緩存未命中),則CPU將需要等待RAM趕上,然后從那里讀取該值(這是非常緩慢的過程)。 重復(fù)的緩存未命中會導(dǎo)致性能顯著降低。 高效的CPU高速緩存方案和架構(gòu),通常對CPU的性能至關(guān)重要。

  CPU如何確定其緩存方案,是一個非常復(fù)雜的主題,但通??梢约俣ㄖ貜?fù)使用的變量、指令和RAM地址將保留在緩存中,而其他不太頻繁出現(xiàn)的則不會。

  在深度學(xué)習(xí)中,相同的內(nèi)存范圍會重復(fù)被小批量讀取,直到送到GPU,并且該內(nèi)存范圍會被新數(shù)據(jù)覆蓋。但是如果內(nèi)存數(shù)據(jù)可以存儲在緩存中,則取決于小批量大小。

  對于128位的小批量大小,我們對應(yīng)于MNIST和CIFAR分別有0.4MB和1.5 MB,這適合大多數(shù)CPU緩存;對于ImageNet,我們每個小批量有超過85 MB的數(shù)據(jù)( ),即使是最大的緩存(L3緩存不超過幾MB),也算是很大的了。

  由于數(shù)據(jù)集通常太大而無法適應(yīng)緩存,所以新的數(shù)據(jù)需要從RAM中每個讀取一小部分新的,并且需要能夠以任何方式持續(xù)訪問RAM。

  RAM內(nèi)存地址保留在緩存中(CPU可以在緩存中執(zhí)行快速查找,并指向RAM中數(shù)據(jù)的確切位置),但是這僅限于整個數(shù)據(jù)集都存儲于RAM時才會如此,否則內(nèi)存地址將改變,并且緩存也不會加速(稍后你會看到的,使用固定內(nèi)存時則不會出現(xiàn)這種情況,但這并不重要)。

  深度學(xué)習(xí)代碼的其他部分(如變量和函數(shù)調(diào)用),將從緩存中受益,但這些代碼通常數(shù)量較少,可輕松適應(yīng)幾乎任何CPU的小型快速L1緩存。

  從這個推理結(jié)果可以看出,CPU緩存大小不應(yīng)該很重要。下一節(jié)進(jìn)一步分析的結(jié)果,也與此結(jié)論相一致。

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1TC358743XBG評估板參考手冊
  2. 1.36 MB  |  330次下載  |  免費
  3. 2開關(guān)電源基礎(chǔ)知識
  4. 5.73 MB  |  6次下載  |  免費
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計
  8. 0.60 MB  |  3次下載  |  免費
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計與實現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費
  11. 651單片機窗簾控制器仿真程序
  12. 1.93 MB  |  2次下載  |  免費
  13. 751單片機大棚環(huán)境控制器仿真程序
  14. 1.10 MB  |  2次下載  |  免費
  15. 8基于51單片機的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費