2021-01-08:cpu和gpu有什么區別?

      網友投稿 785 2025-03-31

      福哥答案2021-01-08:

      [答案來自此鏈接:](https://www.cnblogs.com/biglucky/p/4223565.html)

      Cache, local memory: CPU > GPU 。

      Threads(線程數): GPU > CPU。

      Registers: GPU > CPU 多寄存器可以支持非常多的Thread,thread需要用到register,thread數目大,register也必須得跟著很大才行。

      2021-01-08:cpu和gpu有什么區別?

      SIMD Unit(單指令多數據流,以同步方式,在同一時間內執行同一條指令): GPU > CPU。

      CPU和GPU之所以大不相同,是由于其設計目標的不同,它們分別針對了兩種不同的應用場景。CPU需要很強的通用性來處理各種不同的數據類型,同時又要邏輯判斷又會引入大量的分支跳轉和中斷的處理。這些都使得CPU的內部結構異常復雜。而GPU面對的則是類型高度統一的、相互無依賴的大規模數據和不需要被打斷的純凈的計算環境。

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

      CPU有強大的ALU(算術運算單元),它可以在很少的時鐘周期內完成算術計算。

      當今的CPU可以達到64bit 雙精度。執行雙精度浮點源算的加法和乘法只需要1~3個時鐘周期。

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

      大的緩存也可以降低延時。保存很多的數據放在緩存里面,當需要訪問的這些數據,只要在之前訪問過的,如今直接在緩存里面取即可。

      復雜的邏輯控制單元。當程序含有多個分支的時候,它通過提供分支預測的能力來降低延時。

      數據轉發。 當一些指令依賴前面的指令結果時,數據轉發的邏輯控制單元決定這些指令在pipeline中的位置并且盡可能快的轉發一個指令的結果給后續的指令。這些動作需要很多的對比電路單元和轉發電路單元。

      GPU是基于大的吞吐量設計。

      GPU的特點是有很多的ALU和很少的cache. 緩存的目的不是保存后面需要訪問的數據的,這點和CPU不同,而是為thread提高服務的。如果有很多線程需要訪問同一個相同的數據,緩存會合并這些訪問,然后再去訪問dram(因為需要訪問的數據保存在dram中而不是cache里面),獲取數據后cache會轉發這個數據給對應的線程,這個時候是數據轉發的角色。但是由于需要訪問dram,自然會帶來延時的問題。

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

      GPU的雖然有dram延時,卻有非常多的ALU和非常多的thread. 為啦平衡內存延時的問題,我們可以中充分利用多的ALU的特性達到一個非常大的吞吐量的效果。盡可能多的分配多的Threads.通常來看GPU ALU會有非常重的pipeline就是因為這樣。

      所以與CPU擅長邏輯控制,串行的運算。和通用類型數據運算不同,GPU擅長的是大規模并發計算,這也正是密碼破解等所需要的。所以GPU除了圖像處理,也越來越多的參與到計算當中來。

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

      總而言之,CPU和GPU因為最初用來處理的任務就不同,所以設計上有不小的區別。而某些任務和GPU最初用來解決的問題比較相似,所以用GPU來算了。GPU的運算速度取決于雇了多少小學生,CPU的運算速度取決于請了多么厲害的教授。教授處理復雜任務的能力是碾壓小學生的,但是對于沒那么復雜的任務,還是頂不住人多。當然現在的GPU也能做一些稍微復雜的工作了,相當于升級成初中生高中生的水平。但還需要CPU來把數據喂到嘴邊才能開始干活,究竟還是靠CPU來管的。

      什么類型的程序適合在GPU上運行?

      (1)計算密集型的程序。所謂計算密集型(Compute-intensive)的程序,就是其大部分運行時間花在了寄存器運算上,寄存器的速度和處理器的速度相當,從寄存器讀寫數據幾乎沒有延時。可以做一下對比,讀內存的延遲大概是幾百個時鐘周期;讀硬盤的速度就不說了,即便是SSD, 也實在是太慢了。

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

      * * *

      [1.2CPU和GPU的設計區別](https://www.cnblogs.com/biglucky/p/4223565.html)

      [CPU 和 GPU 的區別是什么?](https://www.zhihu.com/question/19903344?rf=438389915)

      [評論](https://user.qzone.qq.com/3182319461/blog/1610069180)

      GPU加速云服務器

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:成功實施ERP的7個有益步驟
      下一篇:excel表格中如何在數據前或數據后加入0?
      相關文章
      在线亚洲97se亚洲综合在线| 亚洲色大成网站WWW久久九九 | 亚洲av成人一区二区三区在线观看 | 国产精品久久久亚洲| 在线观看亚洲成人| va亚洲va日韩不卡在线观看| 久久亚洲精品无码网站| 亚洲日韩精品无码专区加勒比| 亚洲国产精品成人综合色在线婷婷| 亚洲第一页在线播放| 亚洲毛片基地日韩毛片基地| 亚洲精品亚洲人成在线观看麻豆 | 亚洲va中文字幕| 亚洲GV天堂GV无码男同| 亚洲av无码偷拍在线观看| 亚洲国产精华液2020| 亚洲AV无码不卡在线观看下载| 国产AV日韩A∨亚洲AV电影| 亚洲AV无码一区二区三区在线观看 | 亚洲视频在线免费播放| 亚洲精品视频久久| 91亚洲视频在线观看| 国产精品亚洲综合五月天| 亚洲日本中文字幕天天更新| 亚洲成av人无码亚洲成av人| 伊在人亚洲香蕉精品区麻豆| 亚洲精品视频免费观看| 国产偷国产偷亚洲清高动态图| 亚洲精品无码午夜福利中文字幕| 亚洲爆乳无码一区二区三区| 亚洲第一视频网站| 亚洲欧洲国产综合| ASS亚洲熟妇毛茸茸PICS| 亚洲av成人一区二区三区在线播放| 综合偷自拍亚洲乱中文字幕| 亚洲国产午夜中文字幕精品黄网站 | 无码专区一va亚洲v专区在线| 亚洲人妻av伦理| 亚洲VA成无码人在线观看天堂| 99人中文字幕亚洲区| 亚洲国产精品日韩在线观看|