IBM 發表 “GameFrame”

http://gametomorrow.com/blog/index.php/2007/04/26/want-to-run-a-game-on-big-iron/

這是上週的新聞,IBM開始進行所謂的”GameFrame”計畫,打算將CELL與MainFrame整合。
這個算是過去已經有心理準備的東西了,而且也很循序漸進一段時間了。大概可以成下面幾個階段:

1. 使用CELL的PS3
2. 在CELL blade上執行的全物理模擬化MMORPG
3. RoadRunner的異種處理器分散結構(x86 + CELL,各自負責大型程式的執行與關鍵浮點運算)
4. 上述的要素重新整合進Power6 based的MainFrame。

剛好同一個時間SCE也開始Home的beta作業,可以說一切都配合得很好。

PS3本身的記憶體並不算多,傳統的Server=Client結構也很難達成讓遠端資源順利為客戶端所用的夢想;但是GameFrame的構想如果可以實現的話,理論上整體的運算資源會變得比較有效率:Server端執行一個相對比較大的遊戲規模,然後在client端就可以只分割處理成一個比較小的單位,而client之間也可以用P2P交換資料,改善效率,就像是GameFrame單獨執行一個巨大的遊戲image,而各個PS3只需要從中取得一部分的content般的感覺。

而且MainFrame結合CELL的技術,也可以擴充單一image的規模。過去一個網路遊戲的server一般限制在頂多數千人左右的規模(與硬體及網路資源均有關係),但是現在可能可以到達數十萬人的境界。而且考慮Home本身在”遊戲內執行遊戲”的這個特性(本身Home作為match-making工具的色彩仍然很重),擴充Home內的社會性行為,以及利用Home來進行PS3本體的遊戲,都有相當的發展空間。

雖說個人認為PS3在細部繪圖上還可以發展的空間,已經受限於RSX的硬體能力的部份較大,但是關於數位內容的表現能力上,多樣性本身應該會有很長足的進展。比方說Lair已經透過Progressive Mesh實現了極大規模的real-time LOD場景結構,畫面細部部份不見得表現非常出色,但是仍然實現了過去CPU性能受限(來自於x86市場特性),必須將工作轉交給GPU時所犧牲的許多東西。這已經提示了一些未來的方向,或者說本來設計PS3這個系統的技術人員原始的願景。

最低限度,光是MainFrame帶來的RAS改善,就已經非常可觀了。

—-
不過話說回來,上面看起來只和MMO Game有關….而不是MMO Game類型的遊戲的話,Home還有沒有用呢?

Home本身會吃掉一定程度的記憶體(雖說某光頭說”很薄一層”),如果要做到”從Home進入別的遊戲”,”跳出回到Home”都要瞬間解決的話,那毫無疑問Home只能常駐了。當然Home裡面的3D環境要做到完全不吃記憶體其實不難,場景內容全部用重新運算產生就可以;但是重點在於作為一個純match-making system來說,Home顯得真的很花俏(畢竟刻意把非MMO Game作成可以接近MMO-Game的結構意義不大)…而Home提供的社會性行為部份真的能夠抵銷這個衝擊嗎?這是一個不小的疑問。

所以,如果Home可以同時提供許多非遊戲的功能的話,那就會顯得更有意義 — 目前聽說Home可能會有P2P Media-sharing功能,應該就是為了這點而加入的。而且實際上已經有些遊戲想加入PS3本身就可以當Host的功能,如WarHawk。(玩家可以用PS3來建立一個同時上線人數超過20人的server,並且那台PS3本身同時可以開4分割螢幕提供對戰….雖然這在PC上並不是什麼了不起的事情)

而這時候,能夠提供線上同時對話的match-making系統的存在價值,就是使玩家之間的聯絡更便利。即使遊戲本身提供server功能,Home仍然可以提供與玩家對話的功能,而且不僅是遊戲中的玩家,還包含沒有參加遊戲的其他玩家。能維護共通的member-list顯然會很方便。

總之,可以期待的事情非常多….

在〈IBM 發表 “GameFrame”〉中有 18 則留言

  1. to shady:
    >>3. RoadRunner的異種處理器分散結構(x86 + CELL,各自負責大型程式的執行與關鍵浮點運算)
    >不知道為何要才用x86+Cell,是成本的問題還是… (我曾經想說IBM已經有Power6,為何不用它…)
    不知道XD
    不過Opteron那時候已經取得一些成果了,Cray的XD1 就是用Opteron的產品。Opteron的延展性在當時其實應該是非常好的。
    也有人說IBM大規模使用Opteron是因為AMD是最佳的戰略夥伴(最大宗製程使用者)之類非技術面的因素就是了。

  2. > sony這個連自家隨身聽都龜毛到不行的會做出這種東西嗎?
    呃,龜毛不變啊。
    Home先前已經知道在自己的房間可以上載PS3內部的media file,現在根據beta tester指出,現在可以做到user間直接傳輸上的檔案交換。
    但是即使傳輸上使用的是P2P技術,還是限制在PS3現在自己可以處理的媒體….雖說容量上應該可以透過DLNA/samba去擴充,但是可以處理的媒體以及對DRM的政策顯然是不會讓你使用起來和emule一樣方便。

  3. >雖說個人認為PS3在細部繪圖上還可以發展的空間,已經受限於RSX的硬體能力的部份較大,但是關於數位內容的表現能力上,多樣性本身應該會有很長足的進展。
    RSX比起Xenos來說,VS是40GFLOPS比72GFLOPS(16US),
    而PS則是204GFLOPS(有計兩個SFU)比144GFLOPS(32US)…
    在整個核心來說,VS與PS各有優勢(除非XBOX360把VS全數交給CPU作,那RSX的PS不計SFU則須有565MHz才夠)…
    但現在Cell也可以處理VS或GS,也就是說只論繪圖核心,
    PS3還是略勝(不知一個SPE能產生多少的Vertex/s?)…
    所以整個PS3的繪圖最主要還是卡在記憶體的分配,
    總是覺得RSX讀XDR 20GB/s,寫XDR 15GB/s,
    比起GDDR3的頻寬很不足,且有延遲…
    而FlexIO總體的頻寬我記得有7xGB/s(Cell於3.2GHz),
    然現在只用40GB/s,那剩下的呢?
    若RSX的讀+寫有25+25=50GB/s,貼圖應該會更好…
    總結PS3的繪圖系統須先解決記憶體的問題,
    否則Cell再強也不會加強畫面太多…

  4. 我去查過Cell的FlexIO的規格為:
    This consists of a set of 12 x 8 bit busses which run at 6.4 Gigabit / second per wire (76.8 Gigabytes per second total). The busses are directional with 7 going out and 5 going in.{出處:http://www.blachford.info/…r/Cell/Cell2_v2.html}
    而為了PS3產量的考量,6.4Gbps改為5Gbps,所以總頻寬為60GB/s(out為35GB/s,in為25GB/s){參考:http://pc.watch.impress.co.jp/…28/kaigai220.htm}
    所以RSX和南橋晶片組共吃掉20+15+2.5+2.5=40GB/s,故只剩20GB/s(out為12.5GB/s,in為7.5GB/s),不知這剩下的頻寬是跑到哪了呢(真是耐人尋味啊~~,不知Eji大是否有這剩下的頻寬之情報,不過我也不排除因為產量之因素而將其砍掉XD)?

  5. FlexIO剩下的頻寬?”沒用到” XD
    不過實際上FlexIO有個限制,就是”和兩顆晶片”相連不需要額外的ASIC。
    所以,可以想像最大的組態就是
    1. 兩個CELL相連,雙向頻寬20GB/s(去回各10GB/s)
    2. 一個CELL連接RSX、一個CELL連接SSC。
    這個也是先前對強化版AV用PS3的猜測。

  6. 如果照上面的設定….連接法就像下面這樣:
    SCC—CELL1—-CELL2—-RSX
    一個CELL在沒有外部switch的狀況下最多只能與兩個晶片直接相連,這是FlexIO的限制。
    SCC–CELL1的頻寬是5GB/s up、5GB/s down(SCC的極限),
    CELL1–CELL2的頻寬是10GB/s up、10GB/s down
    CELL2–RSX的頻寬是20GB/s up、15GB/s down(相信是RSX的極限)
    主要限制是RSX/SCC的頻寬實做了幾個channel….
    RSX的頻寬是上傳20GB/s、下傳15GB/s(上=往RSX),所以是上傳32bit、下傳24bit。
    SCC在PS3上的頻寬只有在CELL blade上的一半,所以buss寬度只用了上下傳各4bit,實際上SCC實做了上下各8bit,所以應該是上下傳各5GB/s。
    上列的頻寬總共上傳40bit、下載30bit,剛好上下傳各剩16bit,考慮前述FlexIO在topology上的限制,前述的連接法正好可以用完FlexIO的可用頻寬。

  7. >CELL2–RSX的頻寬是20GB/s up、15GB/s down(相信是RSX的極限)
    不知RSX是用啥來與FlexIO接續,是PCI-E還是用記憶體的256bit來接(GDDR3與FlexIO各128bit),
    又或者是RSX也有一in為20GB/s、out為15GB/s的FlexIO,因此造成Cell–RSX的頻寬就是如此?
    (如果RSX也是用FlexIO,真不知為何要20+15,而不20+20? 真搞不懂SONY啊XD)
    真不知PS3的繪圖記憶體要如何突破256MB…
    (正確來說XDR+GDDR3=64+32=96MB,所以GDDR3只有224MB給貼圖用…XD)
    不知Eji大是否知道有那些方法能用XDR來做繪圖記憶體呢?
    http://www.chipworks.com/…laystation_report%20(2).pdf
    上面這PDF中有提到PS3還有Samsung K9F1G08U0A 1Gb SLC NAND Flash的記憶體,看圖好像是接在南橋,不曉得這記憶體能搞啥鬼?

  8. >不知RSX是用啥來與FlexIO接續,是PCI-E還是用記憶體的256bit來接(GDDR3與FlexIO各128bit),>又或者是RSX也有一in為20GB/s、out為15GB/s的FlexIO,因此造成Cell–RSX的頻寬就是如此?
    >(如果RSX也是用FlexIO,真不知為何要20+15,而不20+20? 真搞不懂SONY啊XD)
    很明顯啊,因為G7x並不重視GPGPU-based的運算,並不太需要回傳頻寬,所以CELL往RSX的頻寬比較大是可以理解的。實際上CELL從RSX的local buffer讀取記憶體的頻寬小到反常,反而是RSX直接render到主記憶體的效率和頻寬成正比。
    >真不知PS3的繪圖記憶體要如何突破256MB…
    >(正確來說XDR+GDDR3=64+32=96MB,所以GDDR3只有224MB給貼圖用…XD)
    >不知Eji大是否知道有那些方法能用XDR來做繪圖記憶體呢?
    嗯?就普通的TurboCache就可以啦?RSX讀寫主記憶體的頻寬都有很確實的實測值,是可以掌握的資源,那取用上有什麼特別的問題嗎?
    http://www.theinquirer.net/…emory_bandwidths.jpg
    而CELL倒是幾乎等於只能用256MB….雖然這其實並不是大問題。

  9. 小弟我已看過這張PS3實測圖了,
    最讓小弟疑問的是Cell讀/寫XDR相差甚大且未達25.6,
    但RSX讀/寫GDDR3卻可以達到22.4,
    不知是啥原因造成的?
    還有就是Cell讀/寫GDDR3可以不用了,
    全給RSX讀/寫XDR來達到20/15較實際XD
    可Cell讀/寫GDDR3全給RSX讀/寫XDR卻只有19.5/14.6,
    和Cell讀/寫XDR一樣未達100%,
    造成此原因是否和Cell讀/寫XDR相差甚大且未達25.6之原因一樣?
    最後小弟一直將XDR能否當作繪圖記憶體之焦點一直放在FlexIO的BW上錯了,
    應該放在XIOEIBFlexIO的延遲才對,
    不知其延遲是否非常的小?

  10. >應該放在XIOEIBFlexIO的延遲才對,
    當中的XIOEIBFlexIO是筆誤,
    原本是要打成”從XIO經EIB到FlexIO”才對…
    不過話說回來,
    就算這段路徑的延遲在能接受的範圍內,
    難道RSX對XDR作材質貼圖的處理不會影響Cell的效能嗎?

  11. 延遲的部份RSX是用加大的texture cache去cover了。
    至於拿XDR存取材質會不會影響效能?當然會啊。
    可是今天的問題如果在材質容量的話,這就是現在的解答。
    頻寬的話,很多人都會想256bit GDDR3,但是那不是成本內的解決方案。

  12. >延遲的部份RSX是用加大的texture cache去cover了。
    哦~~原來還有這招啊XD
    既然如此就要看頻寬夠不夠用了…
    >至於拿XDR存取材質會不會影響效能?當然會啊。
    >可是今天的問題如果在材質容量的話,這就是現在的解答。
    也就是說一次存取一塊材質的容量要在不影響效能的範圍內…
    所以那張PS3實測圖中Cell讀/寫XDR相差甚大且未達25.6GB/s,
    就是RSX拿XDR存取材質容量過大所造成的影響囉?
    不過話又說回來,
    PS3的Cell只有7個SPE,
    照理說應該是少一個SPE在搶頻寬才對,
    所以對有307.2GB/s的EIB來說應該很夠用才對啊?
    (EIB的BW到底是307.2GS/s還是204.8GB/s…我被IBM給搞混了XD)
    可對XDR來說是大家都在搶啊…

  13. 其實考慮大家都那麼不會作multi-thread,從8個2.4GHz(SDK)變成6個SPE應該會比較好用XD
    (單一thread性能上升33%)
    EIB的頻寬部份,至少IEEE的論文上最後是寫204.8GB/s就是了。XD
    http://hpc.pnl.gov/…io/papers/ieeemicro-cell.pdf
    7個裡面有一個是Hypervisior/OS專用的關係,所以並不會吃頻寬。
    不論如何,所有在EIB上的單位都有一個(FlexIO bus是兩個)16byte的port,所以每個SPE/PPE/XDR都是25.6GB/s的雙向頻寬(只有FlexIO是51.2GB/s),所以照理來說只要EIB能符合這個需求應該就可以了。
    也就是說相較於EIB的總頻寬,每個SPE/PPE其實都只有一點點的頻寬吞吐能力,並不是一堆單元有辦法靠自己吃滿EIB頻寬…. 所以其實並沒有什麼EIB頻寬不足的問題。
    所以EIB剩下的問題就只有latency….這邊就要靠DMA上的處理技巧了,比方說那篇瑞典大學的H.264 Encoder,裡面就有”如果frame的複雜度不高,就可能會發生SPE已經算完了,但是下個frame的資料還沒透過DMA傳過來,結果造成SPE stall”的問題,這就是運算量和傳輸量之間還沒有配合好所造成的。

  14. 看過那篇IEEE的論文後,
    我想我了解到SPE的最佳化…不,
    應該說是整個PS3的最佳化是:
    1. PPE盡量作好分配指導的角色,
    做好整個system的平行處理…
    2. SPE則是靠DMA上的處理技巧,
    使自己不會stall(RSX也要當成如此處理)…
    3. 舉不出例子來了XD
    不過光前兩點就已經搞死很多的遊戲商了XD
    (因為大家最先摸熟的只有RSX,而且只能用GDDR3而已…)

  15. 不過說真的,以我自己的看法,我覺得比較可能是307.2GB/s。
    因為其實你算一下,PPE、SPE x 8、XDR各有一個16byte的port,FlexIO有兩個16byte的port,合起來剛好是 12 x 16byte x 1.6GHz = 307.2GB/s。
    所以EIB有307.2GB/s剛好可以完全符合這個需求。
    此外,PPE你提到做好分配指導的角色,不過只要是移植類的軟體似乎都很難做到這點,只有重新coding才能解決這個問題。
    比方說Ageia的PhsyX library for PS3,當初宣稱可以把PPE的工作減輕50%,這不就代表還有一半的工作還在PPE上?那蠻悲慘的耶。
    來源:
    http://www.watch.impress.co.jp/…060514/ageia.htm
    PS3上的Havok 4.0和4.5可以差10倍效能,這也是一個代表性的部份。
    (可惜一些用到Havok的title已經都release了,這個更新才放出來)

  16. 照Eji大的算法,那204.8GB/s應該是指8個SPE的BW…
    >比方說Ageia的PhsyX library for PS3,當初宣稱可以把PPE的工作減輕50%,這不就代表還有一半的工作還在PPE上?那蠻悲慘的耶。
    如果考慮最糟糕的情況,就是原版本在Cell上執行時,
    全靠PPE在撐場面,那真的很慘…
    不過就算原版本PPE只吃60%,看樣子也好不了多少XD
    看樣子重新coding方為上策…
    (目前移植的遊戲,PS3真的做的不是很好…)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料