• 6

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

當然會使用多核心,只是開發軟體的人有沒有去優化而已...

特別是相機功能幾乎都是用所有核心在執行的,開鏡速度、對焦、連拍,

如果不用多核運行,保證圖形處理慢得要命,對焦就LAG...

基本上手機廠自行開發的APP通常都支援多核心,速度上會比外面業餘開發者快,

不過不全然都是...
程式要多核心執行, 若是要軟體去寫, 那不就得花好幾行嗎, 還得確保兩個核心算的時間一樣, 要不然所有核心都得等最慢的那顆算完. 要是某顆核心卡住了, 大家就全部一起等. 反而更慢

比如說, 原來是這樣寫的.

X=a+b+c+d+e+f+g

多核心得這樣寫

cpu1=a+b
cpu2=c+d
cpu3=e+f+g
x=cup1+cup2+cpu3

程式變四行, 同時大家都得等 cpu3, 因為它多算一次, 要是cpu3還要算某個背景程式. 拖更久.
算一算, 效能不會變成三倍.


總之, 我還是認為強大的雙核心, 大量的快取和記憶體, 跟強大多核的GPU 才是王道.
這不就凸顯出了你不會寫平行運算= =

現在平行運算發展最好的是做在GPU上,

根據多核心去分配運算...

CPU也有平行運算,

補充一下好了,GPU的運算核心都破百個核心了,矩陣運算來算3D沒有你說得像加法一樣那麼簡單,

光是運算量影像假設是60FPS代表每秒要算60張圖,

假設解析度1920*1080每置換一張圖就有2073600個像素需要處理,

假設用加法處理並且每個像速做一次加法,那就要做2073600次加法,每秒要做124416000次加法,

這還是處理最簡單的加法,GPU有破百個核心如果其中一個核心塞車,不就完蛋??

當然是不可能的事情啊!!

組織架構中有上層CPU來控制資料要如何分配到GPU的核心內,以最佳化分配就能達到最快速度。

同樣的CPU也有分上層和下層,某一顆CPU會專門協調要分配給哪一顆CPU做運算,

絕對不會發生一個核心塞車讓全部都等待的鳥事。


除非這個軟體工程師兩光。



aa11zzxx wrote:
這不就凸顯出了你不會寫平行運算= =

現在平行運算發展最好的是做在GPU上,

根據多核心去分配運算...

CPU也有平行運算,但是絕對不是用那粗淺的C語言寫出來的...


看了你寫的短短幾行錯3處
單純為酸而酸?
我本來就不會寫程式的. 是我自己想當然爾的寫法.

其中cpu1/cpu2/cpu3 是指分配到三顆核心上去計算. 然後再將結果傳回cpu0 算出x .
意思是這樣.

我想真正專業的人, 解釋起來應該很讓人想睡覺吧.
錯了麻煩挑出來好嗎??

不然你也是為了酸我而酸~

呵呵 半斤八兩

it6168 wrote:
我本來就不會寫程式的...(恕刪)


實際上 工作可能更簡單 也可能更複雜
這需要看規劃的方式

你所列舉的 是常用的方式之一
不過在這個作法 除了這樣之外 還需要加上data lock和等待機制
在這方式下 實際上是比你寫的更繁複些
亂七八糟的討論串, 很多講法都是錯的.

1. android 3.0 以後支援多核心, 是系統支援不是程式支援.
2. android 程式跑在支援多核心的VM上, 所以不管你的程式有沒有寫成多執行序, 作業系統都可以用多核心同時跑, 並不是程式開發者的問題.
3. 有些人不懂VM. 簡單這麼說吧, 你不能直接存取電腦的硬體, 不能叫CPU1做這做, CPU3做這個, 因為VM的關係Android才能同時支持不同的硬體(intel/ARM) 或是不同數量的核心.
4. 絶大部份的遊戲都支援非同步多執行序.像你在angry bird看到的一支鳥, 一支豬, 一個箱子, 都是一支執行序.
http://picasaweb.google.com/HsiuChe.Shih
大家別太認真.

我覺得CPU 和公司運作很像.

程式就像公司的 process.業務,研發,製造,財務,行政, 採購, 大家各司其職又互相關聯.

在這裏製造就很像GPU. 重複做大量的事.

在製造之前的那些單位呢, 越強大的單一組織比較有效. 而製造呢, 越多條產線, 產能越大.

不過因為我在意的是速度. 而不是多核心或多執行緒是否能被執行, 所以VM 並沒有回答我的疑問.

我想知道,跑單一程式, 到底是intel 和apple A7 的雙核快, 還是quacomm,mtk,navidia,rockchip 這些強調多核的CPU 快.




Simon_shih wrote:
亂七八糟的討論串, ...(恕刪)


建議你寫個busy loop 去看看有幾個核心在作用
再來回答這個問題
  • 6
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?