圖形處理器(GPU)的發展歷史簡介
更新時間:2010-1-20 10:48:34 編輯:溫情 文章來源:中國視聽網 調整文字大小:【
大中小】
20 世紀六、七十年代,受硬件條件的限制,圖形顯示器只是計算機輸出的一種工具。限于硬件發展水平,人們只是純粹從軟件實現的角度來考慮圖形用戶界面的規范問題。圖形用戶界面國際標準GKS(GKS3D),PHIGS就是其中的典型代表。
20世紀80年代初期,出現GE(Geometry Engine)為標志的圖形處理器。GE芯片的出現使得計算機圖形學的發展進入圖形處理器引導其發展的年代。GE的核心是四位向量的浮點運算。它可由一個寄存器定制碼定制出不同功能,分別用于圖形渲染流水線中,實現矩陣,裁剪,投影等運算。12個這樣的GE單元可以完整地實現三維圖形流水線的功能。芯片設計者James Clark以此為核心技術建立的SGI公司,基于SGI圖形處理器功能的圖形界面GL及其后的OpenGL,成為圖形用戶界面事實上的工業標準。
20世紀80年代和90年代,GE及其圖形處理器功能不斷增強和完善,使得圖形處理功能逐漸從CPU向GPU轉移。現代圖形處理的流水線主要功能分為順序處理的兩個部分:第一部分對圖元實施幾何變化以及對圖元屬性進行處理(含部分光照計算);第二部分則是掃描轉換進行光柵化以后完成一系列的圖形繪制處理,包含各種光照效果和合成、紋理映射、遮擋處理、反混淆處理等。
20世紀90年代,NVIDIA進入個人電腦3D市場,并于1999年推出具有標志意義的圖形處理器——GeForce 256,第一次在圖形芯片上實現了3D幾何變換和光照計算。此后GPU進入高速發展時期,平均每隔6個月就出現性能翻番的新的GPU。
從SGI的GE到NVIDIA的GeForce,GPU經歷了20年,芯片的線寬從3μm縮小到90nm(2007年的GeForce 8800集成了6.81億晶體管),集成電路的邏輯設計能力提高幾千倍,但處理器數據通道接口帶寬僅提高十幾倍。同時對圖形處理器計算能力的需求不斷增長,出現了可編程的圖形處理器,以NVIDIA和ATI為代表的GPU技術正是適應這種趨勢。
而到目前為止,GPU已經過了六代的發展,每一代都擁有比前一代更強的性能和更完善的可編程架構。
第一代GPU(到1998為止)包括NVIDIA的TNT2,ATI的Rage和3dfx的Voodoo3。這些GPU擁有硬件三角形處理引擎,能處理具有1或2個紋理的像素,能夠大大提高CPU處理3D圖形的速度。但這一代圖形硬件沒有硬件T&L引擎,更多只是起到3D加速的作用,而且沒有被冠以“GPU”的名字。
第二代GPU(1999-2000)包括NVIDIA的Geforce256和Geforce2,ATI的Radeon7500,S3的Savage3D。它們將T&L功能從CPU分離出來,實現了高速的頂點變換。相應的圖形API即OpenGL和DirectX7都開始支持硬件頂點變換功能。這一代GPU的可配置性得到了加強,但不具備真正的可編程能力。
第三代GPU(2001)包括NVIDIA的Geforce3和Geforce4 Ti,微軟的Xbox,及ATI的Radeon8500。這一代GPU首次引入了可編程性,即頂點級操作的可操作性,允許應用程序調用一組自定義指令序列來處理頂點數據,并可以將圖形硬件的流水線作為流處理器來解釋。也正是這個時候,基于GPU的通用計算開始出現。但是片段操作階段仍然不具備可編程架構,只提供了更多的配置選項。開發人員可以利用DirectX8以及OpenGL擴展(ARB-vertex-program,NV-texture-shader 和 NV-register-combiner)來開發簡單的頂點及片段著色程序。
第四代GPU(2003)包括NVIDIA的GeforceFX(具有CineFX架構),ATI的Radeon9700。相比上一代GPU,它們的象素級和頂點級操作的可編程性得到了大大的擴展,可以包含上千條指令,訪問紋理的方式更為靈活,可以用做索引查找。最重要的是具備了對浮點格式的紋理的支持,不在限制在[0,1]范圍內,從而可以做任意數組,這對于通用計算而言是一個重要突破。DirectX9和各種OpenGL擴展(ARB-vertex-program、ARB-fragment-program、NV-vertex-program2、NV-fragment-program)可以幫助開發人員利用這種特性來完成原本只能在GPU上進行的復雜頂點像素操作;Cg語言等其他高級語言在這一代GPU開始得到應用。
第五代GPU(2004)主要以NVIDIA GeForce6800為代表。NVIDIA GeForce 6800集成了2億2千2百萬晶體管,具有超標量的16條管線架構。功能相對以前更加豐富、靈活。頂點程序可以直接訪問紋理,支持動態分支;象素著色器開始支持分支操作,包括循環和子函數調用,TMU支持64位浮點紋理的過濾和混合,ROP(象素輸出單元)支持MRT(多目標渲染)等。
第六代GPU(2006)主要以NVIDIA GeForce 7800為代表。GPU內建的CineFX 4.0引擎,做了許多架構上的改良,提高許多常見可視化運算作業的速度,藉此支持更復雜的著色效果,且仍能維持最高的影像質量。新方案在每個管線層面運用許多創新技術:
· 重新設計的頂點著色單元,縮短幾何坐標處理的設定與執行流程;
· 新開發的像素著色單元提供高出兩倍的浮點運算效率,大幅提升其它數學運算的速度,提高處理流量;
· 先進的材質運算單元結合許多新型硬件算法以及更優異的快取機制,加快過濾與混色等運算作業。
NVIDIA CineFX 4.0引擎將許多突破性繪圖技術融入頂點著色器、像素著色器、以及材質引擎的核心。藉由加快三角模型元素設定、像素著色器的關鍵數學元素、以及材質處理等方面的作業,最新引擎讓3D繪圖研發業者能達到更上一層樓效能與視覺質量。
而今年初NVIDIA發布的GeForce 8800正在引領下一代GPU的疾速風暴,G80核心擁有空前規模的6.81億晶體管,是G71的2.5倍,而且依然采用90nm工藝制造,再加上高頻率的12顆顯存,使8800GTX擁有超強的性能。
上圖就是NVIDIA為GeForce 8所設計的三大演示Demo之一的Water World,必須在Vista系統DX10模式下才能運行,通過這個Demo主要展示了G80完美的紋理渲染效果。巖石表面采用了多種變幻莫測的高精度紋理貼圖,這些貼圖還可以被流水潤濕,即便是將鏡頭放大N倍,層次感強烈的貼圖也不會出現失真的情況。這個Demo結合了G80強大的紋理渲染能力以及高效的全新各項異性過濾技術。
文章來源:中國視聽網 ©版權所有。未經許可,不得轉載。
網友評論
編輯推薦