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

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

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

GPU和CPU芯片的區(qū)別

h1654155973.6121 ? 來(lái)源:fqj ? 2019-05-10 09:04 ? 次閱讀

CPUGPU之所以大不相同,是由于其設(shè)計(jì)目標(biāo)的不同,它們分別針對(duì)了兩種不同的應(yīng)用場(chǎng)景。CPU需要很強(qiáng)的通用性來(lái)處理各種不同的數(shù)據(jù)類型,同時(shí)又要邏輯判斷又會(huì)引入大量的分支跳轉(zhuǎn)和中斷的處理。這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜。而GPU面對(duì)的則是類型高度統(tǒng)一的、相互無(wú)依賴的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計(jì)算環(huán)境。

這個(gè)視頻,非常具象的表述了CPU和GPU在圖像處理時(shí)的不同的原理和方法??吹紾PU的模型噴射出的一瞬間,你就秒懂了。

根據(jù)上面視頻中的比喻,你應(yīng)該很清楚CPU和GPU就呈現(xiàn)出非常不同的架構(gòu):

綠色的是計(jì)算單元

橙紅色的是存儲(chǔ)單元

橙黃色的是控制單元

GPU采用了數(shù)量眾多的計(jì)算單元和超長(zhǎng)的流水線,但只有非常簡(jiǎn)單的控制邏輯并省去了Cache。而CPU不僅被Cache占據(jù)了大量空間,而且還有有復(fù)雜的控制邏輯和諸多優(yōu)化電路,相比之下計(jì)算能力只是CPU很小的一部分。

GPU 如何加快軟件應(yīng)用程序的運(yùn)行速度

GPU 加速計(jì)算可以提供非凡的應(yīng)用程序性能,能將應(yīng)用程序計(jì)算密集部分的工作負(fù)載轉(zhuǎn)移到 GPU,同時(shí)仍由 CPU 運(yùn)行其余程序代碼。從用戶的角度來(lái)看,應(yīng)用程序的運(yùn)行速度明顯加快.

GPU 與 CPU 性能比較

理解 GPU 和 CPU 之間區(qū)別的一種簡(jiǎn)單方式是比較它們?nèi)绾翁幚砣蝿?wù)。CPU 由專為順序串行處理而優(yōu)化的幾個(gè)核心組成,而 GPU 則擁有一個(gè)由數(shù)以千計(jì)的更小、更高效的核心(專為同時(shí)處理多重任務(wù)而設(shè)計(jì))組成的大規(guī)模并行計(jì)算架構(gòu)。

從上圖可以看出:

Cache, local memory:CPU > GPU

Threads(線程數(shù)): GPU > CPU

Registers: GPU > CPU

SIMD Unit(單指令多數(shù)據(jù)流,以同步方式,在同一時(shí)間內(nèi)執(zhí)行同一條指令): GPU > CPU。

CPU 基于低延時(shí)的設(shè)計(jì):

GPU和CPU芯片的區(qū)別

CPU有強(qiáng)大的ALU(算術(shù)運(yùn)算單元),它可以在很少的時(shí)鐘周期內(nèi)完成算術(shù)計(jì)算。

當(dāng)今的CPU可以達(dá)到64bit 雙精度。執(zhí)行雙精度浮點(diǎn)源算的加法和乘法只需要1~3個(gè)時(shí)鐘周期。

CPU的時(shí)鐘周期的頻率是非常高的,達(dá)到1.532~3gigahertz(千兆HZ, 10的9次方).

大的緩存也可以降低延時(shí)。保存很多的數(shù)據(jù)放在緩存里面,當(dāng)需要訪問(wèn)的這些數(shù)據(jù),只要在之前訪問(wèn)過(guò)的,如今直接在緩存里面取即可。

復(fù)雜的邏輯控制單元。當(dāng)程序含有多個(gè)分支的時(shí)候,它通過(guò)提供分支預(yù)測(cè)的能力來(lái)降低延時(shí)。

數(shù)據(jù)轉(zhuǎn)發(fā)。當(dāng)一些指令依賴前面的指令結(jié)果時(shí),數(shù)據(jù)轉(zhuǎn)發(fā)的邏輯控制單元決定這些指令在pipeline中的位置并且盡可能快的轉(zhuǎn)發(fā)一個(gè)指令的結(jié)果給后續(xù)的指令。這些動(dòng)作需要很多的對(duì)比電路單元和轉(zhuǎn)發(fā)電路單元。

GPU是基于大的吞吐量設(shè)計(jì)

GPU和CPU芯片的區(qū)別

GPU的特點(diǎn)是有很多的ALU和很少的cache. 緩存的目的不是保存后面需要訪問(wèn)的數(shù)據(jù)的,這點(diǎn)和CPU不同,而是為thread提高服務(wù)的。如果有很多線程需要訪問(wèn)同一個(gè)相同的數(shù)據(jù),緩存會(huì)合并這些訪問(wèn),然后再去訪問(wèn)dram(因?yàn)樾枰L問(wèn)的數(shù)據(jù)保存在dram中而不是cache里面),獲取數(shù)據(jù)后cache會(huì)轉(zhuǎn)發(fā)這個(gè)數(shù)據(jù)給對(duì)應(yīng)的線程,這個(gè)時(shí)候是數(shù)據(jù)轉(zhuǎn)發(fā)的角色。但是由于需要訪問(wèn)dram,自然會(huì)帶來(lái)延時(shí)的問(wèn)題。

GPU的控制單元(左邊黃色區(qū)域塊)可以把多個(gè)的訪問(wèn)合并成少的訪問(wèn)。

GPU的雖然有dram延時(shí),卻有非常多的ALU和非常多的thread. 為啦平衡內(nèi)存延時(shí)的問(wèn)題,我們可以中充分利用多的ALU的特性達(dá)到一個(gè)非常大的吞吐量的效果。盡可能多的分配多的Threads.通常來(lái)看GPU ALU會(huì)有非常重的pipeline就是因?yàn)檫@樣。

所以與CPU擅長(zhǎng)邏輯控制,串行的運(yùn)算。和通用類型數(shù)據(jù)運(yùn)算不同,GPU擅長(zhǎng)的是大規(guī)模并發(fā)計(jì)算,這也正是密碼破解等所需要的。所以GPU除了圖像處理,也越來(lái)越多的參與到計(jì)算當(dāng)中來(lái)。

GPU的工作大部分就是這樣,計(jì)算量大,但沒(méi)什么技術(shù)含量,而且要重復(fù)很多很多次。就像你有個(gè)工作需要算幾億次一百以內(nèi)加減乘除一樣,最好的辦法就是雇上幾十個(gè)小學(xué)生一起算,一人算一部分,反正這些計(jì)算也沒(méi)什么技術(shù)含量,純粹體力活而已。而CPU就像老教授,積分微分都會(huì)算,就是工資高,一個(gè)老教授資頂二十個(gè)小學(xué)生,你要是富士康你雇哪個(gè)?GPU就是這樣,用很多簡(jiǎn)單的計(jì)算單元去完成大量的計(jì)算任務(wù),純粹的人海戰(zhàn)術(shù)。這種策略基于一個(gè)前提,就是小學(xué)生A和小學(xué)生B的工作沒(méi)有什么依賴性,是互相獨(dú)立的。很多涉及到大量計(jì)算的問(wèn)題基本都有這種特性,比如你說(shuō)的破解密碼,挖礦和很多圖形學(xué)的計(jì)算。這些計(jì)算可以分解為多個(gè)相同的簡(jiǎn)單小任務(wù),每個(gè)任務(wù)就可以分給一個(gè)小學(xué)生去做。但還有一些任務(wù)涉及到“流”的問(wèn)題。比如你去相親,雙方看著順眼才能繼續(xù)發(fā)展??偛荒苣氵@邊還沒(méi)見(jiàn)面呢,那邊找人把證都給領(lǐng)了。這種比較復(fù)雜的問(wèn)題都是CPU來(lái)做的。

總而言之,CPU和GPU因?yàn)樽畛跤脕?lái)處理的任務(wù)就不同,所以設(shè)計(jì)上有不小的區(qū)別。而某些任務(wù)和GPU最初用來(lái)解決的問(wèn)題比較相似,所以用GPU來(lái)算了。GPU的運(yùn)算速度取決于雇了多少小學(xué)生,CPU的運(yùn)算速度取決于請(qǐng)了多么厲害的教授。教授處理復(fù)雜任務(wù)的能力是碾壓小學(xué)生的,但是對(duì)于沒(méi)那么復(fù)雜的任務(wù),還是頂不住人多。當(dāng)然現(xiàn)在的GPU也能做一些稍微復(fù)雜的工作了,相當(dāng)于升級(jí)成初中生高中生的水平。但還需要CPU來(lái)把數(shù)據(jù)喂到嘴邊才能開(kāi)始干活,究竟還是靠CPU來(lái)管的。

什么類型的程序適合在GPU上運(yùn)行?

(1)計(jì)算密集型的程序。所謂計(jì)算密集型(Compute-intensive)的程序,就是其大部分運(yùn)行時(shí)間花在了寄存器運(yùn)算上,寄存器的速度和處理器的速度相當(dāng),從寄存器讀寫數(shù)據(jù)幾乎沒(méi)有延時(shí)??梢宰鲆幌聦?duì)比,讀內(nèi)存的延遲大概是幾百個(gè)時(shí)鐘周期;讀硬盤的速度就不說(shuō)了,即便是SSD, 也實(shí)在是太慢了。

(2)易于并行的程序。GPU其實(shí)是一種SIMD(Single Instruction Multiple Data)架構(gòu), 他有成百上千個(gè)核,每一個(gè)核在同一時(shí)間最好能做同樣的事情。

CPU會(huì)利用較高的主頻、cache、分支預(yù)測(cè)等技術(shù),使處理每條指令所需的時(shí)間盡可能少,從而減低具有復(fù)雜跳轉(zhuǎn)分支程序執(zhí)行所需的時(shí)間。GPU則通過(guò)數(shù)量喪心病狂的流處理器實(shí)現(xiàn)大量線程并行,使同時(shí)走一條指令的數(shù)據(jù)變多,從而提高數(shù)據(jù)的吞吐量。

舉個(gè)GPU通用計(jì)算教材上比較常見(jiàn)的例子,一個(gè)向量相加的程序,你可以讓CPU跑一個(gè)循環(huán),每個(gè)循環(huán)對(duì)一個(gè)分量做加法,也可以讓GPU同時(shí)開(kāi)大量線程,每個(gè)并行的線程對(duì)應(yīng)一個(gè)分量的相加。CPU跑循環(huán)的時(shí)候每條指令所需時(shí)間一般低于GPU,但GPU因?yàn)榭梢蚤_(kāi)大量的線程并行地跑,具有SIMD(準(zhǔn)確地說(shuō)是SIMT)的優(yōu)勢(shì)。

再以挖BIT幣舉例:

比特幣的挖礦和節(jié)點(diǎn)軟件是基于P2P網(wǎng)絡(luò)、數(shù)字簽名、密碼學(xué)證據(jù)來(lái)發(fā)起和驗(yàn)證交易的。節(jié)點(diǎn)向網(wǎng)絡(luò)廣播交易,這些廣播出來(lái)的|中國(guó)半導(dǎo)體論壇|在經(jīng)過(guò)礦工的驗(yàn)證后,礦工用自己的工作證明結(jié)果來(lái)表達(dá)確認(rèn),確認(rèn)后的交易會(huì)被打包到數(shù)據(jù)塊中,數(shù)據(jù)塊會(huì)串起來(lái)形成連續(xù)的數(shù)據(jù)塊鏈。

每一個(gè)比特幣的節(jié)點(diǎn)都會(huì)收集所有尚未確認(rèn)的交易,并將其歸集到一個(gè)數(shù)據(jù)塊中,這個(gè)數(shù)據(jù)塊會(huì)和前面一個(gè)數(shù)據(jù)塊集成在一起。礦工節(jié)點(diǎn)會(huì)附加一個(gè)隨機(jī)調(diào)整數(shù),并計(jì)算前一個(gè)數(shù)據(jù)塊的SHA-256哈希運(yùn)算值。挖礦節(jié)點(diǎn)不斷重復(fù)進(jìn)行嘗試,直到它找到的隨機(jī)調(diào)整數(shù)使得產(chǎn)生的哈希值低于某個(gè)特定的目標(biāo)。

GPU和CPU芯片的區(qū)別

如果希望判定一個(gè)人提供的的信息是本著正常使用,具備一定價(jià)值的。那么我們傾向認(rèn)為提供這個(gè)信息的人,愿意為此付出一定工作量來(lái)證明他的誠(chéng)實(shí)。假如有一種機(jī)制,能夠容易的證明提供信息的人為此付出了一定工作量,那么此信息是可以接受,并被認(rèn)為合理的。

比如,我收郵件的時(shí)候,做了一個(gè)規(guī)定:“把郵件內(nèi)容數(shù)據(jù),加入一個(gè)隨機(jī)數(shù),求一個(gè)sha256散列數(shù)值。這個(gè)散列值一共256bit 。前20bit 必須都為0”.

這樣,要給我發(fā)信的人,就必須反復(fù)嘗試一個(gè)隨機(jī)數(shù),以保證郵件內(nèi)容數(shù)據(jù)加上這個(gè)隨機(jī)數(shù),能夠產(chǎn)生sha256 的結(jié)果------前20bit 都是0.(這個(gè)計(jì)算過(guò)程本身毫無(wú)意義)。如何產(chǎn)生出指定要求的整數(shù)?完全靠運(yùn)氣和CPU 運(yùn)算時(shí)間。這就是一個(gè)工作量。工作本身毫無(wú)意義。但是如果誰(shuí)愿意付出這個(gè)工作量,就意味著他給我的郵件多半是有意義的。這就叫“工作量證明”。也就是意味著這個(gè)人很有可能是誠(chéng)實(shí)的。這里把郵件換成Block也是等效的。這個(gè)機(jī)制被廣泛用于防止垃圾郵件等。因?yàn)槿喊l(fā)垃圾郵件的人,不可能有那么多時(shí)間去給每個(gè)人算一個(gè)毫無(wú)意義的數(shù)字,浪費(fèi)時(shí)間,降低發(fā)垃圾郵件的效率。挖礦的目的是確認(rèn)交易。尋找隨機(jī)數(shù)的過(guò)程是為了保證每一個(gè)挖礦節(jié)點(diǎn)不會(huì)往外發(fā)送垃圾block。發(fā)送的BlockId是這個(gè)Block的Hash,它必然是首20bit為0的。

可以預(yù)見(jiàn)的是對(duì)于比特幣的Hash計(jì)算而言,它幾乎都是獨(dú)立并發(fā)的整數(shù)計(jì)算,GPU簡(jiǎn)直就是為了這個(gè)而設(shè)計(jì)生產(chǎn)出來(lái)的。相比較CPU可憐的2-8線程和長(zhǎng)度驚人的控制判斷和調(diào)度分支,GPU可以輕易的進(jìn)行數(shù)百個(gè)線程的整數(shù)計(jì)算并發(fā)(無(wú)需任何判斷的無(wú)腦暴力破解乃是A卡的強(qiáng)項(xiàng))。

OpenCL可以利用GPU在片的大量unified shader都可以用來(lái)作為整數(shù)計(jì)算的資源。而A卡的shader(流處理器)資源又是N的數(shù)倍(同等級(jí)別的卡)。

比特幣早期通過(guò)CPU來(lái)獲取,而隨著GPU通用計(jì)算的優(yōu)勢(shì)不斷顯現(xiàn)以及GPU速度的不斷發(fā)展,礦工們逐漸開(kāi)始使用GPU取代CPU進(jìn)行挖礦。前面我們已經(jīng)介紹,比特幣挖礦采用的是SHA-256哈希值運(yùn)算,這種算法會(huì)進(jìn)行大量的32位整數(shù)循環(huán)右移運(yùn)算。有趣的是,這種算法操作在AMD GPU里可以通過(guò)單一硬件指令實(shí)現(xiàn),而在NVIDIA GPU里則需要三次硬件指令來(lái)模擬,僅這一條就為AMD GPU帶來(lái)額外的1.7倍的運(yùn)算效率優(yōu)勢(shì)。憑借這種優(yōu)勢(shì),AMD GPU因此深受廣大礦工青睞。

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

    關(guān)注

    68

    文章

    10863

    瀏覽量

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

    關(guān)注

    28

    文章

    4740

    瀏覽量

    128951

原文標(biāo)題:GPU和CPU芯片區(qū)別:為何要用GPU挖礦?

文章出處:【微信號(hào):xinlun99,微信公眾號(hào):芯論】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    GPUCPU區(qū)別是什么

    GPU是如何工作的GPU與DSP區(qū)別GPUCPU區(qū)別是什么
    發(fā)表于 01-05 06:15

    請(qǐng)問(wèn)GPU與DSP、CPU區(qū)別在哪里?

    GPU工作原理是什么?GPU主要作用有哪些?GPU與DSP區(qū)別在哪里?GPUCPU
    發(fā)表于 04-19 09:16

    ai芯片gpu區(qū)別

    ai芯片gpu區(qū)別▌車載芯片的發(fā)展趨勢(shì)(CPU-GPU-FPGA-ASIC)過(guò)去汽車電子芯片
    發(fā)表于 07-27 07:29

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

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

    什么是GPU?GPU的主要作用和工作原理以及GPUCPU區(qū)別

    GPU的作用、原理及與CPU、DSP的區(qū)別 GPU是顯示卡的心臟,也就相當(dāng)于CPU在電腦中的作用,它決定了該顯卡的檔次和大部分性能,同時(shí)也
    發(fā)表于 09-13 09:43 ?13次下載

    一文了解CPUGPU和TPU的區(qū)別

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

    一文知道CPUGPU區(qū)別

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

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

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

    CPUGPU區(qū)別有哪些

    CPUGPU區(qū)別有哪些呢?接下來(lái)簡(jiǎn)單給大家介紹一下關(guān)于GPUCPU區(qū)別。
    的頭像 發(fā)表于 01-06 17:07 ?3.1w次閱讀

    恒訊科技分析:GPU是什么和CPU區(qū)別

    GPU是什么和CPU區(qū)別?CPU是計(jì)算機(jī)的中央處理單元,可以以最小的延遲執(zhí)行算術(shù)和邏輯運(yùn)算。相比之下,GPU是一種嵌入式或外部圖形處理單元
    的頭像 發(fā)表于 05-25 17:23 ?2638次閱讀

    CPUGPU之間的主要區(qū)別

    以下是以表格形式提供的 CPUGPU 之間的一些區(qū)別
    發(fā)表于 06-06 15:51 ?850次閱讀

    gpucpu有什么區(qū)別?

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

    cpu gpu npu的區(qū)別 NPU與GPU哪個(gè)好?gpu是什么意思?

    cpu gpu npu的區(qū)別 NPU與GPU哪個(gè)好?gpu是什么意思? 在當(dāng)今數(shù)字化和人工智能的時(shí)代,高效的計(jì)算能力是現(xiàn)代技術(shù)發(fā)展的重要基礎(chǔ)
    的頭像 發(fā)表于 08-27 17:03 ?1w次閱讀

    CPUGPU之間的主要區(qū)別

    以下是以表格形式提供的CPUGPU之間的一些區(qū)別:中央處理器圖形處理器CPU代表中央處理器。GPU代表圖形處理單元。
    的頭像 發(fā)表于 12-14 08:28 ?800次閱讀
    <b class='flag-5'>CPU</b>和<b class='flag-5'>GPU</b>之間的主要<b class='flag-5'>區(qū)別</b>

    gpu是什么和cpu區(qū)別

    GPUCPU是兩種常見(jiàn)的計(jì)算機(jī)處理器,它們?cè)诮Y(jié)構(gòu)和功能上有很大的區(qū)別。在這篇文章中,我們將探討GPUCPU
    的頭像 發(fā)表于 02-20 11:24 ?1.9w次閱讀