什么是GPU加速
1、什么是GPU加速計算
GPU,又稱顯示核心、視覺處理器、顯示芯片,是一種專門在個人電腦、工作站、游戲機和一些移動設(shè)備(如平板電腦、智能手機等)上圖像運算工作的微處理器,與CPU類似,只不過GPU是專為執(zhí)行復(fù)雜的數(shù)學和幾何計算而設(shè)計的,這些計算是圖形渲染所必需的。隨著人工智能的發(fā)展,如今的GPU已經(jīng)不再局限于3D圖形處理了。GPU 加速計算是指同時利用圖形處理器 (GPU) 和 CPU,加快科學、分析、工程、消費和企業(yè)應(yīng)用程序的運行速度。GPU 加速器于 2007 年由 NVIDIA? 率先推出,現(xiàn)已在世界各地為政府實驗室、高校、公司以及中小型企業(yè)的高能效數(shù)據(jù)中心提供支持。GPU 能夠使從汽車、手機和平板電腦到無人機和機器人等平臺的應(yīng)用程序加速運行。
2、GPU與CPU的性能比較
理解 GPU 和 CPU 之間區(qū)別的一種簡單方式是比較它們如何處理任務(wù)。CPU 由專為順序串行處理而優(yōu)化的幾個核心組成,而 GPU 則擁有一個由數(shù)以千計的更小、更高效的核心(專為同時處理多重任務(wù)而設(shè)計)組成的大規(guī)模并行計算架構(gòu)。
GPU的特點是有大量的核(多達幾千個核)和大量的高速內(nèi)存,最初被設(shè)計用于游戲,計算機圖像處理等。GPU主要擅長做類似圖像處理的并行計算,所謂的“粗粒度并行(coarse-grainparallelism)”。這個對于圖像處理很適用,因為像素與像素之間相對獨立,GPU提供大量的核,可以同時對很多像素進行并行處理。但這并不能帶來延遲的提升(而僅僅是處理吞吐量的提升)。比如,當一個消息到達時,雖然GPU有很多的核,但只能有其中一個核被用來處理當前這個消息,而且GPU核通常被設(shè)計為支持與圖像處理相關(guān)的運算,不如CPU通用。GPU主要適用于在數(shù)據(jù)層呈現(xiàn)很高的并行特性(data-parallelism)的應(yīng)用,比如GPU比較適合用于類似蒙特卡羅模擬這樣的并行運算。
CPU和GPU本身架構(gòu)方式和運算目的不同導(dǎo)致了CPU和GPU之間的不同,主要不同點列舉如下。
更形象點的說法是:
現(xiàn)在全班要去春游,你有一輛保時捷和一輛大巴:保時捷只有四個座位,但半個小時就到了;大巴有50個座位,但要一個多小時。為了讓全班盡早過去,大巴一定是首選。從計算的角度看,各位的CPU就是保時捷,GPU就是大巴。GPU每個核心都很弱,但眾多的核心還是讓GPU在并行計算上擁有了相當?shù)膬?yōu)勢。另外一點,GPU有相當?shù)膬r格優(yōu)勢。單純從浮點數(shù)計算能力來看,不到300塊的GT430(91.564G)已經(jīng)接近于一兩千塊的i7(107.6G)。
3、如何部署 GPU 加速應(yīng)用
理解 CPU 與 GPU 之間區(qū)別的一種簡單方式就是對比它們?nèi)绾翁幚砣蝿?wù)。 CPU 由專為順序串行處理而優(yōu)化的幾個核心組成。另一方面,GPU 則由數(shù)以千計的更小、更高效的核心組成,這些核心專為同時處理多任務(wù)而設(shè)計。
4、CPU 對陣 GPU
理解 CPU 與 GPU 之間區(qū)別的一種簡單方式就是對比它們?nèi)绾翁幚砣蝿?wù)。 CPU 由專為順序串行處理而優(yōu)化的幾個核心組成。另一方面,GPU 則由數(shù)以千計的更小、更高效的核心組成,這些核心專為同時處理多任務(wù)而設(shè)計。
GPU 擁有數(shù)以千計的核心,可高效地處理并行任務(wù)、
5、GPU的優(yōu)勢
上面已經(jīng)介紹的很詳細。因為GPU的特點特別適合于大規(guī)模并行運算,GPU在“深度學習”領(lǐng)域發(fā)揮著巨大的作用,因為GPU可以平行處理大量瑣碎信息。深度學習所依賴的是神經(jīng)系統(tǒng)網(wǎng)絡(luò)——與人類大腦神經(jīng)高度相似的網(wǎng)絡(luò)——而這種網(wǎng)絡(luò)出現(xiàn)的目的,就是要在高速的狀態(tài)下分析海量的數(shù)據(jù)。例如,如果你想要教會這種網(wǎng)絡(luò)如何識別出貓的模樣,你就要給它提供無數(shù)多的貓的圖片。而這種工作,正是GPU芯片所擅長的事情。而且相比于CPU,GPU的另一大優(yōu)勢,就是它對能源的需求遠遠低于CPU。GPU擅長的是海量數(shù)據(jù)的快速處理。
將GPU加速器用于機器學習的早期用戶包括諸多規(guī)模的網(wǎng)絡(luò)和社交媒體公司,另外還有數(shù)據(jù)科學和機器學習領(lǐng)域中一流的研究機構(gòu)。與單純使用CPU的做法相比,GPU具有數(shù)以千計的計算核心、可實現(xiàn)10-100倍應(yīng)用吞吐量,因此GPU已經(jīng)成為數(shù)據(jù)科學家處理大數(shù)據(jù)的處理器。
6、GPU的劣勢
簡單地講,不是所有運算都可以并行化,其實這也是并行計算的弱勢。但幾乎所有矩陣運算都有并行化的可能,所以Machine Learning的很多方法移植到GPU還是相當有搞頭的。
7、現(xiàn)狀與趨勢
工業(yè)與學術(shù)界的數(shù)據(jù)科學家已將GPU用于機器學習以便在各種應(yīng)用上實現(xiàn)開創(chuàng)性的改進,這些應(yīng)用包括圖像分類、視頻分析、語音識別以及自然語言處理等等。尤其是深度學習,人們在這一領(lǐng)域中一直進行大力投資和研究。深度學習是利用復(fù)雜的多級「深度」神經(jīng)網(wǎng)絡(luò)來打造一些系統(tǒng),這些系統(tǒng)能夠從海量的未標記訓練數(shù)據(jù)中進行特征檢測。
雖然機器學習已經(jīng)有數(shù)十年的歷史,但是兩個較為新近的趨勢促進了機器學習的廣泛應(yīng)用:海量訓練數(shù)據(jù)的出現(xiàn)以及GPU計算所提供的強大而高效的并行計算。人們利用GPU來訓練這些深度神經(jīng)網(wǎng)絡(luò),所使用的訓練集大得多,所耗費的時間大幅縮短,占用的數(shù)據(jù)中心基礎(chǔ)設(shè)施也少得多。GPU還被用于運行這些機器學習訓練模型,以便在云端進行分類和預(yù)測,從而在耗費功率更低、占用基礎(chǔ)設(shè)施更少的情況下能夠支持遠比從前更大的數(shù)據(jù)量和吞吐量。
目前大量的開發(fā)語言如R、Python等的機器學習/深度學習框架和包都支持GPU,比如,TensorFlow,Theano,scikit-learn 等等
總結(jié)
- 上一篇: 二叉树的前序,中序,后序遍历Java实现
- 下一篇: 计算机科学硕士学位的英文,中国计算机专业