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