深度学习 占用gpu内存 使用率为0_你了解GPU吗?为什么说深度学习需要GPU?
任何試圖大規模推廣訓練模型性能的數據科學家或機器學習愛好者都將在某個時候達到頂峰,并開始經歷不同程度的處理滯后。當數據集變得更大時,使用較小的訓練集花費數分鐘的任務現在可能需要花費更多的時間(在某些情況下是幾周)。
那什么是GPU?它們如何與CPU相抗衡?我的深度學習項目需要一個嗎?
如果您曾經問??過自己這些問題,請繼續閱讀...
任何數據科學家或機器學習狂熱者一生中至少會聽說,深度學習需要大量硬件。有些人在筆記本電腦上訓練了簡單的深度學習模型幾天(通常沒有GPU),這導致深度學習需要大型系統才能運行執行。這創造了圍繞深度學習的話題,為初學者創建了障礙。
我在過去幾年中提到的每本書都總是提到以下內容:深度學習需要大量的計算能力才能繼續運行。
但我沒有數據中心在我的命令,當我建立我的第一個深度學習模型在一個相當大的筆記本電腦,我知道,達成的共識是要么錯誤或描繪一些道理。
為什么我們需要更多的硬件來進行深度學習?
對于任何神經網絡來說,深度學習模型的訓練階段都是最耗費資源的任務
在訓練過程中,神經網絡會接受輸入,然后使用在訓練過程中調整的權重在隱藏層中對其進行處理,然后模型發出預測。調整權重以找到模式,以便做出更好的預測。
這兩個運算本質上都是矩陣乘法。下圖可以表示一個簡單的矩陣乘法
在神經網絡中,我們可以將第一個數組作為神經網絡的輸入,而第二個數組則形成其權重。
容易吧?
是的,如果您的神經網絡具有大約10、100甚至100,000個參數。一臺計算機仍將能夠在幾分鐘甚至最多幾小時內處理完這一問題。
但是,如果您的神經網絡具有超過100億個參數,該怎么辦?采用傳統方法來訓練這種系統將需要數年時間。您的計算機可能甚至在十分之一之前就放棄了。
“一個采用搜索輸入并根據1億個輸出或產品進行預測的神經網絡,通常每個產品約有2,000個參數。因此,將它們相乘,神經網絡的最后一層現在是2000億個參數。而且我還沒有做任何復雜的事情。我說的是一個非常非常簡單的簡單神經網絡模型。” —博士 萊斯大學學生
如何使深度學習模型訓練更快
深度學習模型可以被訓練通過簡單地在運行的所有操作變得更快同一時間,而不是一個接一個。
您可以通過使用GPU訓練模型來實現。
GPU(圖形處理單元)是具有專用內存的專用處理器,通常會執行渲染圖形所需的浮點運算。
換句話說,它是用于大量圖形和數學計算的單芯片處理器,從而釋放了CPU周期用于其他作業。
GPU和CPU之間的主要區別在于,與CPU相比,GPU按比例分配了更多的晶體管用于算術邏輯單元,而減少了對高速緩存和流控制的投入。
盡管CPU最適用于需要解析或解釋代碼中復雜邏輯的問題,但GPU是專為計算機游戲的專用圖形渲染而設計的,后來經過增強以加速其他幾何計算(例如,變換多邊形或旋轉垂直線)進入不同的坐標系(如3D)。
GPU小于CPU,但與后者相比,GPU往往具有更多的邏輯核心(算術邏輯單元或ALU,控制單元和內存緩存)。
在上表中,您可以看到GPU(紅色/綠色)理論上可以完成CPU(藍色)的操作的10–15倍。這種加速也非常適用于實踐。
如果您將CPU視為瑪莎拉蒂,那么GPU可以算是一輛大卡車。
CPU(瑪莎拉蒂)可以在RAM中快速獲取少量包裹(3-4位乘客),而GPU(卡車)速度較慢,但??可以在一圈內獲取大量內存(約20位乘客)。
為什么選擇GPU進行深度學習
GPU經過優化,可訓練人工智能和深度學習模型,因為它們可以同時處理多個計算。
它們具有大量內核,可以更好地計算多個并行進程。此外,深度學習中的計算需要處理大量數據-這使GPU的內存帶寬最合適。
有一些決定性參數可以確定是使用CPU還是GPU來訓練深度學習模型:
內存帶寬:
帶寬是GPU比CPU更快的計算速度的主要原因之一。對于大型數據集,CPU在訓練模型時會占用大量內存。
計算龐大而復雜的作業需要占用CPU大量的時鐘周期-CPU 依次處理作業,并且內核數量少于同類GPU。
另一方面,獨立的GPU帶有專用的VRAM(視頻RAM)內存。因此,CPU的內存可用于其他任務。
隨時間比較CPU和GPU的帶寬
數據集大小
在深度學習中訓練模型需要大量的數據集,因此在內存方面需要大量的計算操作。為了有效地計算數據,GPU是最佳選擇。計算量越大,GPU相對于CPU的優勢就越大。
優化
在CPU中優化任務要容易得多。盡管CPU內核數量較少,但功能卻比數千個GPU內核強大。
每個CPU內核可以執行不同的指令(MIMD架構),而通常組織在32個內核的塊中的GPU內核在給定的時間并行執行同一條指令(SIMD架構)。
鑒于需要付出的努力,密集神經網絡中的并行化非常困難。因此,與在CPU中相比,在GPU中難以實現復雜的優化技術。
我應該使用GPU嗎?
與任何數據科學項目一樣,這取決于。在速度,可靠性和成本之間需要權衡考慮:
通常,GPU是進行快速機器學習的更安全的選擇,因為從本質上講,數據科學模型訓練由簡單的矩陣數學計算組成,如果并行執行計算,則其速度可能會大大提高。
Cloud GPU實例
您還應該考慮Cloud GPU。如果您不想購買一堆昂貴的GPU,則可以與云托管公司一起按需利用GPU。它們將使您免于配置硬件的麻煩,最重要的是,它們并不那么昂貴-使用時的成本可以低至每小時0.25美元。
您將租用一臺外國計算機/服務器,而不是自己運行。僅僅關閉瀏覽器或關閉PC是不夠的,它們僅會切斷設備與該遠程服務器之間的連接,而不會關閉您要付費的東西。否則,您將需要支付所有費用,并且會收到討厭的賬單!
CPU最擅長順序處理單個更復雜的計算,而GPU更擅長并行處理多個但更簡單的計算。
GPU計算實例的成本通常是CPU計算實例的2-3倍,因此,除非您在基于GPU的訓練模型中看到2-3倍的性能提升,否則我建議使用CPU。
總結
以上是生活随笔為你收集整理的深度学习 占用gpu内存 使用率为0_你了解GPU吗?为什么说深度学习需要GPU?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中构造方法可以被继承吗_py
- 下一篇: amd 深度学习模型部署_Web服务部署