Source:GameTomorrow。
http://gametomorrow.com/blog/index.php/2005/11/30/gpus-vs-cell/
IBM這些怪物還真是珠玉連發…. _A_
作者將這邊的這個Ray Tracer(以NVIDIA CG寫作)轉port到Cell上後,在未經最佳化、只使用7個SPE的情況下(1個SPE用來做render result的圖形壓縮),超越OC過的7800GT約30%的表現;作者並認為,如果演算法再對Cell做過最佳化的話,有機會達到5~6倍的表現。
Cell 的 SPE 間由於有相當快的溝通管道之故,在不少狀況下的效率會比必須透過multi-pass的Pixel Shader效率好,於是使得理論效能約313 GFLOPs的7800GT,實際表現比179.2GFLOPs的7個SPEs要來得差,這是GPU先天上對通用運算上的弱勢,也顯露出了Cell在這些環節上的優勢。
於是我還真期待看到Cell 的 MPEG Transcode效能….
AVIVO Transcode能跑贏Athlon64 X2約5倍,那Cell呢?
—-
另一個東西:
http://www-128.ibm.com/developerworks/power/library/pa-cellperf/
Cell Broadband Engine Architecture and its first implementation
完整的效能測試數據;因為DP還是SP的1/7,所以應該是DD2的數據。
而GameTomorrow這篇,作者表明他使用的是Cell DD3.1。
—–
http://bbs.gzeasy.com/index.php?showtopic=468476
本文在GZeasy的相關討論。
裡面有一篇蠻有價值的東西,主要提到了XBOX360與PS3的架構差異、以及與PS2之間在理念上的關係:
(ibelieveicandie @ 2005-12-04, 12:31)
我觉得ps2设计的本质,就是一系列异质processer,有各自的local memory,通过高速local dma总线来协调并发操作。比如EE, VU0, VU1, GS都是异质processer. vu0, vu1有各自独立的micro memory,而GS则是edram。所有这些local memory是不共享的,只通过专用的dma通道互相连接。从这个角度上说,ps3的架构和ps2并没有太多差别。gpu的video memory和GS的edram在体系结构图上的位置也没有区别。SPE的LS和VUx的micro mem在体系结构中的位置同样没有区别。
而360继承xbox的设计原则,在统一架构的方向甚至走得更远。从架构上来说,甚至GPU和CPU的区别都在缩小。作为第四个虚内核,GPU和其余三个实内核共享L2 cache和main memory。取消了绝大多数专用dma通道。edram对于C1并不像GS中的edram那样作为local memory,而是作为frame buffer的cache。GS要求所有数据要么从CPU/VIF1通过DMA直接传过来,要么放在edram中。而C1要求所有操作数据都放在L2cache/main memory中,无法从edram中得到任何数据,只能控制edram resolve到main memory再使用。综上所述,除了都用到edram这个内存技术之外,360和ps2/ps3在架构上是没有太多共同之处的。
补充一句:对ps2而言:主内存只是EE的local memory,和其他processor都是不共享的,各个local memory之间的传输只能通过从EE发起的DMA请求完成。ps3虽然理论上可以从spe, gpu访问主内存,其实也是通过局部总线完成,效率上受很大约束。
也就是說,XBOX360在結構上的unified性、共享性比較接近XBox;PS3在各個處理器內都有自己的memory、並且分散平行處理,於是這點觀念上和PS2比較共通;至於效率問題這邊不作預期。
Tiberius說:
參照"SPU Identification register", CBEA_01_pub.pdf page 267,SPE的辨識用register有32bit的空間用來區分,也就是說有4G個SPE可被辨識出來….然後每個SPE再各自分到4G的定址空間。
Tiberius 說 : "程式不用改, 工具不用換", 單顆小 cell, 手機上面只有一兩個 SPE 的 cell, 大型電腦系統裡一層 rack 插了十幾顆大 cell 的 node …全部能透過相同的介面操作 …不覺得這樣實在超級誘人嗎 _A_
Cell 目前 SPE 之間的通訊方式, 看起來也很方便實做 MPI 之類的東西 @@。現在的 BlueGene/L 一塊 CPU 卡上面有兩顆 CPU,建議的用法是一顆負責 I/O routing, 另一顆跑計算,換成 Cell 的話, 或許變成 SPE 計算 (反正面積小耗電小, 弄一堆出來), 然後 PPE 專心去 routing。
看起來,IBM真的幫SONY把架構做得非常大…. 觀念是從PS2沿襲過來的沒錯,但是卻透過IBM的巧思把整個系統擴大到非常可怕的境界(Processor in Memory的觀念);至於XBOX360也是維持XBOX的觀念,所有的記憶體資源都是共享的(所以把C1的eDRAM直接拔掉,很可能還是可以運作)。
結果就會變成,PS3 vs XBOX360,剛好就是Non-Unified vs Unified System 兩個觀念的對決!!
使用相同的元件(PPE),卻可以做成性質差這麼多的系統,果然System Engineering是非常深奧的…. 🙂