聽說Ubisoft講CELL沒辦法跑AI….

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
單篇

持續更新中。

在〈聽說Ubisoft講CELL沒辦法跑AI….〉中有 5 則留言

  1. 雖然小弟也寫過Cell(正確的說法是寫過PPE)的超小程式,
    對於SIMD結構下做分支的方法,
    也不會感到有何不好,
    該不會是Ubisoft的演算法有古怪^^?

  2. 嗯…. 這段是間接詢問的,因為也不知道這些人是不是肯定是當事人。
    (疑似)上海的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的支持者應該是會看不太下去…. 🙂

  3. ‘他們”認為”程式碼會膨脹到LS絕對放不下的地步。’
    以上意思就是SPE光LS就不夠了,
    更不用說SPE適不適合了…
    這句話大致上是這意思吧?
    雖說傳統寫法的普通AI在SPE上可能效率較低,
    但不代表SPE就不適合做AI,
    所以SPE做AI方面還是要對其本身下藥才是^^a

  4. 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相較之下衝擊真的很大?還蠻微妙的耶。

發佈留言

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

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