[多核心處理器發展真的無用武之地?] 理論與現實的差異,多核心晶片軟開發瓶頸何在?

多核心處理器發展真的無用武之地?

隨著手機市場競爭的白熱化,手機晶片設計商為了創造出差異性,發表了 8 核心以上的 CPU。讓手機晶片的核心數量一舉超越主流筆電的 2 或 4 核心。然而,我們是否真的需要如此多的核心?是什麼原因讓我們無法徹底地發揮 CPU 的真本事?


中央處理器,CPU(Central Processing Unit),做為電腦的大腦,掌管著電腦所有運行的程式。為了讓程式可以運行的更快更穩,電腦架構師們不斷的思考著該如何設計出更好的 CPU 架構,讓使用者得以享受更加快速、便利的電腦。

為了設計出更為出色的 CPU,工程師便想藉由不斷提高 CPU 的時脈,讓 CPU 得以在一秒內執行更多的指令。隨著科技的發展,時脈的確如工程師所願,逐步的提高。從 1990 年代開始,CPU 的時脈從 60MHz,一舉提升到 2000 年的 2000MHz。進步幅度之大,令人讚嘆。


發展遇到瓶頸,多核心的時代來臨?

到了千禧年,時脈的進展,卻不再如此順利。當 CPU 時脈發展到 4GHz 左右時,工程師發現,CPU 每秒所製造出的熱,已經突破一般家用散熱器可以負擔的量。為瞭解決工程上的瓶頸,工程師開始將目光放在多核心架構上。因此,Intel 以及 AMD 皆於 2005 年發表了雙核心 CPU,欲藉由雙核心的技術,突破單晶片效能的瓶頸。

但是,多核心架構卻沒有如原先預期的向超多核心發展。intel 從 2005 年至 2015 年。將近 10 年間,在一般消費者市場(不含電競玩家)所發售的 CPU 也頂多從雙核心進展到四核心。至於 AMD,即使發表了 8 核心的 CPU 於市場上,其效能也頂多和該時期的同級 4 核 intel CPU 相當。

究竟是什麼樣的因素,讓 CPU 的核心無法如同時脈的進展般,一飛衝天?


應用程式的極限,多核心無用武之地?

在不考慮在單一 CPU 中加入過多核心,會大幅增加 CPU 的耗電量時。最主要的因素便是多核心的應用程式不容易開發,讓電腦架構師決定持續研究如何改善一個核心的效能,而非多核心架構的開發。但是,為何多核心的應用程式會難以開發呢,這必須從使用者常用的應用程式來看。

在日常的使用環境中,使用者大多是使用網頁瀏覽器、看影片、以及玩遊戲。而這 3 種,恰好是 3 種不同的應用類型。

在使用網頁瀏覽器時,電腦大多在等待使用者下新的指令,像是打字以及使用滑鼠點擊連結,接著便是從遠端讀取網頁資料並繪成使用者介面。軟體在 CPU 端可以平行運作的部分相當稀少,也因此,多核心在單純的瀏覽網頁上,並無法帶來太多的增益。

上網看影片則是電腦會不斷的從伺服器接收影片的資料以及向伺服器送請求,接收資料後,交由繪圖處理器(GPU)進行繪圖運算,將壓縮過的編碼影像檔轉換成顯示器的畫面。在這一類應用中,工作負擔主要是在 GPU 端,CPU 可平行的程度也不高。

最後的應用,則是遊玩遊戲。在玩遊戲時,電腦會不斷的接收使用者所下的指令,接著是在電腦所建構出的虛擬世界中,標記玩家週遭的景色以及行動。之後,便是將整個虛擬世界交由 GPU,轉換成顯示器的畫面。繪圖處理器詳細的運行流程在此。

在這一類應用中,因為電腦需不斷地記錄玩家的行動以及將虛擬世界中物體位置記錄在 CPU 中,因此,CPU 的負擔較其他應用沉重,畢竟它需要從硬碟中讀取地圖的地形座標以及玩家的位置和動作。此外,CPU 也需將大量的遊戲資料送進 GPU 中。所以,遊戲和前述的應用相比,可平行的程度較高。但是,4 核心也足以負荷所有需求。因為負荷最沉重負擔的,依舊是 GPU。


根本問題,人的思緒是線性的

由上所述的數個原因,可以得知最根本的問題,便是人類一次只能思考一件事情。而電腦程式是由人類撰寫,導致在撰寫程式時會將人類的思考方式帶進電腦中,讓程式在早期的發展,僅需由單核心處理器便可以完成。

此外,如果要將現行的程式修改成平行程式,也因為人的思考流程是線性的,工程師需要花費相當大的力氣才能找出可以平行的部分,並將程式的邏輯做大幅的修改,讓平行程式難以推廣。

或許會有人反駁,人一次是可以做兩件事情,像是一邊做事一邊聽音樂,但那也只能稱為可以迅速的在兩件事情間做切換而非同時思考。除非,有人可以將眼睛同時對焦在兩點以上,這樣才有可能一次處理兩件事情。

此外,有部分的使用者會宣稱,他們一次會開啟多個網頁分頁,這樣也算是需要多核心的 CPU,但是,如前所述,除非有人可以將眼睛對焦在兩點上,同時看兩個網頁。不然,開啟多個分頁只是佔用大量的記憶體,多核心在這類應用上沒有多大的幫助。


行動時代來臨,應用產生劇變

然而,在智慧型手機發表之後,情況開始有所轉變。隨著手機的迅速發展以及應用的多變,多核心的應用逐漸增加。舉例來說,在 2013 年,Apple 推出的 iPhone 5s 內,便在原本的雙核心 CPU 外,添加一個小處理器做感測器的資料收集。在其他手機內部,則使用一般的 CPU 核心負責。讓原本的應用,新增了一份可平行的工作。

此外,近期的應用程式也開始提升和現實世界的互動性。以現行熱門的 Pokémon GO 為例。在開啟 AR 和現實世界互動時,要執行此類應用程式,便需要大量的運算資源。在尋找寶可夢時,手機需要收集 GPS 信號,下載地圖資訊以及寶可夢出現的位置。

當寶可夢出現後,則需要將相機拍攝的圖片和寶可夢做結合。同時,運動感測器也需要開啟,計算玩家鏡頭的移動軌跡,訂出寶可夢應該出現在畫面的何處;拋球時,則需計算拋球的方向還有滑動的速度以計算拋球的距離。這些應用都可以平行,為多核心 CPU 開啟一片新天地。

另外,隨著自動駕駛以及人工智慧的題材興起,原本用在手機內部的晶片,開始攻城掠地,往其他領域拓展。在其他領域中,因為需要大量的感測器,讓超多核心的應用化為可能。畢竟,光是接收大量的感測器資料,現行的 4 核心 CPU 已招架不住。

那麼,我們是否需要多核心的 CPU 呢?對一般的筆電以及桌機使用者而言,近期的答案為否,畢竟 4 核心已經能滿足使用者的需求;但在行動應用市場中,答案則為是,因為行動裝置的應用越來越多元,感測器也越來越多,在 CPU 中塞入更多的核心,將可迅速的應付與日俱增的硬體需求,而不需花費大量的人力以及財力從單一核心壓榨出更多效能。


http://technews.tw/2016/09/04/mu ... cation/#more-181332
http://technews.tw/2016/09/04/mu ... cation/#more-181332
http://technews.tw/2016/09/04/mu ... cation/#more-181332

下一代物料既1000GHZ 應該會飛速提升人類科技...

TOP

回復 2 #良優

價錢飛升就一定

via HKEPC Reader for Android

TOP

仲係到出埋啲龜速HDD唔肯放棄,其他料你講到幾快幾快又有咩_用
伺服器限哂速,其他料你講到幾快幾快又有咩_用

TOP

回覆 4# 132003hk

好多野係噉樣. 準備時好慢, 準備後就超快. 畢竟按用途,成本打造.  

不過, 手機有唔同. 因為記憶體係共用, 而唔會按用途設定特殊空間. 因此買新電話時都有留意可用空間,緩衝大細, 可用頻道以減少更新次數.

TOP

desktop點解唔要多core?
因為我要邊開BT邊玩GTA5邊開住VM行百度雲
dual芒隔離玩住重型flash game艦娘
我落指令可能係單線, 但desktop 開得愈多application 後台Job都多架嘛

TOP

其實最大bottleneck係UI上面,我指既唔係GUI/CLI,而係KB/Mouse/Mon OR Touch mon, 就算我可以處理到咁多資料, 我根本都落唔切command比部機

pokemon go 為例, game介面/telegram報料/3個map/Line gp吹水/Whatsapp
幾樣野都經常成日做,但係受限於Touch mon,佢都feed唔切D野比我

到有腦波控制果時, 各種電腦既需求再會爆炸性上升

TOP

其實最大bottleneck係UI上面,我指既唔係GUI/CLI,而係KB/Mouse/Mon OR Touch mon, 就算我可以處理到咁多資料 ...
eh 發表於 2016-9-6 09:50
其實呢...有好多野都唔洗你手㩒...
例如轉片,rendering,而家仲係等好耐

TOP

其實呢...有好多野都唔洗你手㩒...
例如轉片,rendering,而家仲係等好耐 ...
yjfoeg 發表於 2016-9-6 10:55

最大問題係AMD,搞到INTEL唔可以放多啲野出黎

TOP

其實呢...有好多野都唔洗你手㩒...
例如轉片,rendering,而家仲係等好耐 ...
yjfoeg 發表於 2016-9-6 10:55


轉片仲係好慢慢慢......

TOP