您現在的位置:>  首頁 > 新聞中心 > 行業動態
聯系我們

電 話:0571-88855790/88855791

傳 真:0571-88315242

地 址:杭州市余杭區龍潭路7號未來科技研創園A座三樓320室

關注我們

深度學習當中GPU相較于CPU而言存在哪些優勢

來源:東田工控  日期:2019-06-21

    CPU被稱作中央處理器,是一臺計算機的計算處理核心,主要負責計算機的控制命令處理和核心運算輸出。GPU被稱作圖像處理器,是一臺主機的顯示處理核心,主要負責對計算機中的圖形和圖像的處理與運算。

    從硬件層面上來說,GPU相較于CPU而言,它擁有更多的核心數量,這也是為什么說GPU更適合并行運算的原因;但是CPU雖然核心數量比較少,但是其每一個核心計算單元相較于GPU的每一個核心計算單元,具有更高效的計算能力。所以如果從應用場景上來區分的話,只能說CPU側重于串行計算,而GPU側重于并行計算。

    那為什么大部分深度學習都采用GPU來結合呢?

    因為在深度學習中,大多數模型的參數結構都是張量形式,做張量計算就像做矩陣運算一樣,存在著大量的并行計算,所以使用GPU做深度學習運算,猶如兩個輪子的自行車和四個輪子的汽車一樣,同樣的起點和終點,到達的時間相差百倍。

    舉個例子,我們來描述一下GPU進行數據處理的過程。當GPU從CPU處得到數據處理的指令,把大規模、無結構化的數據分解成很多獨立的部分然后分配給各個流處理器集群。每個流處理器集群再次把數據分解,分配給調度器所控制的多個計算核心同時執行數據的計算和處理。如果一個核心的計算算作一個線程,那么在這顆GPU中就有32×4×16,2048個線程同時進行數據的處理。盡管每個線程/Core的計算性能、效率與CPU中的Core相比低了不少,但是當所有線程都并行計算,那么累加之后它的計算能力又遠遠高于CPU。

    對于基于神經網絡的深度學習來說,它硬件計算精度要求遠遠沒有對其并行處理能力的要求來的迫切。而這種并行計算能力轉化為對于硬件的要求就是盡可能大的邏輯單元規模。通常我們使用每秒鐘進行的浮點運算來量化的參數。不難看出,對于單精度浮點運算,GPU的執行效率遠遠高于CPU。

    除了計算核心的增加,GPU另一個比較重要的優勢就是它的內存結構——共享內存。每個流處理器集群末端設有共享內存。相比于CPU每次操作數據都要返回內存再進行調用,GPU線程之間的數據通訊不需要訪問全局內存,而在共享內存中就可以直接訪問。這種設置的帶來最大的好處就是線程間通訊速度的提高。

    再就是高速的全局內存(顯存):目前GPU上普遍采用GDDR5的顯存顆粒不僅具有更高的工作頻率從而帶來更快的數據讀取/寫入速度,而且還具備更大的顯存帶寬。通常我們會這樣認為,在數據處理中速度往往最終取決于處理器從內存中提取數據以及流入和通過處理器要花多少時間。而在傳統的CPU構架中,盡管有高速緩存的存在,但是由于其容量較小,大量的數據只能存放在內存(RAM)中。進行數據處理時,數據要從內存中讀取然后在CPU中運算最后返回內存中。由于構架的原因,二者之間的通信帶寬通常在60GB/s左右徘徊。與之相比,大顯存帶寬的GPU具有更大的數據吞吐量。在大規模深度神經網絡的訓練中,必然帶來更大的優勢。

    而且就目前而言,越來越多的深度學習標準庫支持基于GPU的深度學習加速,通俗點講就是深度學習的編程框架會自動根據GPU所具有的線程/Core數,去自動分配數據的處理策略,從而達到優化深度學習的時間。

  • 電話咨詢

  • 4008-0571-96
广东彩票双色球