• 6

一個程式, 會同時使用多個核心嗎? why Intel?

99.99%的app都只能跑單線程
如果99.9%的app 是單線程, 那是不是只有一顆核心在執行呢?

如果是這樣, 對一個程式而言, 單一強大的核心就比多顆弱小的核心快了.

it6168 wrote:
如果99.9%的ap...(恕刪)


沒錯
8核大約就只有跑分程式好看

但反過來說 在製程還沒推進到14nm
單核效能高 也只是高10秒 15秒
之後過熱降頻1半 結果也不會比較快

現在的手機cpu 幾乎都是在賣個噱頭
超過1.6G的 跑沒20秒 反正也是降回1.6上下
超過4核的部份 正常也用不到
程式的平行化本來就很麻煩,況且很多程序都根本無法平行化
一般遊戲引擎或者解壓縮工作,比較會用多核心
假設架構類似,四核心跟雙核心達到同樣的總體運算效能,那後者絕對實用很多
難怪, 我的ME560 明明只有二核, 玩一些GAME, 完全不感覺比另一台SNAPDRAGON 800 的差異在那.也許要同時開很多程式才有差吧.

可是我玩 GAME, 開著那些程式幹什麼?

it6168 wrote:
難怪, 我的ME56...(恕刪)


其實跟桌上型電腦一樣

硬體超越軟體太多

所以要等軟體平台跟上才有辦法

如果是分散式運算的多執行緒指令 就有辦法運用多核心來分擔
(但是要讓每個核心效能都跑滿也是有難度)

只能說現階段真的不太明顯
กิิิิิิิิิิิิิิิิิิิิ ก้้้้้้้้้้้้้้้้้้้้ ก็็็็็็็็็็็็็็็็็็็็
照電腦例子判斷
其實在手機上⋯四核幾乎用不到

因為程式幾乎只要單線程
八核有什麼用?
同時在小螢幕上開八個程式跑?

多核耗電又兇幾乎沒優點
所以apple用技術去打造高效能雙核
在單線程效能可是完全強勢
所以目前都雙核打四核、打八核
要比單線程也都不是apple對手

滿期待今年a8效能
對手應該快看不到車尾燈了

一直好奇一件事, 在電腦上, 程式不一定可以同時在多核心上面跑.

手機其實也算是一台電腦,所以原理都是相同的。

可是在手機上, 一個程式可以同時使用數個核心嗎?

是的,由寫程式的人決定。

是可以同時使用到8核嗎?

不一定,又是由寫程式的人決定。

還是最多同時使用到 2核.

不一定,終究是由寫程式的人決定。

網路上找了一下, 只發現多執行緒的編譯, 要多核心就得改程式把執行緒拆開來分到不同核心去, 然後等各核心同步完成運算. 很好奇手機程式真的都有改嗎? 會不會有的程式只優化到能二核心, 有的優化到四核心而已.不見得能用到八核.

那這麼一來, 執行單一程式時. 單一核心多執行緒其實比多核心還快了. 難怪A7只要2核心.

大多數程式的寫法的確沒有辦法利用多核心。只有大型程式才會花心思去跑多核。一旦考慮用多核,通常會用比較彈性的做法,不會特別針對幾核心去寫。而是寫出一個程式,可以自動在單核心至多核心間自動優化。原理沒有想像中的難,最主要是要能把工作分開。

例如一個程式要算由1加到100的總和. 單核的寫法就是簡單一個迴圈解決。多核心的方式就是把工作分開,例如若偵測到系統有4核心,就臨時把工作分成4份。
工作1,算1加到25
工作2,算26加到50
工作3,算51加到75
工作4,算76加到100
作業系統會自動把它們分配到各核心去執行。等4個小工作都完成了再把它們4個相加就得到最後結果了。這樣可以比單迴圈的版本快了接近4倍。
(這個例子只是舉例說明原理,請不要說有公式可以算,或是執行緒的負擔比分工的好處大等次要問題。)
就跟PC 一樣

即使 AMD 出了 8核心 也只是跟 Intel 4核心打平

就以使用上也只有少數的程式會占用到所有的核心

也就是為什麼PC市場中很少出8核 以上的CPU

8核以上伺服器就有這需求!!!
就算每個程式都是單線程,不過有好幾個都在背景跑的時候就需要多核心分散隊伍了吧,比如說當你只是在玩遊戲或是在看影片而已的時候,電話還是在待機接收、噗浪/臉書/推特/電子郵件等等的也是在背景定時接收訊息,像我常做的邊插耳機聽歌邊畫圖的話,那就有兩個不小的軟體同時在跑了,所以至少雙核心以上是需要的吧。有沒有要八核心以上這就難說了。
  • 6
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?