標籤: 暫無標籤

GPU英文全稱Graphic Processing Unit,中文翻譯為「圖形處理器」。GPU是相對於CPU的一個概念,由於在現代的計算機中(特別是家用系統,遊戲的發燒友)圖形的處理變得越來越重要,需要一個專門的圖形的核心處理器。

1 gpu -基本概述

gpugpu

GPU是顯示卡的「心臟」,也就相當於CPU在電腦中的作用,它決定了該顯卡的檔次和大部分性能,同時也是2D顯示卡和3D顯示卡的區別依據。2D顯示晶元在處理3D圖像和特效時主要依賴CPU的處理能力,稱為「軟加速」。3D顯示晶元是將三維圖像和特效處理功能集中在顯示晶元內,也即所謂的「硬體加速」功能。顯示晶元通常是顯示卡上最大的晶元(也是引腳最多的)。現在市場上的顯卡大多採用NVIDIA和ATI兩家公司的圖形處理晶元。

NVIDIA公司在1999年發布GeForce256圖形處理晶元時首先提出GPU的概念。GPU使顯卡減少了對CPU的依賴,並進行部分原本CPU的工作,尤其是在3D圖形處理時。GPU所採用的核心技術有硬體T&L、立方環境材質貼圖和頂點混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位渲染引擎等,而硬體T&L技術可以說是GPU的標誌。

GPU能夠從硬體上支持T&L(TransformandLighting,多邊形轉換與光源處理)的顯示晶元,因為T&L是3D渲染中的一個重要部分,其作用是計算多邊形的3D位置和處理動態光線效果,也可以稱為「幾何處理」。一個好的T&L單元,可以提供細緻的3D物體和高級的光線特效;只不過大多數PC中,T&L的大部分運算是交由CPU處理的(這就也就是所謂的軟體T&L),由於CPU的任務繁多,除了T&L之外,還要做內存管理、輸入響應等非3D圖形處理工作,因此在實際運算的時候性能會大打折扣,常常出現顯卡等待CPU數據的情況,其運算速度遠跟不上今天複雜三維遊戲的要求。即使CPU的工作頻率超過1GHz或更高,對它的幫助也不大,由於這是PC本身設計造成的問題,與CPU的速度無太大關係。

gpugpu

GPU的作用

GPU是顯示卡的「大腦」,它決定了該顯卡的檔次和大部分性能,同時也是2D顯示卡和3D顯示卡的區別依據。2D顯示晶元在處理3D圖像和特效時主要依賴CPU的處理能力,稱為「軟加速」。3D顯示晶元是將三維圖像和特效處理功能集中在顯示晶元內,也即所謂的「硬體加速」功能。顯示晶元通常是顯示卡上最大的晶元(也是引腳最多的)。現在市場上的顯卡大多採用NVIDIA和 AMD-ATI 兩家公司的圖形處理晶元。   今天,GPU已經不再局限於3D圖形處理了,GPU通用計算技術發展已經引起業界不少的關注,事實也證明在浮點運算、并行計算等部分計算方面,GPU可以提供數十倍乃至於上百倍於CPU的性能,如此強悍的「新星」難免會讓CPU廠商老大英特爾為未來而緊張, NVIDIA和英特爾也經常為CPU和GPU誰更重要而展開口水戰。GPU通用計算方面的標準目前有 OPEN CL、CUDA、ATI STREAM。其中,OpenCL(全稱Open Computing Language,開放運算語言)是第一個面向異構系統通用目的并行編程的開放式、免費標準,也是一個統一的編程環境,便於軟體開發人員為高性能計算伺服器、桌面計算系統、手持設備編寫高效輕便的代碼,而且廣泛適用於多核心處理器(CPU)、圖形處理器(GPU)、Cell類型架構以及數字信號處理器(DSP)等其他并行處理器,在遊戲、娛樂、科研、醫療等各種領域都有廣闊的發展前景,AMD-ATI、NVIDIA現在的產品都支持OPEN CL。   1985年 8月20日 ATi公司成立,同年10月ATi使用ASIC技術開發出了第一款圖形晶元和圖形卡,1992年 4月 ATi發布了 Mach32 圖形卡集成了圖形加速功能,1998年 4月 ATi被IDC評選為圖形晶元工業的市場領導者,但那時候這種晶元還沒有GPU的稱號,很長的一段時間ATI都是把圖形處理器稱為VPU,直到AMD收購ATI之後其圖形晶元才正式採用GPU的名字。   NVIDIA公司在1999年發布GeForce 256圖形處理晶元時首先提出GPU的概念。從此NV顯卡的芯就用這個新名字GPU來稱呼。GPU使顯卡減少了對CPU的依賴,並進行部分原本CPU的工作,尤其是在3D圖形處理時。GPU所採用的核心技術有硬體T&L、立方環境材質貼圖和頂點混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位渲染引擎等,而硬體T&L技術可以說是GPU的標誌。

GPU的工作原理

簡單說GPU就是能夠從硬體上支持T&L(Transform and Lighting,多邊形轉換與光源處理)的顯示晶元,因為T&L是3D渲染中的一個重要部分,其作用是計算多邊形的3D位置和處理動態光線效果,也可以稱為「幾何處理」。一個好的T&L單元,可以提供細緻的3D物體和高級的光線特效;只不過大多數PC中,T&L的大部分運算是交由CPU處理的(這就也就是所謂的軟體T&L),由於CPU的任務繁多,除了T&L之外,還要做內存管理、輸入響應等非3D圖形處理工作,因此在實際運算的時候性能會大打折扣,常常出現顯卡等待CPU數據的情況,其運算速度遠跟不上今天複雜三維遊戲的要求。即使CPU的工作頻率超過1GHz或更高,對它的幫助也不大,由於這是PC本身設計造成的問題,與CPU的速度無太大關係。

2 gpu -區別DSP

gpugpu

GPU在幾個主要方面有別於DSP架構。其所有計算均使用浮點演算法,而且目前還沒有位或整數運算指令。此外,由於GPU專為圖像處理設計,因此存儲系統實際上是一個二維的分段存儲空間,包括一個區段號(從中讀取圖像)和二維地址(圖像中的X、Y坐標)。此外,沒有任何間接寫指令。輸出寫地址由光柵處理器確定,而且不能由程序改變。這對於自然分佈在存儲器之中的演算法而言是極大的挑戰。最後一點,不同碎片的處理過程間不允許通信。實際上,碎片處理器是一個SIMD數據并行執行單元,在所有碎片中獨立執行代碼。

儘管有上述約束,但是GPU還是可以有效地執行多種運算,從線性代數和信號處理到數值模擬。雖然概念簡單,但新用戶在使用GPU計算時還是會感到迷惑,因為GPU需要專有的圖形知識。這種情況下,一些軟體工具可以提供幫助。兩種高級描影語言CG和HLSL能夠讓用戶編寫類似C的代碼,隨後編譯成碎片程序彙編語言。Brook是專為GPU計算設計,且不需要圖形知識的高級語言。因此對第一次使用GPU進行開發的工作人員而言,它可以算是一個很好的起點。Brook是C語言的延伸,整合了可以直接映射到GPU的簡單數據并行編程構造。

經GPU存儲和操作的數據被形象地比喻成「流」(stream),類似於標準C中的數組。核心(Kernel)是在流上操作的函數。在一系列輸入流上調用一個核心函數意味著在流元素上實施了隱含的循環,即對每一個流元素調用核心體。Brook還提供了約簡機制,例如對一個流中所有的元素進行和、最大值或乘積計算。Brook還完全隱藏了圖形API的所有細節,並把GPU中類似二維存儲器系統這樣許多用戶不熟悉的部分進行了虛擬化處理。用Brook編寫的應用程序包括線性代數子程序、快速傅立葉轉換、光線追蹤和圖像處理。利用ATI的X800XT和Nvidia的GeForce6800Ultra型GPU,在相同高速緩存、SSE彙編優化Pentium4執行條件下,許多此類應用的速度提升高達7倍之多。

對GPU計算感興趣的用戶努力將演算法映射到圖形基本元素。類似Brook這樣的高級編程語言的問世使編程新手也能夠很容易就掌握GPU的性能優勢。訪問GPU計算功能的便利性也使得GPU的演變將繼續下去,不僅僅作為繪製引擎,而是會成為個人電腦的主要計算引擎。

3 gpu -軟體識別

gpugpu

處理器識別工具CPU-Z,其知名度和必備度無需贅言。硬體網站TechPowerUp.com現在又提供了一個類似的工具,用於顯卡識別的「GPU-Z」。這是Tech Power UpGPU-Z發布的第二個版本為0.0.2,體積僅有334KB。

GPU的競爭遠比CPU的競爭來得激烈。通用PC的CPU就只有英特爾和AMD兩家大廠。而在GPU方面領先的是N記和A記兩家廠商,但能生產中低端產品的還有英特爾、3S等好幾家廠商。它們的產品雖然不如前兩家,但在很多應用方面也能滿足用戶的需要,所以N記和A記只有拚命往前跑才不會死掉。CPU廠商沒有採用GPU的先進工藝是因為CPU廠商都有自己投資的生產線,不可能一下把原來的生產線都淘汰了上新的生產線,那樣做可能連當初投入的資金都難以收回。而GPU廠商由於種種原因,一般都是自己設計由別人代工的,比如找台積電代工。代工廠商為了能接到業務,只有不停升級自己的生產設備,這樣才能生存下來。所以造成以上原因。

CPU除了處理遊戲的AI,情節等方面的數據外,對於有些圖像方面也是由它完成的。當微軟每次發布新的DX時,並不是每款GPU都能支持DX新的特性,所以有些圖像方面的任務還得由CPU來完成。還有有些特性比如重力特性以前是由CPU來完成,現在有些GPU也能支持了,這些任務就由GPU來完成了。

GPU相當於專用於圖像處理的CPU,正因為它專,所以它強,在處理圖像時它的工作效率遠高於CPU,但是CPU是通用的數據處理器,在處理數值計算時是它的強項,它能完成的任務是GPU無法代替的,所以不能用GPU來代替CPU。

AMD收購了A記顯卡晶元的設計廠商,AMD看到以後CPU和GPU只有走一條融合的道路才能地競爭中佔得先機。CPU和GPU如何配合默契才能最大地提高工作效率是AMD現在考慮的問題,也是英特爾的問題。

4 gpu -Intel構架

gpugpu

Intel官方2007年第一次披露了其可編程多核心架構產品「Larrabee」的發布進程,這可以看作是Intel重返獨立GPU市場的第一款產品。IntelCTOJustinRattner,Larrabee隸屬於其萬億次運算項目,也將是Intel的第一款實用級萬億次運算處理器,其處理能力將「大大超過」一萬億次浮點每秒,定於2010年推出,但有可能在2009年就提前露面。

Intel路線圖,2010年也將是32nmGesher架構處理器發布的時間,而採用45nm工藝的Larrabee很可能與之同時現身,業界也能更好地直接對比二者的差異。此外,NVIDIA的下一代圖形晶元G92也宣稱具備萬億次運算能力,發布時間應該會早於Larrabee。

Intel正在開發一種名為「Ct」的編程語言,Ct基於C和C++語言,可以很好地處理大規模複雜并行運算,將繁重的工作任務很好地分配到各個處理核心上。無論是在編譯期間還是在運行期間,Ct代碼都為多核心進行了優化,因此能大大簡化開發人員為多核心架構編程的難度,使之彷彿是在為一個核心編寫程序。

Intel計劃在不久後向開源社區發布一個Ct的預覽版,而且Intel正在處理有關法律問題,爭取實現整個項目的開源。Larrabee在首發時可能會有24和32個核心,2008年升級到48個。

gpugpu

GPU構架在現代計算中的實力,Intel未來的超多核處理器就是採用了類似GPU的構架。超多核處理器核心面積非常小,約10平方毫米,耗電量僅6.25W,單線程的運算能力也僅僅為處理器的三分之一,但它擁有4個線程,還是16向量的FPU浮點運算單元。未來,若在處理器中集成多個如此的輕量化核心,則可以在同樣的核心面積、同樣的耗電量下,得到數十數百倍的性能提升。Intel還為此種架構設計了可以動態為各個核心分配的大容量緩存,以及一個神秘的「固定功能單元」。很顯然,這樣的架構同GPU的多個著色器、管線、流處理單元的設計非常相似。

Carmean還比較了CPU和GPU各自在多個方面的優缺點,在線性代數的計算方面(圖表的左邊),GPU較CPU領先。而從圖片和視頻的處理,一直到分類、解析幾何等等的用途上,CPU逐漸找到了自己的優勢。演算法越是無序CPU就有優勢,而計算需求更加有序,就是GPU的優勢所在。

所以CPU和GPU之間就是誰能夠奪取開發者們,如果程序開發者編寫更多整齊規律的演算法程序,使用GPU就更有利,而CPU廠商則認為越無規律越好。不過兩者的差距也在逐漸縮小,最後勝出的可能需要最好的整合才行。

上一篇[鄒蕾]    下一篇 [色溫]

相關評論

同義詞:暫無同義詞