0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GPU和CPU到底有什么區(qū)別

Wildesbeast ? 來源:今日頭條 ? 作者:讀樂樂傳送門 ? 2020-01-26 09:26 ? 次閱讀

顯卡的發(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語言。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    455

    文章

    50818

    瀏覽量

    423729
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211799
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128955
收藏 人收藏

    評論

    相關(guān)推薦

    ARM Cortex-M0與Cortex-M0+到底有什么區(qū)別

    ARM Cortex-M0與Cortex-M0+到底有什么區(qū)別
    發(fā)表于 01-04 23:15

    同時(shí)DSP2812的源文件,命名不同,到底有什么區(qū)別?

    同時(shí)DSP2812的源文件,命名不同,到底有什么區(qū)別?新建DSP工程時(shí),到底用那種文件呢?講究嗎?
    發(fā)表于 04-07 12:57

    LED恒壓電源和恒流電源到底有什么區(qū)別?

    LED恒壓電源和恒流電源到底有什么區(qū)別
    發(fā)表于 12-07 14:53

    乘法器與調(diào)制器到底有什么區(qū)別?

    乘法器與調(diào)制器到底有什么區(qū)別?調(diào)制函數(shù)的建模方法是什么?
    發(fā)表于 04-09 06:33

    USB 3.0和USB 2.0到底有什么區(qū)別呢?

    圖文講解USB 3.0和USB 2.0到底有什么區(qū)別呢?
    發(fā)表于 05-19 07:12

    KEIL、uVision、MDK、KEIL C51、RealView它們到底有什么區(qū)別?

    KEIL、uVision、MDK、KEIL C51、RealView它們到底有什么區(qū)別,又有什么聯(lián)系?
    發(fā)表于 07-01 09:08

    CPUGPU之間什么區(qū)別?

    CPUGPU之間什么區(qū)別?
    發(fā)表于 11-05 07:58

    ARM和DSP到底有什么區(qū)別?

    現(xiàn)在在學(xué)ARM,想知道ARM和DSP到底有什么區(qū)別?為什么有些地方用DSP有些用ARM
    發(fā)表于 10-19 07:20

    CPUGPU與TPU是如何工作的到底有什么區(qū)別

    很多讀者可能分不清楚 CPU、GPU 和 TPU 之間的區(qū)別,因此 Google Cloud 將在這篇博客中簡要介紹它們之間的區(qū)別,并討論為什么 TPU 能加速深度學(xué)習(xí)。
    的頭像 發(fā)表于 01-20 11:57 ?5647次閱讀

    CAN通訊中摩托羅拉格式與英特爾格式到底有什么區(qū)別

    本文檔的主要內(nèi)容詳細(xì)介紹的是CAN通訊中摩托羅拉格式與英特爾格式到底有什么區(qū)別。
    發(fā)表于 03-03 08:00 ?23次下載
    CAN通訊中摩托羅拉格式與英特爾格式<b class='flag-5'>到底有</b><b class='flag-5'>什么區(qū)別</b>

    智能照明和傳統(tǒng)照明的系統(tǒng)到底有什么區(qū)別

    電子發(fā)燒友網(wǎng)站提供智能照明和傳統(tǒng)照明的系統(tǒng)到底有什么區(qū)別資料免費(fèi)下載
    發(fā)表于 11-26 06:41 ?26次下載

    GPUCPU什么區(qū)別GPU的詳細(xì)介紹

    對于GPU,大家想必也十分熟悉。但是,大家真的了解GPU嗎?譬如,GPU和顯卡是同一個(gè)東西嗎?CPUGPU
    的頭像 發(fā)表于 11-28 11:23 ?2.3w次閱讀

    gpucpu什么區(qū)別

    gpucpu什么區(qū)別? GPUCPU是電腦中兩個(gè)重要的計(jì)算器件。如果想要了解這兩個(gè)設(shè)備的
    的頭像 發(fā)表于 08-09 16:15 ?1.3w次閱讀

    FPC與傳統(tǒng)PCB到底有什么區(qū)別.zip

    FPC與傳統(tǒng)PCB到底有什么區(qū)別
    發(fā)表于 03-01 15:37 ?4次下載

    RTOS與Linux到底有什么區(qū)別

    很多做嵌入式開發(fā)的小伙伴都存在這樣的疑惑:RTOS與Linux到底有什么區(qū)別?
    的頭像 發(fā)表于 10-29 09:53 ?449次閱讀