歡迎光臨
每天分享高質量文章

HPC高效能運算知識: GPU的工作原理(含影片)

      在GPU出現以前,顯示卡和CPU的關係有點像“主僕”,簡單地說這時的顯示卡就是畫筆,根據各種有CPU發出的指令和資料進行著色、材質的填充、渲染、輸出等。


      較早的娛樂用的3D顯示卡又稱“3D加速卡”,由於大部分坐標處理的工作及光影特效需要由CPU親自處理,佔用了CPU太多的運算時間,從而造成整體畫面不能非常流暢地表現出來。


      例如,渲染一個複雜的三維場景,需要在一秒內處理幾千萬個三角形頂點和光柵化幾十億的畫素。早期的3D遊戲,顯示卡只是為螢幕上顯示畫素提供一個快取,所有的圖形處理都是由CPU單獨完成。圖形渲染適合併行處理,擅長於執行序列工作的CPU實際上難以勝任這項任務。所以,那時在PC上實時生成的三維影象都很粗糙。不過在某種意義上,當時的圖形繪製倒是完全可程式設計的,只是由CPU來擔綱此項重任,速度上實在是達不到要求。


      隨著時間的推移,CPU進行各種光影運算的速度變得越來越無法滿足遊戲開發商的要求,更多多邊形以及特效的應用榨幹了幾乎所有的CPU效能,矛盾產生了。


GPU的誕生


      NVIDIA公司在1999年8月31日釋出GeForce 256圖形處理晶片時首先提出GPU的概念


      GPU之所以被稱為圖形處理器,最主要的原因是因為它可以進行幾乎全部與計算機圖形有關的資料運算,而這些在過去是CPU的專利。


      目前,計算機圖形學正處於前所未有的發展時期。近年來,GPU技術以令人驚異的速度在發展。渲染速率每6個月就翻一番。效能多年來翻番了十倍百倍,也就是(2的10次方比2)提高了上千倍!與此同時,不僅效能得到了提高,計算質量和圖形程式設計的靈活性也逐漸得以改善。


      以前,PC和計算機工作站只有圖形加速器,沒有圖形處理器(GPU),而圖形加速器只能簡單的加速圖形渲染。而GPU取代了圖形加速器之後,我們就應該摒棄圖形加速器的舊觀念。


GPU的結構


      GPU全稱是Graphic Processing Unit(圖形處理器),其最大的作用就是進行各種繪製計算機圖形所需的運算,包括頂點設定、光影、畫素操作等。GPU實際上是一組圖形函式的集合,而這些函式由硬體實現。以前,這些工作都是有CPU配合特定軟體進行的,GPU從某種意義上講就是為了在圖形處理過程中充當主角而出現的。


      一個簡單的GPU結構示意圖包含一塊標準的GPU。主要包括2D Engine、3D Engine、VideoProcessing Engine、FSAA Engine、視訊記憶體管理單元等。其中,3D運算中起決定作用的是3DEngine,這是現代3D顯示卡的靈魂,也是區別GPU等級的重要標誌。


      3DEngine在各公司的產品中都是宣傳攻勢的重點照顧物件,名字一個比一個響,像NVIDIA的nFjnjtFX系列、CineFX系列,AMD的SmoothVision系列。一個3DEngine通常包含著T&L;單元、Vertex Proeessing Engine、SetupEngine、PiexlShader等部分。


GPU的工作原理


      現在讓我們來看看第二代GPU是如何完整處理一個畫面的吧!首先,來自CPU的各種物理引數進入GPU,Vertex shader將對頂點資料進行基本的判斷。如果沒有需要處理的Vertex 效果,則頂點資料直接進入T&L; Unit 進行傳統的T&L;操作以節約時間提高效率。