最近BOSS安排了一個任務(wù)筋遭,學(xué)習(xí)OpenGL,既然是學(xué)OpenGL暴拄,那總得知道OpenGL是做什么的漓滔,而在這之前,一切還得從GPU開始講起乖篷。
什么是GPU 响驴?
GPU,中文名:圖形處理器(英語:graphics processing unit)撕蔼,又稱顯示核心豁鲤、視覺處理器、顯示芯片或繪圖芯片鲸沮。是一種專門運行繪圖運算工作的微處理器琳骡。 在這之前,雖然有顯卡(Graphics card)讼溺,顯卡擁有一種稱為圖像加速器的硬件楣号,但卻沒有可編程單元。
在1999年8月怒坯, 著名的英偉達(dá)(NVIDIA)公司提出了發(fā)布GeForce 256(著名的GeForce 系列)時炫狱,首次提出了圖形處理器這個概念,使3D加速器由原本只是簡單的柵格器發(fā)展到另一個重要的階段敬肚,并加入3D渲染流水線毕荐。
GeForce 256是第一個在市場上有這種能力的顯卡束析。它使得每個像素可以經(jīng)由獨立的小程序處理艳馒,當(dāng)中可以包含額外的圖像紋理輸入,而每個幾何頂點同樣可以在投影到屏幕上之前被獨立的小程序處理员寇。(OpenGL就是編寫GPU小程序和渲染控制的一整套API)
圖形處理器使顯卡減少對CPU的依賴弄慰,并分擔(dān)部分原本是由中央處理器所擔(dān)當(dāng)?shù)墓ぷ鳎绕涫窃谶M(jìn)行三維繪圖運算時蝶锋,功效更加明顯陆爽。這為各種炫酷逼真的游戲及軟件提供了非常有利的硬件支持。
GPU和CPU的差異在什么地方慌闭?
從這個圖中别威,大家可以看到,GPU的ALU數(shù)量(算術(shù)邏輯單元驴剔,綠色部分)要比CPU要多得多省古,但CPU中的ALU要相對大一些,同時GPU的Cache(緩存)和Control(控制器)相比CPU中的要少得多丧失。這意味著什么豺妓?
首先,ALU是負(fù)責(zé)算術(shù)運算的(加減乘除)布讹,ALU越多琳拭,那它就可以同時進(jìn)行大量的計算,因此描验,GPU在大規(guī)模并發(fā)運算這一塊要遠(yuǎn)遠(yuǎn)優(yōu)于CPU白嘁。
但這并不意味著CPU的算術(shù)運算能力就不行权薯,而CPU的ALU雖然少,但可以進(jìn)行更復(fù)雜的運算睡扬,并且運算速度也是快的飛起來(串行)盟蚣,并且擁有分支預(yù)測等能力,可以降低延時加快運算速度卖怜,這在GPU中是沒有的屎开。
由于GPU有非常多的Control和小Cache,因此也可以同時擁有非常多的線程(thread)進(jìn)行同步計算不同的內(nèi)容马靠。
這里要注意的是緩存的目的不是保存后面需要訪問的數(shù)據(jù)奄抽,而是為線程提高服務(wù),這點和CPU非常不同甩鳄。
引用知乎的一位同學(xué)的話:
GPU的工作大部分就是這樣逞度,計算量大,但沒什么技術(shù)含量妙啃,而且要重復(fù)很多很多次档泽。就像你有個工作需要算幾億次一百以內(nèi)加減乘除一樣,最好的辦法就是雇上幾十個小學(xué)生一起算揖赴,一人算一部分馆匿,反正這些計算也沒什么技術(shù)含量,純粹體力活而已燥滑。而CPU就像老教授渐北,積分微分都會算,就是工資高铭拧,一個老教授資頂二十個小學(xué)生赃蛛,你要是富士康你雇哪個恃锉?GPU就是這樣,用很多簡單的計算單元去完成大量的計算任務(wù)呕臂,純粹的人海戰(zhàn)術(shù)淡喜。這種策略基于一個前提,就是小學(xué)生A和小學(xué)生B的工作沒有什么依賴性诵闭,是互相獨立的炼团。很多涉及到大量計算的問題基本都有這種特性,比如你說的破解密碼疏尿,挖礦和很多圖形學(xué)的計算瘟芝。這些計算可以分解為多個相同的簡單小任務(wù),每個任務(wù)就可以分給一個小學(xué)生去做褥琐。但還有一些任務(wù)涉及到“流”的問題锌俱。比如你去相親,雙方看著順眼才能繼續(xù)發(fā)展敌呈∶澈辏總不能你這邊還沒見面呢,那邊找人把證都給領(lǐng)了磕洪。這種比較復(fù)雜的問題都是CPU來做的吭练。
最后,分享一個非常有意思的視頻(直觀易懂):
https://v.youku.com/v_show/id_XNjY3MTY4NjAw.html
引用
維基百科:圖形顯示器(https://zh.wikipedia.org/wiki/%E5%9C%96%E5%BD%A2%E8%99%95%E7%90%86%E5%99%A8)
GPU與CPU析显?什么是GPU運算鲫咽?(https://www.nvidia.cn/object/what-is-gpu-computing-cn.html)
CPU與GPU的設(shè)計區(qū)別(http://www.cnblogs.com/biglucky/p/4223565.html)