Ray tracing on PS3 hardware

一个多月前看过的视频,3台PS3通过路由连接起来,已经可以实现实时(或交互)的ray tracing了。虽然对Cell之前有过了解,但是那么快就有成果还是比较震惊的。



看了一下paper,有所启发。一般有两种做法,SPE作为ray tracing的每个stage,拥有不同的kernel,以及SPE上运行相同的ray tracing kernel,处理屏幕上不同的像素。第一种方法问题在于难以平衡每个stage中的load balance,避免stall,设计方面将会无比复杂;第二种方法头疼的地方在于每个SPE都要任意存取整个场景的几何数据,这显然不是256KB LS能放的下的,所以需要设计一个software cache做法来掩盖讨厌的DMA操作,所幸相近的像素之间对于场景数据的coherent是相对较大的,所以software cache的命中率也会较高,再加上software hyperthreading的做法——把cache miss后的SPE转去处理其他已有现成场景数据的像素,等它所需要的数据异步DMA到达之后,再处理之。
至于多台CellBE的话,可以把场景数据通过网络同步到多台CellBE的主存中,然后通过协议分割屏幕像素以便处理。说实话,这种做法的工作也不小……

由此看来,加上Folding@home在PS3上的巨大成功,我们有理由相信类似CellBE架构的CPU将会成为未来高性能计算的主流之一——只是目前我们尚缺乏时间和工具。

题外话:似乎国内这方面动手的还是比较少,希望有经验的朋友多交流。
posted @ 2007-05-24 10:38 eygneph 阅读(47) 评论(0)  编辑 收藏 网摘

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-05-24 10:51 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接: