顯卡的發(fā)展可以說是非常的快,人們對于視覺化上的要求也越來越高,隨著用戶對于圖像處理上面的要求不斷超出處理器的計(jì)算能力。另一方面CPU處理能力也不斷強(qiáng)大,但在進(jìn)入3D時(shí)代后,人們發(fā)現(xiàn)龐大的3D圖像處理數(shù)據(jù)計(jì)算使得CPU越來越不堪重荷,并且遠(yuǎn)遠(yuǎn)超出其計(jì)算能力。圖形計(jì)算需求日益增多,作為計(jì)算機(jī)的顯示芯片也飛速發(fā)展。隨后人們發(fā)現(xiàn)顯示芯片的計(jì)算能力也無法滿足快速增長的圖形計(jì)算需求時(shí),圖形,圖像計(jì)算等計(jì)算的功能被脫離出來單獨(dú)成為一塊芯片設(shè)計(jì),這就是現(xiàn)在的圖形計(jì)算處理器——GPU(Graphics Processing Unit),也就是顯卡。
1999年8月,NVIDIA終于正式發(fā)表了具有跨世紀(jì)意義的產(chǎn)品NV10——GeForce 256。GeForce256是業(yè)界第一款256bit的GPU,也是全球第一個(gè)集成T&L(幾何加速/轉(zhuǎn)換)、動態(tài)光影、三角形設(shè)置/剪輯和四像素渲染等3D加速功能的圖形引擎。通過T&L技術(shù),顯卡不再是簡單像素填充機(jī)以及多邊形生成器,它還將參與圖形的幾何計(jì)算從而將CPU從繁重的3D管道幾何運(yùn)算中解放出來。在這代產(chǎn)品中,NVIDIA推出了兩個(gè)全新的名詞——GPU以GeForce。所以從某種意義上說,GeForce 256開創(chuàng)了一個(gè)全新的3D圖形時(shí)代,NVIDIA終于從追隨者走向了領(lǐng)導(dǎo)者。再到后來GeForce 3開始引出可編程特性,能將圖形硬件的流水線作為流處理器來解釋,基于GPU的通用計(jì)算也開始出現(xiàn)。
到了Nvidia GeForce6800這一代GPU,功能相對以前更加豐富、靈活。頂點(diǎn)程序可以直接訪問紋理,支持動態(tài)分支;象素著色器開始支持分支操作,包括循環(huán)和子函數(shù)調(diào)用,TMU支持64位浮點(diǎn)紋理的過濾和混合,ROP(象素輸出單元)支持MRT(多目標(biāo)渲染)等。象素和頂點(diǎn)可編程性得到了大大的擴(kuò)展,訪問方式更為靈活,這些對于通用計(jì)算而言更是重要突破。
真正意義的變革,是G80的出現(xiàn),真正的改變隨著DX10到來發(fā)生質(zhì)的改變,基于DX10統(tǒng)一渲染架構(gòu)下,顯卡已經(jīng)拋棄了以前傳統(tǒng)的渲染管線,取而代之的是統(tǒng)一流處理器,除了用作圖像渲染外,流處理器自身有著強(qiáng)大的運(yùn)算能力。我們知道CPU主要采用串行的計(jì)算方式,由于串行運(yùn)算的局限性,CPU也正在向并行計(jì)算發(fā)展,比如目前主流的雙核、四核CPU,如果我們把這個(gè)概念放到現(xiàn)在的GPU身上,核心的一個(gè)流處理相當(dāng)于一個(gè)“核”,GPU的“核”數(shù)量已經(jīng)不再停留在單位數(shù),而是幾十甚至是上百個(gè)。下面看看G80的架構(gòu)圖:
步入DX10時(shí)代,shader(流處理器)單元數(shù)量成為衡量顯卡級別的重要參數(shù)之一
G80中擁有128個(gè)單獨(dú)的ALU,因此非常適合并行計(jì)算,而且數(shù)值計(jì)算的速度遠(yuǎn)遠(yuǎn)優(yōu)于CPU。
GPU運(yùn)算能力越來越快,甚至超越CPU
早期的3D游戲,顯卡只是為屏幕上顯示像素提供一個(gè)緩存,所有的圖形處理都是由CPU單獨(dú)完成。圖形渲染適合并行處理,擅長于執(zhí)行串行工作的CPU實(shí)際上難以勝任這項(xiàng)任務(wù)。直到1995年,PC機(jī)領(lǐng)域第一款GPU 3dfx Voodoo出來以后,游戲的速度、畫質(zhì)才取得了一個(gè)飛躍。GPU的功能更新很迅速,平均每一年多便有新一代的GPU誕生,運(yùn)算速度也越來越快。
綜上所述,GPU并行處理的理論性能要遠(yuǎn)高于CPU。同時(shí),我們也可以通過上面這組NVIDIA統(tǒng)計(jì)的近兩年來GPU與CPU之間浮點(diǎn)運(yùn)算能力提升對比表格來看一下。
Intel Core2Due G80 Chip 運(yùn)算能力比較
24 GFLOPS 520 GFLOPS GPU快21.6倍
雖然我們看到CPU和GPU在運(yùn)算能力上面的巨大差距,但是我們要看看他們設(shè)計(jì)之初所負(fù)責(zé)的工作。CPU設(shè)計(jì)之初所負(fù)責(zé)的是如何把一條一條的數(shù)據(jù)處理玩,CPU的內(nèi)部結(jié)構(gòu)可以分為控制單元、邏輯單元和存儲單元三大部分,三個(gè)部分相互協(xié)調(diào),便可以進(jìn)行分析,判斷、運(yùn)算并控制計(jì)算機(jī)各部分協(xié)調(diào)工作。其中運(yùn)算器主要完成各種算術(shù)運(yùn)算(如加、減、乘、除)和邏輯運(yùn)算( 如邏輯加、邏輯乘和非運(yùn)算); 而控制器不具有運(yùn)算功能,它只是讀取各種指令,并對指令進(jìn)行分析,作出相應(yīng)的控制。通常,在CPU中還有若干個(gè)寄存器,它們可直接參與運(yùn)算并存放運(yùn)算的中間結(jié)果。CPU的工作原理就像一個(gè)工廠對產(chǎn)品的加工過程:進(jìn)入工廠的原料(程序指令),經(jīng)過物資分配部門(控制單元)的調(diào)度分配,被送往生產(chǎn)線(邏輯運(yùn)算單元),生產(chǎn)出成品(處理后的數(shù)據(jù))后,再存儲在倉庫(存儲單元)中,最后等著拿到市場上去賣(交由應(yīng)用程序使用)。在這個(gè)過程中,從控制單元開始,CPU就開始了正式的工作,中間的過程是通過邏輯運(yùn)算單元來進(jìn)行運(yùn)算處理,交到存儲單元代表工作的結(jié)束。數(shù)據(jù)從輸入設(shè)備流經(jīng)內(nèi)存,等待CPU的處理。
而GPU卻從最初的設(shè)計(jì)就能夠執(zhí)行并行指令,從一個(gè)GPU核心收到一組多邊形數(shù)據(jù),到完成所有處理并輸出圖像可以做到完全獨(dú)立。由于最初GPU就采用了大量的執(zhí)行單元,這些執(zhí)行單元可以輕松的加載并行處理,而不像CPU那樣的單線程處理。另外,現(xiàn)代的GPU也可以在每個(gè)指令周期執(zhí)行更多的單一指令。例如,在某些特定環(huán)境下,Tesla架構(gòu)可以同時(shí)執(zhí)行MAD+MUL or MAD+SFU。
CPU和GPU的架構(gòu)區(qū)別
可以看到GPU越來越強(qiáng)大,GPU為顯示圖像做了優(yōu)化之外,在計(jì)算上已經(jīng)超越了通用的CPU。如此強(qiáng)大的芯片如果只是作為顯卡就太浪費(fèi)了,因此NVidia推出CUDA,讓顯卡可以用于圖像計(jì)算以外的目的,也就是超于游戲,使得GPU能夠發(fā)揮其強(qiáng)大的運(yùn)算能力。
N年前NVIDIA發(fā)布CUDA,這是一種專門針對GPU的C語言開發(fā)工具。與以往采用圖形API接口指揮GPU完成各種運(yùn)算處理功能不同,CUDA的出現(xiàn)使研究人員和工程師可以在熟悉的C語言環(huán)境下,自由地輸入代碼調(diào)用GPU的并行處理架構(gòu)。這使得原先需要花費(fèi)數(shù)天數(shù)周才能出結(jié)果的運(yùn)算大大縮短到數(shù)幾小時(shí),甚至幾分鐘之內(nèi)。
CUDA是用于GPU計(jì)算的開發(fā)環(huán)境,它是一個(gè)全新的軟硬件架構(gòu),可以將GPU視為一個(gè)并行數(shù)據(jù)計(jì)算的設(shè)備,對所進(jìn)行的計(jì)算進(jìn)行分配和管理。在CUDA的架構(gòu)中,這些計(jì)算不再像過去所謂的GPGPU架構(gòu)那樣必須將計(jì)算映射到圖形API(OpenGL和Direct 3D)中,因此對于開發(fā)者來說,CUDA的開發(fā)門檻大大降低了。CUDA的GPU編程語言基于標(biāo)準(zhǔn)的C語言,因此任何有C語言基礎(chǔ)的用戶都很容易地開發(fā)CUDA的應(yīng)用程序。
那么,如何使得CPU與GPU之間很好的進(jìn)行程序之間的銜接呢?以GPGPU的概念來看,顯卡仍然需要以傳統(tǒng)的DirectX和OpenGL這樣的API來實(shí)現(xiàn),對于編程人員來說,這樣的方法非常繁瑣,而CUDA正是以GPGPU這個(gè)概念衍生而來的新的應(yīng)用程序接口,不過CUDA則提供了一個(gè)更加簡便的方案——C語言。
-
芯片
+關(guān)注
關(guān)注
453文章
50406瀏覽量
421833 -
cpu
+關(guān)注
關(guān)注
68文章
10825瀏覽量
211150 -
gpu
+關(guān)注
關(guān)注
28文章
4701瀏覽量
128705
發(fā)布評論請先 登錄
相關(guān)推薦
評論