Just My Life & My Work

CPU與GPU的架構之想法

因為有在研究GPU,時常有人問我CPU和GPU架構有何差異,我的回答通常是序列處理和平行處理的差別。

這裡我們先來看CPU與GPU的硬體架構:

(2013/04/16,感謝高手糾正,在此的想法是我參考書籍,加上我結合之前所學的(不同領域)概念,寫給較不清楚CPU與GPU架構的人有個大方向,至於細節方面要去較為專業的地方查證喔~也許可以跟網友halien討論!如果知道CISC和RISC的人,應該知道CPU有分這兩個架構,然而在此我是拿這兩者來類比CPU和GPU的架構,因為它們給我的感覺就是如此~我想給看的人有個概觀。希望halien未來有這方面的大作,畢竟我已經很久沒繼續研究CPU與GPU相關知識。有任何建議請再提出,部落格內容很隨性,所以難免會有些出入,謝謝!)

很清楚可以看到兩者的差異。CPU的設計是類似於CISC(複雜指令集計算),主要希望能完成較複雜的運算,因此相關的Control Unit(控制單元)數量和類型較多,而且CPU在運算時會頻繁地讀取記憶體中的指令與資料,於是在設計上給予較多的Cache(快取記憶體)來減少記憶體讀取所花費的時間。現在發展出CPU多核心架構,但是由於Control Unit和Cache等硬體裝置佔據晶片相當大的空間,所以能夠容納的核心數受到很大的限制。

反觀GPU的設計是類似於RISC(精簡指令集計算),設計精神希望以大量的Stream Processor(串流處理器)來做運算,相較CPU所需要的控制單元和快取記憶體,GPU就不需要高度複雜的設計,因此顯示卡上可具有數量龐大的串流處理器,其可以將計算問題分割成數千、數萬個工作,並且分批進行運算。

又有人問說,既然GPU現在運算能力超越CPU,那麼CPU是不是即將被淘汰了呢?我的答案:在短時間內還不會被淘汰。上述已經說CPU是類似於CISC架構,而GPU是類似於RISC架構,這兩種架構各有優缺,在計算機結構議題上有兩方面的研究。倘若GPU想取代CPU的話,那麼GPU也要能夠進行複雜的運算,當然若你要說你只有大量重複性工作,那麼最好的選擇就是基於SIMD (single instruction, multiple data)架構的GPU,若你只有無法平行化的工作,還是乖乖使用基於SISD (single instruction, single data)架構的CPU有較好的效能。若摻雜可平行化與不可平行化的工作,則可以試試看你所設計的演算法,最多能有多少的加速(speed up)。

(我寫文章的方式都不會相當專業,會結合生活週遭的事物來類比概念,我觀察到有些專業知識,在日常生活中會有類似的現象,我會如此活用,讓專業變成日常生活中的一部分,如此一來就有趣多了~)

參考:CUDA輕鬆上手 新世代GPU應用技術。

Comments on: "CPU與GPU的架構之想法" (24)

  1. 寫的簡單易懂, 推.

    • 謝謝你!簡單的想法來引人入勝 😀 如此顯得有趣~

      • 是啊, 尤其對不是該領域(CS)的人更是需要, 因為現在專業領域分工太細了~ (我EE) 希望以後繼續看你的文章!

        • 嗯嗯~我都會趁著閒暇時間,來把所學用自己的理解描述出來,如此變得淺顯易懂,原本筆記只是給自己方便查詢,然而時間久了就會淡忘,無心插柳就幫助了像你這樣的網友,至今保守估計幫助了上萬人,花時間記錄更有價值意義了! 🙂

  2. 又錯了, 手機不是快要出八核心CPU, 是已經出了, 自己去查一下Exynos 5是什麼玩意.

    ㄟ…你真的在這個產業做事嗎? 一下子說CPU沒有八核心, 事實上早就有Harpertown跟FX-8150, 一下子說手機快要出八核心, 事實上Galaxy S4用的Exynos 5就是八核心, 雖然是四個A15+四個A7. 我發現你怎麼說怎麼錯耶, 真的, 多看點書, 少發文, 對你的知識長進才有正面幫助.

  3. 真是越看破綻越多, 有沒有聽過superscaler? superscaler的概念就是平行運算啦, 還什麼"序列處理和平行處理的差別", 拜託閣下趕快刪除這種破綻百出的心得.

    • 其實我很想跟你「討論」,不過顯然你只想「批評」,因為我寫的東西不是你要的。如果你能回答「為何GPU核心數可以如此多,而CPU核心數卻有限制?」就好了……
      還有建議你不要人身攻擊,是不是出身自CS不是重點,重要的是能為社會貢獻什麼~

      • 麻煩搞清楚一件事, 討論是用在程度相當的人, 對於錯誤的資訊只有糾正一詞, 我不是在跟你討論, 我是在糾正你. 在閣下要我回答問題之前, 你先回去翻一下教科書, 好好理解GPU跟CPU的差別, 然後把這錯誤百出的文章刪除或修正. 我真是難以想像號稱CS出身的人居然會說CPU=CISC, 我看你白算盤翻都沒翻過吧?

        • 不好意思,那本篇文章不適合你看,我是講給門外漢,可以知道一個方向,你該去官方那邊討論~
          書本要活用,最好瞭解到可以講出來讓門外漢都可以清楚的知道,你進來我的部落格,這就是你的錯,因為你不是門外漢,卻來賣弄你的知識~
          因為你不太想要瞭解為何我這麼寫,所以硬是要說我一派胡言,當然教科書裡的定義都是對的,那我在部落格定義我所認為對的,也是很正常的事情!
          你又在人身攻擊,就算是出身CS又怎麼樣?你能貢獻什麼?只是在這邊說我胡說八道嗎?還不瞭解我的立場,就在以你的立場講一堆要人家改正的「建議」。
          如果你覺得你可以活用,那麼就回答我之前的提問,你有辦法百分之百回答嗎?不要再要我去翻教科書,馬上回答好嗎?不要以為寫文章很容易,批評人家之前自己要先做到。
          你的「糾正」我接受,謝謝!

          • 為了讓閣下閉嘴, 我只好回答你這個毫無sense的問題. 基本上會問 “何GPU核心數可以如此多,而CPU核心數卻有限制" 就是對計算機結構, IC製程, IC封裝毫無概念的人才會問的問題. 誰告訴你CPU核心數有限制? 你要說有限制, 那請問你上限是多少? 在die size不設限的前提下, 你想作幾核就有幾核啦. 我一開始還高估你咧, 想說你會有die size這個前提, 看來我錯了. 你放心, 我不會要你去翻教科書的, 因為我發現就算跟你講去翻哪一本, 你也不知道該找什麼章節, 就算跟你說看哪個章節, 你也看不懂.

            至於我的貢獻就是揪出這種漫天鬼扯的文章, 避免有人以訛傳訛.

          • 知識多不代表可以「為所欲為」~你的行為只讓我覺得你很沒品!
            你不看新聞嗎?你不以訛傳訛嗎?你自己可以查證,無須毀謗人家!
            你的貢獻好大喔~可以去網路上繼續揪呀!到處都是像我這類的文章,你怎麼還在這?不是很忙嗎?
            謝謝你,因為我都不太會寫這是「我的想法」,看的人應該要有方法查證才是。
            你知道為什麼市面上CPU還沒出現8核和16核嗎?而為什麼又有6核?如果可以的話,請圖文並茂解釋!
            我當然知道你要做幾核就幾核,為什麼市面上總是GPU核心數大於CPU,這才是我要問的重點~
            拜託……我已經一陣子沒研究CPU和GPU了,當然不用看得起我~我的筆記也必勞煩你這麼費心思地抽絲剝繭。

    • 文章寫得深入淺出跟錯誤百出是兩回事, 淺顯易懂不代表鬼扯, 事實就是CPU不是只有CISC, GPU非但沒有RISC only這種說法, 還有CISC去改良出的Larrabee這玩意.

      我後來發現這篇漫天鬼扯好像是引自"CUDA輕鬆上手 新世代GPU應用技術。"這本書, 你是作者嗎? 還是被荼毒的讀者?

    • 最好是沒八核cpu, 我想你應該會google吧? google一下Harpertown跟FX-8150是什麼東西, 放心, 不需要什麼高深的學問就能看的懂, 我也不要挑太難的東西叫你去看.

      你怎麼不敢回答閣下所謂CPU核心數有限制, 那上限又是多少這個問題啊? 是不是太難了回答不出來啊? 哈哈哈哈哈哈哈哈

      • 算了,只是在賣弄你的知識,笑得好荒謬~我不研究些東西,所以故意給你表現,沒必要得寸進尺。我要去跑步了,要一起嗎?

        Liked by 1 person

        • 所以呢? 找到八核CPU了沒啊? 哈哈哈哈哈哈哈哈哈哈

          閣下就老實承認這種問題沒sense到極點吧, 學術上就是CPU或GPU你想作幾個核心都隨你玩, 根本沒有上限這回事. 商用產品就要考慮成本問題, 今天i7想做到72個核心有何不可? 問題是隨之而來的die size會長到多大? 功耗會變多大? compiler變多複雜都是問題, 給家用電腦用的CPU一顆跟一個1 U server一樣大像話嗎? 所以問題根本就不是技術上作的到或作不到, 而是實用性有沒有必要.

          ㄟ對了, 搞懂Larrabee是什麼了沒? 呵呵呵呵

          • 對對對~你說的我也知道沒有上限,我也知道市面上之所以沒有更多核心也是要看有沒有必要。你可以解釋一下「Larrabee是 Intel 已經取消研發的顯示卡,原預計在 2008 年 第三季推出樣本,在 2009 年 正式發佈,最終在 2010 年 5 月 宣布中止。」為什麼要終止嗎?我看到這兒就疑惑有必要再研究下去嗎?
            我聽到手機都快出八核心了,沒理由電腦沒辦法到八核心。
            先別管幾核心了,要不要來台北公館一趟,我請你吃頓飯,順便逛台大校園。第一次遇到像你這麼「棘手」的網友,想必你對「硬體」相當有研究!不過我現在的工作內容是跟手機APP相關,我比較在意的是使用者能否接受我所做的APP,有興趣可以交流一下。

  4. 講法完全錯誤, 誰告訴你CPU一定是CISC? 誰告訴你GPU一定要RISC? 你真的是CS出身的嗎?

    • 呵~總算有人跳出來說話了,別急著批評人家,把你認為對的講出來跟大家討論吧!
      之所以認為CPU是CISC,而GPU是RISC,是因為前者可以處理複雜的指令,而後者可以處理相對簡單的指令,我在想,如果GPU是CISC而CPU是RISC,那有沒有可能GPU取代掉CPU?你有何見解?我想如果不要有爭議的話,CISC可以複雜指令集架構代表,RISC可以簡單指令集架構代表,我想表達的是核心的複雜vs簡單架構。
      經你這麼一說,我才發現我應該寫「可能是」或是「可類比」,不然每篇文章都會被質疑。
      這只不過是我的筆記,歡迎高手可以來指教,謝謝!

      • 錯誤百出就老實承認, 現今GPU講的都是架構, 連GPU作什麼事都搞不清楚就大談CISC RISC, 沒有general purpose computing要什麼指令集? 你聽過網路卡在講什麼RISC還是CISC嗎?為了替你那貧乏到可憐的計算機結構常識增加一點料, 自己去查一下Intel Larrabee是什麼東西, 還GPU都是RISC架構咧, 真敢說.

        對了, 你知不知道這世上有RISC CPU啊? 這不是什麼可能是或是可類比, CPU就是有RISC跟CISC這兩種指令集架構, GPU也有用CISC的, 勸你還是刪掉這篇五四三吧, 整篇文章只有那張圖是對的, 剩下的文字都不知道在寫什麼鬼東西. 這也沒什麼好爭議的, 錯的東西就是錯, 真的, 多翻書, 少寫部落格, 要寫也要寫對, 錯的東西留著自己看就好.

        • 我不會跟你爭論,你說的應該是對的,但我不會刪掉文章,除非你能寫出不會有爭議性的文章出來。既然你覺得你所讀的都是對的,你應該想辦法寫出有意義的文章,而不是叫別人寫或看別人寫,然後你不認同就開炮,自己卻不想寫出來,因為你會害怕換你被人家開炮。
          如果你連提出有建設性的建議都沒有辦法的話,你還是不要看我的部落格,因為不是寫給你看(其實只是我的筆記,有人搜尋進來我也不意外,至於對錯,還是要再三確認~)。其實我很期望能拋磚引玉,而你就是那塊玉,你應該查到資料後整理出來,而不是賣弄你已知的知識。
          寫部落格的意義在於「交流」,而不是所有一切的「標準」,如果你想要最正確的知識,那你應該去官方網站查詢,而不是從我這邊取得二手資訊。要是所有人都寫千篇一律的知識,那我何必再寫?你也不會搜尋到其他人的見解~其實我不知道你為何如此生氣?真不好意思了~

          Liked by 1 person

  5. […] 隨著科技日新月異、一日千里,電腦的CPU性能的發展有所謂的摩爾定律。可惜相機的感光元件的架構卻和電腦的CPU有很大的區別。前者好比平行處理,後者好比序列處理,可以參考這篇CPU與GPU的架構。CPU可以越做越小,但會因為物理性質的極限而不能再縮更小,所以原本單一核心演變成多核心架構。感光元件似乎也限制於物理性質的極限,使得它的體積縮小幅度有限。 […]

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲