顯卡
顯卡(Video card剩蟀,Graphics card)催蝗,是電腦進行數(shù)模信號轉換的設備,承擔輸出顯示圖形的任務育特。顯卡接在電腦主板上丙号,它將電腦的數(shù)字信號轉換成模擬信號讓顯示器顯示出來。
獨立顯卡和集成顯卡的區(qū)別:集成顯卡集成在主板上缰冤,不能隨意更換犬缨。而獨立顯卡是作為一個獨立的器件插在主板的AGP接口上的,可以隨時更換升級棉浸。集成顯卡使用物理內(nèi)存怀薛,而獨立顯卡有自己的顯存。一般而言迷郑,同期推出的獨立顯卡的性能和速度要比集成顯卡好枝恋、快。集成顯卡和獨立顯卡都是有GPU的嗡害。
民用和軍用顯卡圖形芯片供應商主要包括AMD(超微半導體)和Nvidia(英偉達)2家焚碌。(GPU)主流是NVIDIA的GPU,深度學習本身需要大量計算霸妹。GPU的并行計算能力十电,在過去幾年里恰當?shù)貪M足了深度學習的需求。AMD的GPU基本沒有什么支持,可以不用考慮鹃骂。
顯卡驅(qū)動
沒有顯卡驅(qū)動台盯,就不能識別GPU硬件,不能調(diào)用其計算資源畏线。
ubuntu安裝nvidia顯卡驅(qū)動可以參考我另一個鏈接:ubuntu16.04安裝顯卡驅(qū)動
GPU
GPU(Graphic Processing Unit爷恳,圖形處理單元)這個概念是由Nvidia公司于1999年提出的。GPU是顯卡上的一塊芯片象踊,就像CPU是主板上的一塊芯片。
GPU發(fā)展階段:
1.早期僅用于圖形渲染棚壁。
2.GPU這么一個強大的器件只用于圖形處理太浪費了杯矩,它應該用來做更多的工作,例如浮點運算袖外。把浮點運算做一些處理史隆,包裝成圖形渲染任務,然后交給GPU來做曼验。這就是GPGPU(General Purpose GPU)的概念泌射。缺點是你必須有一定的圖形學知識,否則你不知道如何包裝鬓照。
3.GPU的并行計算能力熔酷,在過去幾年里恰當?shù)貪M足了深度學習的需求。為了讓不懂圖形學知識的人也能體驗到GPU運算的強大豺裆,Nvidia公司又提出了CUDA的概念拒秘。
CUDA
CUDA(Compute Unified Device Architecture)是一個基于Nvidia GPU的并行計算的架構。CUDA最主要的包含兩個方面:一個是ISA指令集架構臭猜;第二硬件計算引擎躺酒;實際上是硬件和指令集。 也就是說我們可以把CUDA看做是與X86或者cell類似的架構蔑歌,但是是基于是GPU羹应,而不是傳統(tǒng)的CPU。
只有安裝這個框架才能夠進行復雜的并行計算次屠。主流的深度學習框架也都是基于CUDA進行GPU并行加速的园匹,幾乎無一例外。
在 CUDA 的架構下劫灶,一個程序分為兩個部份:host 端和 device 端偎肃。Host 端是指在 CPU 上執(zhí)行的部份,而 device 端則是在顯示芯片上執(zhí)行的部份浑此。Device 端的程序又稱為 “kernel”累颂。通常 host 端程序會將數(shù)據(jù)準備好后,復制到顯卡的內(nèi)存中,再由顯示芯片執(zhí)行 device 端程序紊馏,完成后再由 host 端程序?qū)⒔Y果從顯卡的內(nèi)存中取回料饥。
GPU與CPU
CPU是“主(host)”而GPU是“從(device)”,GPU無論發(fā)展得多快朱监,都只能是替CPU分擔工作岸啡,而不是取代CPU。在沒有GPU之前赫编,基本上所有的任務都是交給CPU來做的巡蘸。有GPU之后,二者就進行了分工擂送,CPU負責邏輯性強的事物處理和串行計算悦荒,GPU則專注于執(zhí)行高度線程化的并行處理任務(大規(guī)模計算任務)。
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擅長邏輯控制此衅,是串行計算她按,而GPU擅長高強度計算,是并行計算炕柔。
cuDNN
NVIDIA cuDNN(CUDA Deep Neural Network library)是基于CUDA的深度學習GPU加速庫酌泰,是一個用于深層神經(jīng)網(wǎng)絡的GPU加速庫。它強調(diào)性能匕累、易用性和低內(nèi)存開銷陵刹。如果你要用GPU訓練模型,cuDNN不是必須的欢嘿,但是一般會采用這個加速庫衰琐。
NVIDIA cuDNN可以集成到更高級別的機器學習框架中,如谷歌的Tensorflow炼蹦、加州大學伯克利分校的流行caffe軟件羡宙。
從官方安裝指南可以看出,只要把cuDNN文件復制到CUDA的對應文件夾里就可以掐隐,即是所謂插入式設計狗热,把cuDNN數(shù)據(jù)庫添加CUDA里钞馁,cuDNN是CUDA的擴展計算庫,不會對CUDA造成其他影響匿刮。
參考資料:
https://www.zhihu.com/question/28422454
http://www.reibang.com/p/622f47f94784
https://blog.csdn.net/u014380165/article/details/77340765
https://blog.csdn.net/fu6543210/article/details/90020330
https://blog.csdn.net/feifeiyechuan/article/details/94451052