CPU和GPU在設計上有什麼分別?

2017-07-06 10:30 am

回答 (1)

2017-07-06 10:31 am
✔ 最佳答案
1:CPU中大部分(大概70%)晶體管用來構建Cache還有一部分控制單元,負責邏輯算數的部分並不多;而GPU整個就是一個龐大的計算陣列(包括alu和shader填充),我們知道GPU大致分為3d setup和流計算兩個部分,而GPGPU就是用流計算來做大量密集型運算,比如linpack這種求解大規模稠密線性方程組。 GPU中負責邏輯算數的部分要遠遠大於CPU因此在邏輯運算上當然就比CPU強太多
2:GPU對Cache的依賴比CPU小,因為GPU用的是高速度總線;其次GPU的數據具有高度對齊性以及不符合局部化假設、比CPU更深的pipeline執行還有一點就是很少把數據寫回。但是CPU不同,它非常需要Cache,有無Cache的CPU差距可以是極大的。其實Cache是​​人類如今對於矽工藝的一種“妥協”——我們總是希望擁有一個存儲器它的CPU比肩或者接近於CPU同時又可以在容量上做大。但目前矽工藝限制了這個“天馬行空”的幻想,因此,人類不得已做出了Cache這個片上存儲器,它的速度的確是最快的,位於存儲器體系結構的最高層,但它也是容量最小的。它可以擴大,但是進步很小,至於原因其中大概是2點:1:Cache是​​構建於CPU內部,需要考慮面積;2:需要權衡利弊,比如l1不能無限做大是因為本身致力於為CPU提供一個快速的數據遞交,而l1如果做大那麼命中時間增加以及延遲開銷的影響來說這就是非常大的弊端了。
3:還有一點就是核心的不同。 CPU的核心內部因為有大量Cache所以一個邏輯核心普遍是比GPU中的Stream Processors大的,GPU中的SP就是簡單的核心但是CPU不同,在core的設計上CPU是比GPU複雜的多。


收錄日期: 2021-04-18 17:09:22
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20170706023042AAvCM64

檢視 Wayback Machine 備份