Tidbits Summary from “Writing Optimized Hardware Code for XBox360 & PS3”

Just finished attending the live session about “Writing Optimized Hardware Code for XBox360 & PS3” held by AIGameDev.com.

Please note that I’m not a hardware specific expert here, I jot notes that relevant to programming tasks which (as much as possible) relates to my work and be useful in the real field.

The following is the points I got from listening to Philip Dunstan (formerly EA) and Matthew Jack (ex-Crytek) with the moderator as usual Alex J. Champandard.

  • Writing bad code on Console is much slower than PC. 
  • XBox360 is released in November 2005.
    PS3 is released in November 2006.

    1 year separate between the two. 
  • XBox360 has ATI GPU.
    PS3 has Nvidia.

    A little bit of shock as I thought by myself for a long time that XBox360 has Nvidia chipset. This is reverse.
     
  • See this for both of their architecture.
  • XBox360’s CPU developed by IBM.
    PS3’s cell architecture is developed by IBM, Sony, and Toshiba (called STI).
  • Vector and scalar float pipelines are considerably taking time longer than integer pipeline.
    Vector pipeline is only slightly longer than float.
  • Try to eliminate branch as much as possible to get more speed.
    But this does not always gives out the better result as for some cases doing work for 2 branches is better than doing just one.

    I would guess it’s about pipelining comes over to help with some prediction.
  • Simply avoiding Load-Hit-Store by not extensively doing operation involves different type of data such as float-int.
  • Using local variables as much as possible (ad-hoc sense).
    Compare this to scenario when using global variables, in this case we need to read data from memory before operation can begin. It’s time consumed.

    Try to reduce the reading back from memory, keep the flow of streamline going. Using local variables to help performing tasks within any functions would be a great idea instead of accessing to global ones every time. In addition, by doing this your programming skill enhances a lot ! 
  • PS3 has 8 SPEs which each one consists of SPU (the main core in operation).
    1 SPE is reserved for yield, and another one is reserved for OS.
    Thus developers has access to 6 SPEs. 
  • Prediction for the future.
    - Wii U: End of 2012 ?
    - XBox: End of 2012 ?
    - PS4: 2013 ? 
  • Sony is burnt by high cost of cell chip, and also the difficulty in developing for its platform.
  • Both XBox and PS4 next generation will be based on the IBM Power 7 with prediction of 6 cores X 4 hardware threads, out-of-order processing, 4 GB unified memory, 32 + 32 KB/Core L1, 256 KB/Core L2, 4 MB/Core L3 

     
    That’s really brief relevant information for you to digest.
    I would say sorry for some core part of information directly to those console as the language speaking is above-par to me sometimes, so I miss those out.
    Anyway, it’s not bad for a first try summarizing this stuff though, ha ha.

    Til next time.

    posted 6 months ago