GPU,CUDA众辨,cuDNN的理解

我們知道做深度學(xué)習(xí)離不開GPU,不過一直以來對GPU和CPU的差別舷礼,CUDA以及cuDNN都不是很了解鹃彻,所以找了些資料整理下,希望不僅可以幫助自己理解妻献,也能夠幫助到其他人理解蛛株。

先來講講CPU和GPU的關(guān)系和差別吧。截圖來自資料1(CUDA的官方文檔):

從上圖可以看出GPU(圖像處理器育拨,Graphics Processing Unit)和CPU(中央處理器谨履,Central Processing Unit)在設(shè)計上的主要差異在于GPU有更多的運算單元(如圖中綠色的ALU),而Control和Cache單元不如CPU多熬丧,這是因為GPU在進行并行計算的時候每個運算單元都是執(zhí)行相同的程序笋粟,而不需要太多的控制。Cache單元是用來做數(shù)據(jù)緩存的,CPU可以通過Cache來減少存取主內(nèi)存的次數(shù)害捕,也就是減少內(nèi)存延遲(memory latency)绿淋。GPU中Cache很小或者沒有,因為GPU可以通過并行計算的方式來減少內(nèi)存延遲尝盼。因此CPU的Cahce設(shè)計主要是實現(xiàn)低延遲吞滞,Control主要是通用性,復(fù)雜的邏輯控制單元可以保證CPU高效分發(fā)任務(wù)和指令盾沫。所以CPU擅長邏輯控制裁赠,是串行計算,而GPU擅長高強度計算赴精,是并行計算佩捞。打個比方,GPU就像成千上萬的苦力祖娘,每個人干的都是類似的苦力活失尖,相互之間沒有依賴,都是獨立的渐苏,簡單的人多力量大掀潮;CPU就像包工頭,雖然也能干苦力的活琼富,但是人少仪吧,所以一般負責(zé)任務(wù)分配,人員調(diào)度等工作鞠眉。

可以看出GPU加速是通過大量線程并行實現(xiàn)的薯鼠,因此對于不能高度并行化的工作而言,GPU就沒什么效果了械蹋。而CPU則是串行操作出皇,需要很強的通用性,主要起到統(tǒng)管和分配任務(wù)的作用哗戈。

————————————————————————-華麗的分割線——————————————————————-

CUDA的官方文檔(參考資料1)是這么介紹CUDA的:a general purpose parallel computing platform and programming model that leverages the parallel compute engine in NVIDIA GPUs to solve many complex computational problems in a more efficient way than on a CPU.
換句話說CUDA是NVIDIA推出的用于自家GPU的并行計算框架郊艘,也就是說CUDA只能在NVIDIA的GPU上運行,而且只有當(dāng)要解決的計算問題是可以大量并行計算的時候才能發(fā)揮CUDA的作用唯咬。

接下來這段話摘抄自資料2纱注。在 CUDA 的架構(gòu)下,一個程序分為兩個部份:host 端和 device 端胆胰。Host 端是指在 CPU 上執(zhí)行的部份狞贱,而 device 端則是在顯示芯片上執(zhí)行的部份。Device 端的程序又稱為 “kernel”蜀涨。通常 host 端程序會將數(shù)據(jù)準(zhǔn)備好后瞎嬉,復(fù)制到顯卡的內(nèi)存中蝎毡,再由顯示芯片執(zhí)行 device 端程序,完成后再由 host 端程序?qū)⒔Y(jié)果從顯卡的內(nèi)存中取回佑颇。

接下來這段話摘抄自資料2顶掉。在 CUDA 架構(gòu)下,顯示芯片執(zhí)行時的最小單位是thread挑胸。數(shù)個 thread 可以組成一個block痒筒。一個 block 中的 thread 能存取同一塊共享的內(nèi)存,而且可以快速進行同步的動作茬贵。每一個 block 所能包含的 thread 數(shù)目是有限的簿透。不過,執(zhí)行相同程序的 block解藻,可以組成grid老充。不同 block 中的 thread 無法存取同一個共享的內(nèi)存,因此無法直接互通或進行同步螟左。因此啡浊,不同 block 中的 thread 能合作的程度是比較低的。不過胶背,利用這個模式巷嚣,可以讓程序不用擔(dān)心顯示芯片實際上能同時執(zhí)行的 thread 數(shù)目限制。例如钳吟,一個具有很少量執(zhí)行單元的顯示芯片廷粒,可能會把各個 block 中的 thread 順序執(zhí)行,而非同時執(zhí)行红且。不同的 grid 則可以執(zhí)行不同的程序(即 kernel)坝茎。

————————————————————————-華麗的分割線——————————————————————-

cuDNN(CUDA Deep Neural Network library):是NVIDIA打造的針對深度神經(jīng)網(wǎng)絡(luò)的加速庫,是一個用于深層神經(jīng)網(wǎng)絡(luò)的GPU加速庫暇番。如果你要用GPU訓(xùn)練模型嗤放,cuDNN不是必須的,但是一般會采用這個加速庫壁酬。

https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#thread-hierarchy
參考資料2

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斤吐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子厨喂,更是在濱河造成了極大的恐慌,老刑警劉巖庄呈,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜕煌,死亡現(xiàn)場離奇詭異,居然都是意外死亡诬留,警方通過查閱死者的電腦和手機斜纪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門贫母,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盒刚,你說我怎么就攤上這事腺劣。” “怎么了因块?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵橘原,是天一觀的道長。 經(jīng)常有香客問我涡上,道長趾断,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任吩愧,我火速辦了婚禮芋酌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雁佳。我一直安慰自己脐帝,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布糖权。 她就那樣靜靜地躺著堵腹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪温兼。 梳的紋絲不亂的頭發(fā)上秸滴,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音募判,去河邊找鬼荡含。 笑死,一個胖子當(dāng)著我的面吹牛届垫,可吹牛的內(nèi)容都是我干的释液。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼装处,長吁一口氣:“原來是場噩夢啊……” “哼误债!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妄迁,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤寝蹈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后登淘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體箫老,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年黔州,在試婚紗的時候發(fā)現(xiàn)自己被綠了耍鬓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片阔籽。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖牲蜀,靈堂內(nèi)的尸體忽然破棺而出笆制,到底是詐尸還是另有隱情,我是刑警寧澤涣达,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布在辆,位于F島的核電站,受9級特大地震影響峭判,放射性物質(zhì)發(fā)生泄漏开缎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一林螃、第九天 我趴在偏房一處隱蔽的房頂上張望奕删。 院中可真熱鬧,春花似錦疗认、人聲如沸完残。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谨设。三九已至,卻和暖如春缎浇,著一層夾襖步出監(jiān)牢的瞬間扎拣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工素跺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留二蓝,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓指厌,卻偏偏與公主長得像刊愚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子踩验,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 開篇一張圖鸥诽,后面聽我編 1. 知識準(zhǔn)備 1.1 中央處理器(CPU) 中央處理器(CPU,Central Proc...
    He_Yu閱讀 47,077評論 7 115
  • CUDA從入門到精通(零):寫在前面 本文原版鏈接: 在老板的要求下箕憾,本博主從2012年上高性能計算課程開始接觸C...
    Pitfalls閱讀 3,612評論 1 3
  • 1. CPU vs. GPU 1.1 四種計算機模型 GPU設(shè)計的初衷就是為了減輕CPU計算的負載牡借,將一部分圖形計...
    王偵閱讀 20,887評論 3 20
  • CUDA是一種新的操作GPU計算的硬件和軟件架構(gòu),它將GPU視作一個數(shù)據(jù)并行計算設(shè)備袭异,而且無需把這些計算映射到圖形...
    ai領(lǐng)域閱讀 9,074評論 0 8
  • GPU虛擬化 一钠龙、GPU概述 GPU的英文名稱為Graphic Processing Unit,GPU中文全稱為計...
    oo水桶oo閱讀 2,989評論 0 2