資料介紹
由于深度學習的計算相當密集,所以有人覺得“必須要購買一個多核快速CPU”, 也有人認為“購買快速CPU可能是種浪費”。
那么,這兩種觀點哪個是對的? 其實,在建立深度學習系統時,最糟糕的事情之一就是把錢浪費在不必要的硬件上。 本文將告訴你如何用最省錢的方式,來搭建一個高性能深度學習系統。
當初,在我研究并行深度學習過程中,我構建了一個GPU集群 ,所以我需要仔細選擇硬件。 盡管經過了反復的研究和推理,但當我挑選硬件時,我仍然會犯許多錯誤,并且當應用于實踐中時,那些錯誤就展現出來了。 所以,在這里,我想分享一下我所學到的知識,希望你不會像我一樣再陷入同樣的陷阱。
▍GPU
本文假設您將使用GPU進行深度學習。 如果您正在建立或升級您的系統,那么忽視GPU是不明智的。 GPU才是深度學習應用的核心,它能大大提升處理速度,所以絕對不能忽略。
我在之前的文章中詳細介紹了GPU的選擇,并且GPU的選擇可能是您的深度學習系統中最關鍵的選擇。
一般來說,如果您的資金預算有限,我推薦您購買GTX 680,或者GTX Titan X(如果你很有錢,可用它做卷積)或GTX 980(它性價比很高,但若做大型卷積神經網絡就有些局限性了),它們在eBay上就能買得到。
另外,低成本高性價比的內存我推薦GTX Titan。 之前我支持過GTX 580,但是由于新更新的cuDNN庫顯著提升了卷積速度,故而所有不支持cuDNN的GPU都已經過時了,其中 GTX 580就是這樣一款GPU。 如果您不使用卷積神經網絡,GTX 580仍然是一個很好的選擇。
你能識別上面哪個硬件會導致糟糕的表現? 是這些GPU的其中一個? 還是CPU?
▍CPU 要選擇CPU,我們首先要了解CPU及它與深度學習的關系。 CPU對深度學習有什么作用? 當您在GPU上運行深度網絡時,CPU幾乎沒有計算, 但是CPU仍然可以處理以下事情:
在代碼中寫入和讀取變量
執行諸如函數調用的指令
在GPU上啟動函數調用
創建小批量數據
啟動到GPU的數據傳輸
所需CPU的數量
當我用三個不同的庫訓練深度神經網絡時,我總是看到一個CPU線程是100%(有時另一個線程會在0到100%之間波動)。 而且這一切立即告訴你,大多數深入學習的庫,以及實際上大多數的軟件應用程序,一般僅使用一個線程。
這意味著多核CPU相當無用。 如果您運行多個GPU,并使用MPI之類的并行化框架,那么您將一次運行多個程序,同時,也需要多個線程。
每個GPU應該是一個線程,但每個GPU運行兩個線程將會為大多數深入學習庫帶來更好的性能;這些庫在單核上運行,但是有時會異步調用函數,就使用了第二個CPU線程。
請記住,許多CPU可以在每個內核上運行多個線程(這對于Intel 的CPU尤為如此),因此通常每個GPU對應一個CPU核就足夠了。
CPU和PCI-Express
這是一個陷阱! 一些新的Haswell CPU不支持那些舊CPU所支持的全部40個PCIe通道。如果要使用多個GPU構建系統,請避免使用這些CPU。 另外,如果您有一個帶有3.0的主板,則還要確保您的處理器支持PCIe 3.0。
CPU緩存大小
正如我們將在后面看到的那樣,CPU高速緩存大小在“CPU-GPU-管線”方面是相當無關緊要的,但是我還是要做一個簡短的分析,以便我們確保沿著這條計算機管道能考慮到每一個可能出現的瓶頸,進而我們可以全面了解整體流程。
通常人們購買CPU時會忽略緩存,但通常它是整體性能問題中非常重要的一部分。 CPU緩存的片上容量非常小,且位置非常靠近CPU,可用于高速計算和操作。 CPU通常具有緩存的分級,從小型高速緩存(L1,L2)到低速大型緩存(L3,L4)。
作為程序員,您可以將其視為哈希表,其中每個數據都是鍵值對(key-value-pair),您可以在特定鍵上進行快速查找:如果找到該鍵,則可以對高速緩存中的值執行快速讀寫操作; 如果沒有找到(這被稱為緩存未命中),則CPU將需要等待RAM趕上,然后從那里讀取該值(這是非常緩慢的過程)。 重復的緩存未命中會導致性能顯著降低。 高效的CPU高速緩存方案和架構,通常對CPU的性能至關重要。
CPU如何確定其緩存方案,是一個非常復雜的主題,但通??梢约俣ㄖ貜褪褂玫淖兞?、指令和RAM地址將保留在緩存中,而其他不太頻繁出現的則不會。
在深度學習中,相同的內存范圍會重復被小批量讀取,直到送到GPU,并且該內存范圍會被新數據覆蓋。但是如果內存數據可以存儲在緩存中,則取決于小批量大小。
對于128位的小批量大小,我們對應于MNIST和CIFAR分別有0.4MB和1.5 MB,這適合大多數CPU緩存;對于ImageNet,我們每個小批量有超過85 MB的數據( ),即使是最大的緩存(L3緩存不超過幾MB),也算是很大的了。
由于數據集通常太大而無法適應緩存,所以新的數據需要從RAM中每個讀取一小部分新的,并且需要能夠以任何方式持續訪問RAM。
RAM內存地址保留在緩存中(CPU可以在緩存中執行快速查找,并指向RAM中數據的確切位置),但是這僅限于整個數據集都存儲于RAM時才會如此,否則內存地址將改變,并且緩存也不會加速(稍后你會看到的,使用固定內存時則不會出現這種情況,但這并不重要)。
深度學習代碼的其他部分(如變量和函數調用),將從緩存中受益,但這些代碼通常數量較少,可輕松適應幾乎任何CPU的小型快速L1緩存。
從這個推理結果可以看出,CPU緩存大小不應該很重要。下一節進一步分析的結果,也與此結論相一致。
- bAIwatch、深度學習和沖浪開源硬件
- 玩轉智能硬件(三)Jetson Nano深度學習環境搭建
- 深度學習嵌入式系統
- DCS系統硬件學習
- 基于深度學習的機器人示教系統設計與實現 77次下載
- 基于評分矩陣與評論文本的深度學習模型 58次下載
- 基于深度學習的行為識別算法及其應用 20次下載
- 基于深度學習的神經協同過濾推薦系統 5次下載
- 基于預訓練模型和長短期記憶網絡的深度學習模型 19次下載
- 3小時學習神經網絡與深度學習課件下載 0次下載
- 深度模型中的優化與學習課件下載 3次下載
- 深度學習入門:基于Python的理論與實現電子書 30次下載
- python機器學習和深度學習的學習書籍資料免費下載 93次下載
- 深度學習是什么?了解深度學習難嗎?讓你快速了解深度學習的視頻講解 16次下載
- dsp硬件開發設計指南 40次下載
- 深度學習中的時間序列分類方法 332次閱讀
- 基于AI深度學習的缺陷檢測系統 492次閱讀
- TensorFlow與PyTorch深度學習框架的比較與選擇 529次閱讀
- 深度學習中的圖像分割 1105次閱讀
- 深度學習模型小型化處理的五種方法 4095次閱讀
- 深度學習和普通機器學習的區別 4342次閱讀
- NLP中的深度學習技術概述 4665次閱讀
- ICLR 2019論文解讀:深度學習應用于復雜系統控制 7704次閱讀
- Python入門深度學習完整指南 1421次閱讀
- 深度學習和機器學習深度的不同之處 淺談深度學習的訓練和調參 4270次閱讀
- 深度探究機器學習與圖像融合的技術基于TOF硬件平臺的技術應用 4733次閱讀
- 深度揭示 Facebook 內部支持機器學習的硬件和軟件基礎架構 4611次閱讀
- 初學者必看!深度學習入門指南 3661次閱讀
- 淺析深度學習的多體問題解決方案 1359次閱讀
- 如何區分深度學習與機器學習 1888次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統的設計與實現
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多