• 3

為何 Intel AMD 無法做到 併核心 運算...

fedora wrote:
可能 X86 先天架構的包袱,沒法做到
手機 ARM 架構處理器,都是超多核心的,沒聽過有軟體只能單核心運行的。
...(恕刪)

不是因為這個。

說起來並不是"只能單核心運行的軟體",而應該說是絕大部分計算工作落在單一個執行緒/單一核心的軟體,但這不代表程式中就沒有其他執行緒、執行過程中沒有動用到其他核心,只是動用時間很短。

這種軟體在ARM或是x86上,當然都存在。就像樓下網友舉的例子,還有許多工作是在不知道前一項結果前,是無法計算下一項的,或是必須根據IF (某條件成立) THEN {執行A工作} ELSE {執行B工作},其中的(某條件成立)與否,才能決定執行A段程式碼或是B段程式碼,這是計算工作本質循序性跟相依性的問題,並不是用了ARM就能神奇的解決問題。

再舉例來說,不管是啥軟體,基本上處理人類輸入/軟體操作界面的工作,就一定是跟計算工作分開放在不同的執行緒,不然一旦開始計算,使用者根本就無法操作軟體界面,Windows軟體從Win95(pre-emptive multi-threading)年代開始,就已經必須是這樣設計了。

既然在不同的執行緒,不管是Linux或是Windows,在多核心處理器上,就能夠把同一個程式的不同的執行緒指派到不同的核心去同時執行,只差在處理人類輸入/軟體界面,通常不怎麼需要吃處理器運算能力。

"只能單核心運行的軟體",是過於籠統的講法。
你對於單核心計算的定義沒有很明確。
現在主流的CPU中,一個核心裡頭其實是會有好幾個整數運算單元跟浮點運算單元。

而前面的網友也有提到資料相依性的問題,比如要計算費布那西數列
1,1,2,3,5,8,13,21....
a[n] = a[n-1] + a[n-2]
如果你不知道第六項,那也無法得知第七項,這就是資料相依性。雖然說這數列有公式解就是了.....

所以不可能把這一類的運算分散到其它核心上,但如果是一個運算裡頭的資料相依性沒那麼強的話,其實現在中高階的arm跟intel CPU都是可以把運算分散到同一核心的不同運算單元上,這技術稱作Out-of-Order Execution。

vampire527 wrote:
這有錯呢
只有腳本語言 JAVA 一類的才是你說的這樣
C跟C++, CPU運行動作 完全是寫程式的人必須自行控制的

C之類雖然說可能要自己控制CPU的分配
但總不至於要自己去操作暫存器吧
剛想到這篇報導有點詭異
它能單靠一個 AA 電池驅動,每秒處理 1,150 億項指令的用電量亦只要 0.7W,不需要的核心也能單獨關閉。

既然超省電,只要0.7W,那設計4個電源做什麼,明明看起來就超耗電的,如果真的那麼省電為什麼要做那麼多電源接口?

我記得之前有發布新型超省電CPU,人家展示時是只接一顆3號電池就能驅動了,我印象很深,不過臨時找不到新聞及圖片了

fedora wrote:
可能 X86 先天...(恕刪)

無法擺脫物理極限,能做1顆16G的CPU ,還需要做4核心4G的CPU嗎?
默爾定律2024年就失效.......
2246352754 wrote:
既然超省電,只要0.7W,那設計4個電源做什麼,明明看起來就超耗電的,如果真的那麼省電為什麼要做那麼多電源接口?...(恕刪)


可能並不是電源接口吧,雖然看起來很像 AT/ATX 電源槽,但也許是某種自制的通信埠。

看 cpu 連散熱器也不必,發熱量應該超低。


******************

這個才是霸氣,2016年 全球 TOP 500 超級電腦 第一名:




早些時候,最新的世界超級電腦 Top500 排名正式公佈,來自大陸的神威 · 太湖之光,憑藉超強的 93 petaflops 運算能力成功登頂。這一成績幾乎是此前紀錄保持者天河二號(33.85 petaflop)的三倍,關鍵的一點是,神威的這套系統採用了總共 40,960 顆大陸自產的 260 核心申威 26010 晶片,而這之中並沒有用到任何來自西方的技術。

據介紹,神威 · 太湖之光採用了專門開發的全新眾核架構,而且其軟體基礎也是建立在一套特別版本的 Linux 之上。值得一提的是,其功耗僅有 15.3MW,比之前的天河二號更加出色,考慮到運算力上的大幅提升,能維持這樣的水準是相當不易的了。

有趣的是,按照 Top500 的說法,之前美國的一項貿易禁令,可能在某種程度上加速了神威 · 太湖之光的崛起。之前有不少人認為在 Intel Xeon Phi 處理器的幫助下,天河二號的升級產品將能夠一舉衝上 100 petaflops。但在禁令的限制下,這樣的預期並沒有變成現實,而大陸也因此進一步加大了在晶片開發上的投入力度,這才有了神威 · 太湖之光此次的突破。






神威太湖之光使用了上海高性能集成電路設計中心設計的國產眾核芯片申威26010,該眾核芯片採用28nm製程工藝,主頻1.45G,擁有260個核心,雙精浮點峰值高達3.06TFlops,在雙精浮點上完全追平了Intel最好的超算芯片。


Intel 不賣超級電腦的 CPU 給中國,中國自己造了一顆(RISC架構的),單顆就有 260核心!

雖然是 28奈米製程的,速度卻追平了 Intel 最好的 14奈米 超算CPU。

神威 超級電腦,總共用了 40,960 顆

40,960 * 260核心 = 10,649,600 核心(約 165萬核心)


天河二號 超級電腦,沒記錯是用 Intel XEON 去組的(X86架構),又耗電,又慢。

"神威" 速度快過 "天河二號" 3倍,耗電卻更低。

所以說 CPU架構影響真的很大。X86 架構是老古董了,又歷史包袱重,還沒被淘汰的唯一原因是 Windows。

不過超級電腦又不跑 windows 的,所以沒必要死守 X86。
fedora wrote:
可能並不是電源接口...(恕刪)


看到這段讓我想起以前西方嘲笑
中國造不出核彈
結果中國用算盤造出來了
然後西方又嘲笑中國有彈也無法射
結果中國馬上投彈成功
現在是禁止運高端科技cpu
變成中國自制超級電腦上榜top500



一件事情只能用一個核心做
卻不能把四個核心的計算能力合併在一起去做
這是為什麼呢?



答案其實很簡單

問題就出在 時間軸




.......... 啥?

才三個字?

對啊, 什麼叢集運算平行運算, 最終都逃不過時間軸的制限

顯示晶片做的就是多核心合併計算貼一個畫面的工作喔
但這些工作是能被平均分配的
對於不能平均分配, 與時間軸有關的計算...




這樣說吧.

你能知道從現在算起五分鐘之後你的手指頭會剛好敲在鍵盤上的哪一個按鍵上嗎?

甚至五分鐘後你人剛好在洗手間, 滑手機哩.



如果是單調且可重複的東西
拆成複數等份再給那堆閒著的核心運算
那是很多軟體硬體都在做的事

例如 3D貼圖, 影音轉檔壓縮等



可是啊, 如果你遇到了這樣的條件式


if - do ((如果 - 就做))


就會全面卡死啦 ~



因為, 假設我需要上面的運算結果出來我才能接著做下面的運算
那麼所有事情都必須等上面的運算結果出來我才能開始下面的運算

用遊戲過程來說明

我今天當警方, 拿著AUG在路上晃, 看到前面有叉路
我停了一下, 決定往左邊前進.
碰到了一個歹徒, 我跟他對射, 我受了傷, HP 剩 50 , 他掛點
回頭走向右邊的叉路, 我又碰到一個歹徒, 又發生槍戰
然後我因為 HP 只剩 50 所以不夠給歹徒打, 於是掛點了.


問題來了, 如果沒有一開始的左邊槍戰, 我是不是 HP 會是 100 的狀態下去跟右路的歹徒交戰了?
那麼我是不是就有可能不會在右路被歹徒打死?

可是左路的歹徒呢? 如果我先走右路, 那麼我會剩下多少 HP 去對付左路的歹徒?
我會不會又因此被左路的歹徒打死呢?

這是無法預測的, 也許你會跟右路的歹徒同歸於盡甚至先被打死
因為他既然有辦法打掉你 50HP , 就表示也有可能打掉比這更多的 HP
但到底是打掉多少呢? 我們不知道, 因為你只剩50點HP讓他打



很多時候, 程式必須等待上一個事件有結果, 才能接著這個結果去做下個事件

這就是時間軸產生的問題, 是先有雞還是先有蛋? 是雞生蛋還是蛋生雞?

光是這樣簡單的幾個字就足夠讓程式開發設計人員傷透腦筋

要突破時間軸的方式就是能夠預測尚未到來的時間軸會發生什麼事情, 才能繼續計算下去

簡單的說就是預知未來

但你知道未來基本上是無法被預測的

也不能說不可預測, 事實上可以預測規律
但你不能"精準保證"未來 100% 就是照你你現在搶先做完的計算來運作
就好像你可以照經驗來預測媽咪幾點幾分會到家
但你無法每次都能完美的在媽咪到家前三十分鐘便測出媽咪將會在 "幾點幾分幾秒" 打開大門.

那預測這個做什麼呢?

我們換個說法, 就講預測地震便好了

如果你能準確預測多久之後會發生多大規模的地震
那麼你現在不就可以開始進行避難的準備工作了嗎? (將之後的工作搶先運算完成)

這就是時間軸的瓶頸, 也是多核心併做一件工作時, 平行運算的瓶頸呦



zjzj100 wrote:
想一想, 有時候 ...(恕刪)


因為人還沒辦法跳脫
目前大腦的運作模式,
所以想出來的東西,頂多就是複製人類的思考和邏輯而已
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?