http://www.gameplayer.com.au/Home/PREVIEWS/PREVIEWGAME/tabid/1484/Default.aspx?CID=bb1443ed-30f8-4eb2-b212-8926111caf49&v7Pager=3
所以Splinter Cell : Conviction沒辦法在PS3上發售。
但是在此同時,8/14號,三個PNNL的專家在DDJ發表了一篇文章。
http://www.ddj.com/hpc-high-performance-computing/197801624?pgno=1
Programming the Cell Processor
It may be tricky, but the performance gains are worth the effort
最佳化之後,單顆CELL的性能達到了Woodcrest的22倍,單顆SPE的性能最高可以達到1.4 ~ 4.75倍,足以和256顆CPU的BlueGene/L對抗….
好吧,程式碼變成20倍長了。XD
總之,人家用的演算法是BFS。 _A_
還附上完整的optimize guide….
原文:Some techniques (loop unrolling, function inlining, SIMDization) are familiar; others (bulk synchronous parallelization, DMA traffic scheduling, overlapping of computation and transfers) are less so.
[EDIT]基本上,目前問到的結果,Splinter Cell系列完全只使用PPE和RSX。
PS3 games list & SPE usages
http://www.neogaf.com/forum/showthread.php?p=7598043
整串
http://www.neogaf.com/forum/showpost.php?p=7598043&postcount=1
單篇
持續更新中。
雖然小弟也寫過Cell(正確的說法是寫過PPE)的超小程式,
對於SIMD結構下做分支的方法,
也不會感到有何不好,
該不會是Ubisoft的演算法有古怪^^?
嗯…. 這段是間接詢問的,因為也不知道這些人是不是肯定是當事人。
(疑似)上海的Ubisoft人員是說,他們目前working title上的AI code本身規模就已經超過數十KB的程度,所以如果要用loop unrolling之類的最佳化手法的話,他們”認為”程式碼會膨脹到LS絕對放不下的地步。
不過從對話中來看,他們的遊戲是”傳統寫法的普通AI”,只是複雜度是過去title的延伸。然後分別針對這兩者討論。
比方說第一種圖學類,也就是line of sight、pathfinding之類的演算法,他們是”認為”非傳統的做法SPE或許可以做,只是效率不會比傳統做法在PPE上跑的高。(言下之意就是他們認為SPE沒辦法寫出比現在快的pathfinding)。
至於第二種邏輯類,也就是statemachine、專家系統類的話傳統的做法是用pure C code一個引擎之後用寫scripting language的方式來處理,這邊也是被他們認定”一開始就替SPE optimize的話AI演算法就沒辦法debug了”,但是這種做法的話這種state machine本身有效率地port到SPE的可能性也很低….之類的。
也就是說其實整篇看起來像他們一開始評估的過程本身是沒錯,但是他們應該也應該因為上述的評估所以沒實際動過手,所以這讓CELL的支持者應該是會看不太下去…. 🙂
http://www.research.ibm.com/journal/rd51-5.html
IBM Journal of R&D。
看起來IBM在CELL的資源研發方面也很拼啊。
‘他們”認為”程式碼會膨脹到LS絕對放不下的地步。’
以上意思就是SPE光LS就不夠了,
更不用說SPE適不適合了…
這句話大致上是這意思吧?
雖說傳統寫法的普通AI在SPE上可能效率較低,
但不代表SPE就不適合做AI,
所以SPE做AI方面還是要對其本身下藥才是^^a
LS對SPE而言是一塊256KB、延遲6cycle的”主記憶體”,以定址範圍來說這塊記憶體可以高達4GB。
SPE本身還是有一塊Atomic Cache,同時負責從外界(其他EIB上的元件/以及LS)傳輸、交換資料用的記憶體,如果擴充這塊的話,LS本身可以換成比較大、但是延遲比較長的其他記憶體,比方說先前考慮的SOI based eDRAM,理論上同樣的size可以放到1MB。(時脈大約是500MHz(2ns random cycle),延遲1.5ns,3T Micro Sense Amplifier),所以理論同樣的面積可以放入1MB的eDRAM(不過電晶體會增加到3倍,因為同容量電晶體只減少1/4)
IBM是希望45nm時期的CPU可以透過這個技術增加on-die上的記憶體容量,普遍來說容量可以達到繼續用SRAM的三倍大,到時候新版CELL也應該會受惠吧?只是短期內還是要與256KB奮鬥就是了。
http://www.research.ibm.com/…l/rd/491/matick.pdf
—-
不過話說回來,其實因為LS(主記憶體)的延遲這麼小,隨機存取主記憶體對性能的傷害很小,在LS範圍內的資料存取性能是很驚人的,應該可以利用這個特性來做才是。
Ubisoft的AI,尤其是state machine很依賴OOOE之類傳統結構來支援,所以”認為”其實在PPE上也佔不到什麼便宜,”更別提SPE”….但是那是程式碼不改的狀況下。我是覺得其實就算條件分支有一些penlty,其實SPE還是一樣很快,一般的state machine其實本來就不是很快的東西,SPE上面一些misprediction相較之下衝擊真的很大?還蠻微妙的耶。