MikeB said: This because the SPUs require you to design your code efficiently and well structured, the CPUs aren't that different with regard to running well optimed code. Once you have a PS3 with the YDL6 installed do some coding. It's not hard, but you will be able to spot inefficiencies easily and this is crucial for the SPUs. Some quotes from developers: Insomiac Games: "Conclusions * It's not that complicated. * Good data and good design works well on the SPUs (and will work well anywhere) - Sometimes you can get away with bad design and bad data on other platforms -...for now. Bad design will not survive this generation. *Lots of opportunities for optimization." http://www.insomniacgames.com/tech/articles/0208/files/insomniac_spu_programming_gdc08.ppt Article being discussed here at Beyond3D: http://forum.beyond3d.com/showthread.php?t=47057 A PC/360 games dev responded: "Regardless of managed memory or cached memory, the concepts and methods Mike has presented is highly portable. In the case of cached memory, that method results in optimized cache locality and cache utilization (something extremely important when multiple threads are sharing L1 on a single core, and multiple cores are sharing L2), and a predictable way to optimally prefetch. Good data locality, minimal sync points, branch elimination, and vectorization are all required to be able to extract great performance out of the 360 as well."" Sony finally made a statement with regard to this as well, something I have been saying for a long time: "Third party publishers and developers are moving away from using Xbox 360 as their primary development platform. They understand that developing on PlayStation 3 first makes more sense and, in fact, will make the Xbox 360 version look better." Nostromo (Ninja Theory) developer at NeoGAF: "Using PS3 as a 'lead platform' is the right thing to do if you are going to make a game that has to run on 360 and PS3. The reason is very simple: on PS3 designing your data structure in the proper way is paramount to achieve decent performance (and to scale up..), while your PS3 friendly data will be also 360 friendly data in the vast majority of cases. This is a big win cause you will definitely be able to get the most from BOTH platforms." Another multi-platform games developer posting at Beyond3D (admitted their initial games were just "quick & dirty ports from 360, still doing a game on 360 first but should change in the future): "We all agree given the time we'd like to architect for the SPU's first then work back... giving us cache-friendly algorithms by design " Note SPU friendly code is cache friendly on the PC/360. Some quotes from a dev working on Tomb Raider Underworld (from E-mpire forums): "asset-wise 360 was around first, so we made stuff keeping the 360 in mind first." "Well, that all depends on your definition. Writing code optimized for the PS3 and using threading policies that are suited the SPUs is a given, because not doing so would not be acceptable at all. All our multithreading is done on PS3 first without exception, and other platforms emulate SPURS." "Secondly, the matters of multithreading policies, the whole job queue architecture, encapsulation of jobs and their corresponding data packets, etc. that work on the PS3 are indeed more than applicable of the 360/PC. And as I've mentioned before, they work better than anything and everything that Microsoft recommends (so far without exception for us). The problems lie in the fact that that work is an absolute necessity on the PS3, whereas they're not entirely necessary on any other platform." Do you understand now? |