高強度圖形是當代計算機系統(tǒng)的標志。今天的計算機,從智能手機到高端臺式機,都使用各種復雜的視覺效果來增強用戶體驗。此外,用戶還可以使用計算機玩圖形密集型游戲、觀看高清視頻,以及進行計算機輔助工程設計,所有這些應用程序都需要大量的圖形處理。
在早期,計算機中的圖形支持非常初級,程序員需要指定屏幕上繪制的每個形狀的坐標,例如要繪制一條線,程序員需要明確提供該線的坐標,并指定其顏色。顏色的范圍非常有限,而且?guī)缀鯖]有用于卸載圖形密集型任務的硬件。由于在屏幕上繪制的每一條線或圓都需要幾個匯編語句,因此創(chuàng)建和使用計算機圖形的過程非常緩慢。漸漸地,需要在硬件中對圖形進行一些支持。
由于GPU和CPU是為兩種截然不同的應用程序而設計和優(yōu)化的,因此它們的體系結構存在顯著差異,可以通過比較兩種處理器技術專用于高速緩存、控制邏輯和處理邏輯的管芯面積(晶體管計數(shù))的相對數(shù)量來看出。
GPU是圖形處理單元的縮寫,它是一種專門用于處理圖形相關的計算的芯片。GPU可以在PC、工作站、游戲主機、手機、平板等多種智能終端設備上運行。
GPU是由數(shù)百或數(shù)千個小型的處理單元組成,每個處理單元可以執(zhí)行簡單的算術或幾何運算。GPU的優(yōu)勢在于它可以同時處理大量的數(shù)據(jù),對于圖形渲染等需要高速浮點運算的任務,它的效率很高。GPU的缺點是它的功能相對單一,對于復雜的指令和邏輯運算,它的能力不足。
GPU的主要作用是渲染圖像、視頻和動畫,以提高視覺效果和性能。GPU也可以用于其他需要大量并行運算的領域,如科學計算、密碼破解、機器學習、加密貨幣挖掘等。
GPU的設計目標是處理大規(guī)模數(shù)據(jù)并行任務。它們通過讓每個處理單元執(zhí)行相同的指令,并對不同的數(shù)據(jù)進行處理的方式來實現(xiàn)數(shù)據(jù)并行性。這種方式使GPU能夠同時處理多個數(shù)據(jù)元素,從而提高計算效率。
GPU的工作過程,它從CPU處獲得三維模型,這些模型是用頂點坐標和色彩信息組成的,GPU對這些頂點的位置進行一系列的變換,然后投影到幀緩存上。投影的同時,GPU根據(jù)顯示器的大小和分辨率對投影結果進行裁減,光柵化,每個幀緩存里的像素或者像素多邊形的色彩經(jīng)過GPU的一系列變換,最后的結果被GPU輸出到顯示器上。
GPU的工作過程可以分為以下幾個階段:
1、頂點生成
這階段GPU讀取描述3D圖形外觀的頂點數(shù)據(jù)并根據(jù)頂點數(shù)據(jù)確定3D圖形的形狀及位置關系,建立起3D圖形的骨架。在支持DX系列規(guī)格的GPU中,這些工作由硬件實現(xiàn)的頂點著色器(Vertex Shader)完成。
2、光柵化計算
顯示器實際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點和線通過一定的算法轉(zhuǎn)換到相應的像素點。把一個矢量圖形轉(zhuǎn)換為一系列像素點的過程就稱為光柵化。例如,一條數(shù)學表示的斜線段,最終被轉(zhuǎn)化成階梯狀的連續(xù)像素點。
3、紋理帖圖
頂點單元生成的多邊形只構成了3D物體的輪廓,而紋理映射(Texture Mapping)工作完成對多邊形表面的帖圖,通俗的說,就是將多邊形的表面貼上相應的圖片,從而生成“真實”的圖形。TMU(Texture Mapping Unit)即是用來完成此項工作。
4、像素處理
這階段(在對每個像素進行光柵化處理期間)GPU完成對像素的計算和處理,從而確定每個像素的最終屬性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的像素著色器(Pixel Shader)完成。
5、最終輸出
由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。