第一代GPU(1999年以前):部分功能從CPU分離,實現(xiàn)硬件加速
GE(Geometry Engine)為代表,只能起到3D圖像處理的加速作用,不具有軟件編程特性
第二代GPU(1999年-2002年):進一步硬件加速和有限的編程性
1999年NVIDIA GeForce 256將T&L(Transform and Lighting)等功能從 CPU分離出來,實現(xiàn)了快速變換
2001年NVIDIA和ATI分別推出的GeForce3和Radeon 8500,圖形硬件的流水線被定義為流處理器,出現(xiàn)了頂點級可編程性,同時像素級也具有有限的編程性,但GPU的編程性比較有限
第三代GPU(2002年以后):方便的編程環(huán)境(如CUDA)
2002年ATI發(fā)布的Radeon 9700和2003年NVIDIA GeForce FX的推出
2006年NVIDIA與ATI分別為推出了CUDA(Computer Unified Device Architecture,統(tǒng)一計算架構)編程環(huán)境和CTM(Close To the Metal)編程環(huán)境
隨著GPU可編程性不斷增強,特別是CUDA 等編程環(huán)境的出現(xiàn),使GPU通用計算編程的復雜性大幅度降低。 由于可編程性、功能、性能不斷提升和完善,GPU已演化為一個新型可編程高性能并行計算資源。 全面開啟GPU面向通用計算的新時代已到來。
基于流處理器陣列的主流GPU結構
以NVIDIA的GeForce8800GTX和ATI的HD 2900為代表 GeForce 8800GTX包含了128個流處理器,HD 2900包含了 320個流處理器。這些流處理器可以支持浮點運算、分支處理、流水線、SIMD(Single Instruction Multiple Data,單指令流多數(shù)據(jù)流)等技術。
基于通用計算核心的GPU結構
Intel Larrabee核心是一組基于x86指令集的CPU核, CPU核拓展了x86指令集,并包含大量向量處理操作和若干專門的標量指令,同時還支持子例程以及缺頁中斷。
前者相對于后者具有更高的聚合計算性能,而后者則在可編程性上具有更大的優(yōu)勢。