衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

GPU和CPU到底有什么區別

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

顯卡的發展可以說是非常的快,人們對于視覺化上的要求也越來越高,隨著用戶對于圖像處理上面的要求不斷超出處理器的計算能力。另一方面CPU處理能力也不斷強大,但在進入3D時代后,人們發現龐大的3D圖像處理數據計算使得CPU越來越不堪重荷,并且遠遠超出其計算能力。圖形計算需求日益增多,作為計算機的顯示芯片也飛速發展。隨后人們發現顯示芯片的計算能力也無法滿足快速增長的圖形計算需求時,圖形,圖像計算等計算的功能被脫離出來單獨成為一塊芯片設計,這就是現在的圖形計算處理器——GPU(Graphics Processing Unit),也就是顯卡。

1999年8月,NVIDIA終于正式發表了具有跨世紀意義的產品NV10——GeForce 256。GeForce256是業界第一款256bit的GPU,也是全球第一個集成T&L(幾何加速/轉換)、動態光影、三角形設置/剪輯和四像素渲染等3D加速功能的圖形引擎。通過T&L技術,顯卡不再是簡單像素填充機以及多邊形生成器,它還將參與圖形的幾何計算從而將CPU從繁重的3D管道幾何運算中解放出來。在這代產品中,NVIDIA推出了兩個全新的名詞——GPU以GeForce。所以從某種意義上說,GeForce 256開創了一個全新的3D圖形時代,NVIDIA終于從追隨者走向了領導者。再到后來GeForce 3開始引出可編程特性,能將圖形硬件的流水線作為流處理器來解釋,基于GPU的通用計算也開始出現。

到了Nvidia GeForce6800這一代GPU,功能相對以前更加豐富、靈活。頂點程序可以直接訪問紋理,支持動態分支;象素著色器開始支持分支操作,包括循環和子函數調用,TMU支持64位浮點紋理的過濾和混合,ROP(象素輸出單元)支持MRT(多目標渲染)等。象素和頂點可編程性得到了大大的擴展,訪問方式更為靈活,這些對于通用計算而言更是重要突破。

真正意義的變革,是G80的出現,真正的改變隨著DX10到來發生質的改變,基于DX10統一渲染架構下,顯卡已經拋棄了以前傳統的渲染管線,取而代之的是統一流處理器,除了用作圖像渲染外,流處理器自身有著強大的運算能力。我們知道CPU主要采用串行的計算方式,由于串行運算的局限性,CPU也正在向并行計算發展,比如目前主流的雙核、四核CPU,如果我們把這個概念放到現在的GPU身上,核心的一個流處理相當于一個“核”,GPU的“核”數量已經不再停留在單位數,而是幾十甚至是上百個。下面看看G80的架構圖:

步入DX10時代,shader(流處理器)單元數量成為衡量顯卡級別的重要參數之一

G80中擁有128個單獨的ALU,因此非常適合并行計算,而且數值計算的速度遠遠優于CPU。

GPU運算能力越來越快,甚至超越CPU

早期的3D游戲,顯卡只是為屏幕上顯示像素提供一個緩存,所有的圖形處理都是由CPU單獨完成。圖形渲染適合并行處理,擅長于執行串行工作的CPU實際上難以勝任這項任務。直到1995年,PC機領域第一款GPU 3dfx Voodoo出來以后,游戲的速度、畫質才取得了一個飛躍。GPU的功能更新很迅速,平均每一年多便有新一代的GPU誕生,運算速度也越來越快。

綜上所述,GPU并行處理的理論性能要遠高于CPU。同時,我們也可以通過上面這組NVIDIA統計的近兩年來GPU與CPU之間浮點運算能力提升對比表格來看一下。

Intel Core2Due G80 Chip 運算能力比較

24 GFLOPS 520 GFLOPS GPU快21.6倍

雖然我們看到CPU和GPU在運算能力上面的巨大差距,但是我們要看看他們設計之初所負責的工作。CPU設計之初所負責的是如何把一條一條的數據處理玩,CPU的內部結構可以分為控制單元、邏輯單元和存儲單元三大部分,三個部分相互協調,便可以進行分析,判斷、運算并控制計算機各部分協調工作。其中運算器主要完成各種算術運算(如加、減、乘、除)和邏輯運算( 如邏輯加、邏輯乘和非運算); 而控制器不具有運算功能,它只是讀取各種指令,并對指令進行分析,作出相應的控制。通常,在CPU中還有若干個寄存器,它們可直接參與運算并存放運算的中間結果。CPU的工作原理就像一個工廠對產品的加工過程:進入工廠的原料(程序指令),經過物資分配部門(控制單元)的調度分配,被送往生產線(邏輯運算單元),生產出成品(處理后的數據)后,再存儲在倉庫(存儲單元)中,最后等著拿到市場上去賣(交由應用程序使用)。在這個過程中,從控制單元開始,CPU就開始了正式的工作,中間的過程是通過邏輯運算單元來進行運算處理,交到存儲單元代表工作的結束。數據從輸入設備流經內存,等待CPU的處理。

而GPU卻從最初的設計就能夠執行并行指令,從一個GPU核心收到一組多邊形數據,到完成所有處理并輸出圖像可以做到完全獨立。由于最初GPU就采用了大量的執行單元,這些執行單元可以輕松的加載并行處理,而不像CPU那樣的單線程處理。另外,現代的GPU也可以在每個指令周期執行更多的單一指令。例如,在某些特定環境下,Tesla架構可以同時執行MAD+MUL or MAD+SFU。

CPU和GPU的架構區別

可以看到GPU越來越強大,GPU為顯示圖像做了優化之外,在計算上已經超越了通用的CPU。如此強大的芯片如果只是作為顯卡就太浪費了,因此NVidia推出CUDA,讓顯卡可以用于圖像計算以外的目的,也就是超于游戲,使得GPU能夠發揮其強大的運算能力。

N年前NVIDIA發布CUDA,這是一種專門針對GPU的C語言開發工具。與以往采用圖形API接口指揮GPU完成各種運算處理功能不同,CUDA的出現使研究人員和工程師可以在熟悉的C語言環境下,自由地輸入代碼調用GPU的并行處理架構。這使得原先需要花費數天數周才能出結果的運算大大縮短到數幾小時,甚至幾分鐘之內。

CUDA是用于GPU計算的開發環境,它是一個全新的軟硬件架構,可以將GPU視為一個并行數據計算的設備,對所進行的計算進行分配和管理。在CUDA的架構中,這些計算不再像過去所謂的GPGPU架構那樣必須將計算映射到圖形API(OpenGL和Direct 3D)中,因此對于開發者來說,CUDA的開發門檻大大降低了。CUDA的GPU編程語言基于標準的C語言,因此任何有C語言基礎的用戶都很容易地開發CUDA的應用程序。

那么,如何使得CPU與GPU之間很好的進行程序之間的銜接呢?以GPGPU的概念來看,顯卡仍然需要以傳統的DirectX和OpenGL這樣的API來實現,對于編程人員來說,這樣的方法非常繁瑣,而CUDA正是以GPGPU這個概念衍生而來的新的應用程序接口,不過CUDA則提供了一個更加簡便的方案——C語言。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51192

    瀏覽量

    427297
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10905

    瀏覽量

    213030
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4777

    瀏覽量

    129360
收藏 人收藏

    評論

    相關推薦

    ARM Cortex-M0與Cortex-M0+到底有什么區別

    ARM Cortex-M0與Cortex-M0+到底有什么區別
    發表于 01-04 23:15

    同時DSP2812的源文件,命名不同,到底有什么區別?

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

    LED恒壓電源和恒流電源到底有什么區別

    LED恒壓電源和恒流電源到底有什么區別?
    發表于 12-07 14:53

    乘法器與調制器到底有什么區別

    乘法器與調制器到底有什么區別?調制函數的建模方法是什么?
    發表于 04-09 06:33

    USB 3.0和USB 2.0到底有什么區別呢?

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

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

    KEIL、uVision、MDK、KEIL C51、RealView它們到底有什么區別,又有什么聯系?
    發表于 07-01 09:08

    CPUGPU之間什么區別?

    CPUGPU之間什么區別
    發表于 11-05 07:58

    ARM和DSP到底有什么區別?

    現在在學ARM,想知道ARM和DSP到底有什么區別?為什么有些地方用DSP有些用ARM
    發表于 10-19 07:20

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

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

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

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

    智能照明和傳統照明的系統到底有什么區別

    電子發燒友網站提供智能照明和傳統照明的系統到底有什么區別資料免費下載
    發表于 11-26 06:41 ?26次下載

    GPUCPU什么區別GPU的詳細介紹

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

    gpucpu什么區別?

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

    FPC與傳統PCB到底有什么區別.zip

    FPC與傳統PCB到底有什么區別
    發表于 03-01 15:37 ?4次下載

    RTOS與Linux到底有什么區別

    很多做嵌入式開發的小伙伴都存在這樣的疑惑:RTOS與Linux到底有什么區別?
    的頭像 發表于 10-29 09:53 ?588次閱讀
    皇冠网百家乐赢钱| 百家乐玩牌| 百家乐官网多少点数算赢| 新乐园百家乐娱乐城| 百家乐官网有诈吗| 金溪县| 大发888娱乐城怎么样| 澳门百家乐园游戏| 女神百家乐官网娱乐城| 志丹县| 大发888boaicai| 线上百家乐赢钱| 百家乐官网平游戏| 太阳城百家乐官网网址--| 澳门博彩| 大发888娱乐城注册lm0| 百家乐任你博娱乐场| 鄂托克前旗| 大发娱乐场官网| 大发888真人娱乐场| 百家乐在线投注顺势法| 为什么百家乐官网玩家越来越多选择网上百家乐官网 | 全讯网sp| 百家乐彩金| 百家乐论坛在线提供| 战神百家乐官网的玩法技巧和规则| 百家乐官网桌手机套| 百家乐官网开户博彩论坛| 冠军娱乐城| bet365体育在线下载| 大发888常见断续| 太阳城会员| 百家乐棋| 新加坡百家乐规则| 全讯网ra1777| 威尼斯人娱乐网代理| 大发888娱乐城取款| 威尼斯人娱乐城图| 百家乐平注法到6568| 威尼斯人娱乐城会员开户| 水果机小游戏|