作者darthv (閑談莫論國事)
看板hardware
標題Re: [轉錄] 雙核心對遊戲..絕對有幫助
時間Sun Apr 1 20:34:31 2007
小弟在類似Sony PS3上面用的CELL晶片上寫過c跟組語. (CELL有一顆泛用
cpu跟8顆DSP) CELL是IBM跟Sony,Toshiba針對HDTV,PS3還有地理探勘,醫學影像等目的開發的高階
運算晶片. 我來說我的想法好了.
多核心的資源比單核心多這是一定的. 只是多核心的編譯器優化跟程式寫法
都很難,也就是多核心的效率發揮大部分留給了軟體.
在跑多個同質軟體的情況下,譬如ftp, web伺服器,多核比單核好這是肯定的. 網路
伺服器已經是多核架構,32核心也不稀奇.
現在的爭議點在於,跑單一軟體的情形下(如3D Game),多核是不是比單核好? 我們
假設用戶將遊戲軟體以外的AP(防毒,eMule)都關掉. 那麼遊戲軟體就變成了單程,
此時多執行是可以享受到好處的,因為多個無相依的執行緒可以同時運行 (譬如
前景以及後景的計算).
但是要真正享受到雙核,遊戲軟體或是顯示卡的驅動(包括3D函式庫)要針對雙核
作優化. 雙核在3D運算上當然是有好處的,兩個128x128矩陣相乘拆成四次64x64
的矩陣相乘,然後分別丟給兩個核心作兩次可不是快了一半? 不然PS3幹嘛用8核心DSP?
可是你程式寫的時候要由程式設計員去把128x128矩陣相乘展開給兩個核心用,現今的
應用程式沒有這種優化,所以只能在有多執行緒或是多行程的時候(而且不能有相依性喔)
才能展現性能. 這才是重點!
所以問題不是雙核好單核好,兩個人打一個人當然贏面大,前提是這兩個人要
知道協力作戰,而不是輪流上陣.
※ 引述《yyb (我們都愛周星馳)》之銘言:
: 難寫的應該不是多執行緒...
: 我想最難的大概是要寫一套單核雙核都通吃的程式,
: 且還可以穩定的支援兩大平台的指令集...等
: 甚至還要考慮四核心?
: 若是完全分離寫成2套遊戲,那我想可以比較快沒錯!
: 但是在市場還是以單核為主的情況下
: 遊戲業者應該不會想增加這種不必要的工作負擔....
: 未來一定會有同時支援單雙核的程式核心出現,
: 到時多執行緒的也會比較普偏的啦...
: ※ 引述《deuter (Harold)》之銘言:
: : 我沒寫過遊戲程式, 不過我很難想像遊戲程式會沒有多執行緒?
: : 遊戲中一定會有些程序要計算某些數值, 這些程序就應該會在背景執行緒中執行
: : 或者最常見的 timer, timer 程序也通常會在另一個執行緒下執行
: : 再來 Windows 系統本身也會有自己的程序, 這些都是多執行緒
---
我放著矩陣運算不寫跟你們討論這些... Orz 明天要去IBM啦...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.45.30
※ 編輯: darthv 來自: 61.229.45.30 (04/01 20:35)
推 barnwell:推~受教了~ 04/01 20:55
推 inva:電爆置底大頭人 04/01 21:07
推 tobeensi:"電爆置底大頭人"? 這啥鬼? 上面推文的可以說明一下嗎? 04/01 21:08
推 coasting:大概是想酸一下置底的單核雙核比較吧... 04/01 21:48
推 lookersfa18e:fa18e: 置底文改成雙核心了啊. 04/01 22:08
推 coasting:基本上置底文的參考連結已經很清楚了....某些遊戲在同時 04/01 22:31
→ coasting:脈單核處理器上跑不順,換了同時脈的雙核處理器,一樣是 04/01 22:32
→ coasting:不順,這點沒啥好在爭了。 04/01 22:32