PS3 based raytracer for Blender (internship)

Hello,

(I am not sure if that topic is correct for that section)

I am working at IBM in Cell/B.E. systems development. Last summer semester I hosted a diploma thesis with the goal to create a Playstation 3 based external renderer for Blender. There was not much time for much code development but the result is existing.

The render setup is :

  • modified Blender (copied the yafray plugin / panel way to trigger the render)
  • on button press - export happens through modified wavefront script
  • file transfer to PS3
  • new written renderer on PS3 linux takes .obj and displays it
  • on PS3 you can rotate object by mouse, framerate is typically between 5fps and 20fps depending on objects
  • on new render the PS3 image gets updated
  • renderer currently only does several light based shadings but not reflection, refraction, texture…
  • optionally the renderer sends the image back to Blender - there it gets displayed in the render windowI have no movie yet but just a setup-shot:

http://img223.imageshack.us/img223/9566/dsc05517ov9.th.jpg

I would like to proceed that work. For that I am looking for a student who comes to Boeblingen/Germany for an internship. One of the first things to do is clearly get the current package on the web (IBM Alphaworks) so that the Blender community can try it out and give feedback. Next steps will be to add additional shaders and improve the handling of the raytracer.

If you are interested we can discuss here or just apply at http://www-05.ibm.com/employment/de/studenten/jobs/jo14083.html
Its a German website but the description is in English…

Thanks!

That sounds very exciting and something I would be very interested in if I knew anything about programming, was still a student and lived several thousand kilometres closer!

Be sure to keep us posted on the progress (if that is allowed) as I’m sure plenty of people will want to know. I know there was a fair bit of discussion when the PS3 was released as to it being a ‘cheap mini render farm’, but Blender couldn’t make the most of the cell processor at the time.

Feel free to tell you employers that I may outright buy a PS3 depending on the outcome of the project. Assuming I understand what you are aiming for.

Thats quite an intresting project.
However personally i would not be intrested in the stuff around the cellchip, meaning the rest of the PS3.
Either a cellchip in my puter would be great, or what would be even better for the market so ppl would not have to re-construct the whole system, a PCI render card with a cellchip slumbering on it.

This truely sounds intresting. The fact the the cell chip is easy to scale up could make building a render farm pretty easy. there was that article on the net, can’t remember where, about a researcher how built a supercomputer by linking five ps3 together.

@arexma though pci is fast I don’t think it would be fast enough to cope with the likes of a cell chip. the trump card for most consoles as though the tend move data between the various components far quicker than pcs

Yeah, absolutely… i guess even PCIe x16 wouldn´t be fast enough. It has to be a pure rendercard, where you pipe the scene to and you get back the rendered picture. Any other datacommunication would only be slowing down. A cellchip alone on a card would not be enough. I meant it more like a PS3 on a PCI(e) card. but i dont need a HDD/optical drive and the other features of the PS3.

that would be great please keep everyone informed!

just saw the post on the sony zego that is based on the cell processor, this really got get intresting.

http://blenderartists.org/forum/showthread.php?t=136840
(for future reference)
Tiberius… I have ubuntu on my ps3, have not tried any blending on it though. How did you manage to get under the hypervisor to the cell’s?
I have read rumours elsewhere that zego will mean sony will have to release linux drivers for the gpu cells which might open the whole “render on my ps3” idea up.

J

I think you are confusing the RSX graphics chip of the PS3 which the hypervisor hides with the CELL CPU that the actual OS runs on.

Sony doesn’t hide the CPU, they hid the GPU. So you can write a CPU based renderer, which was what this guy did. But notice that he is making a custom renderer that is highly integrated with Blender over a ethernet connection. He isn’t running Blender on the PS3

Still I’d love to see it run on the ZEGO.

I’d use the renderer, if it would have enough features,
eg. it be close to if not better than blenders current renderer.

i stand corrected. On closer investigation, I realize now that the cell processor is in fact the PowerPC derived CPU not the GPU.

According to this wiki link :- http://en.wikipedia.org/wiki/Cell_microprocessor the ps3 has 8 cells (1 redundant, 1 for OS and 6 for fun stuff) available. However, when I run Ubuntu I only see 1 proc and mentions of PowerPC architecture. Hence I believed their was a powerpc chip along with a number of cells for GPU tasks. I was wrong, but it does lead me to other questions… can we use 6,7 or even 8 of these for rendering? I know there is a memory issue (256mb??) when it comes to rendering, espescially if multithreading is used, but I did manage to get blender rendering on an old Xbox (not 360) at one point and i seem to remember that was 64mb.

Enough of the chat, I’m gonna boot up my PS3 in ubuntu and give the old grass benchmark a go in blender to see what happens :wink:

J

I am happy to see all the interest.

The connection between the x86 host running Blender and the PS3 is currently the weak point on the setup. Currently we export text based scene files (.obj) over network. We decided for that way because it was less risk and easy to do. We put most of the work into the renderer. Looks like I missed that part when telling about the job - improve efficiency of network connection :wink:

Toshiba uses a Cell/B.E. PCIe card (Spurs). That would be an interesting device to try for that renderer too.

@julesd-g6
I also use Ubuntu standard installation. You dont need to bypass the Hypervisor. The Hyp provides 6 usable SPEs which can be access through libspe under Linux. The RSX GPU is not used at all beside displaying the image. PS3 provides 192MB memory to the user which definately will become a problem when dealing with textures. The render process first creates a acceleration structure (BVH) on the 2-thread PowerPC core then the rendering is completely done on all the 6 SPEs.

For professional use/clustering it may be worth to go to QS22 Cell Blade (dual, 16 SPEs and GBytes of Memory) or ZEGO (its only single CPU and just 1GB).

hmm… would it be possible to stick a usb memory-stick behind the ps3 and use it as additional memory(cache?) for the rendering?

Only relevant here is high speed memory which can be access directly through SPE DMA (direct memory access). On PS3 that is Rambus XDR memory with over 25 GByte/s bandwidth. USB stick is much much slower and cannot be used for texture processing.

Ehh, that’s true, but 256, just isn’t enough for cinematic renders(eg. BBB’s renders used ~4Gigs),
don’t thing swaping stuff in the (even though very fast) memory would be enough, though,
I’m not nearly good enough of a ‘programmer’ to really tell/speak of this, I suppose. :confused: