1 Reply Latest reply on Feb 2, 2013 7:12 AM by mj1020

    AMD as gaming/developing platform

    Meteorhead

      Hi!

       

      I have been looking for a decent daming/developing platform based on AMD HW, and although there is virtually no choice on the market, the MSI GX60 seemed like a perfect example of high-end AMD stuff put together. I certainly do not have to mention the ease of using a single context for all the CPU-IGP-GPU to do fancy stuff, but naturally, the code has to be portable. However, I do have my concerns:

       

      http://www.notebookcheck.net/Review-MSI-GX60-Notebook.86283.0.html

       

      The article proves, that the strength (weakness) or the Trinity CPU just shoots the 7970M in the leg, Core-i7 CPUs leave it standing in performance (sometimtes +120%). It has been known that Intel CPU design is superior to AMD architectures, however the balance between CPU-graphics performance of Intel APUs are way off in favor of the CPU. It is strange however, that high-end APU-dGPU from inside AMD so badly do not match up.

       

      I have read, that AMD is pushing hard the Gaming Evolved program, and I believe the key to success lies here. If game engines do not use the power of the IGP, AMD will never stand a chance vs. Intel APUs. Intel dedicates more die space to the CPU, and their architecture seems more powerful also. The biggest thing going for AMD APUs is the kick@ss IGP architecture.

       

      This is where the biggest problem is, that there is no truly portable and flexible solution to programming the IGP-CPU whichever is present. I'm a very big fan of OpenCL, that is why I use it to all my stuff, but if I was given the choice to put it in real game engine code... there is an enormous gap betweeen C99 kernel language and the C++ host code. It's too much a pain. I only write scientific simulations, and only making the distinction of float or double types based on availability of the target machine is a real pain. (Modify kernel code on the fly based on host queries with #defines... that's just not 2012 style of programming) The static C++ kernel language is a cool feature, but in game engines it's unusable, because of the loss of portability. I really feel that so long OpenCL maintains C99 kernel language, it will never be used in serious game engines.

       

      C++AMP could be a cool alternative if one only targets Windows machines (I know about the Intel project aiming on translating C++AMP to OpenCL, but that is in a very beta stage), but the game engines simply don't use it. The biggest push for C++AMP were if the most widespread linux compiler (gcc) would implement C++AMP with OpenGL compute shaders.

       

      Anyhow, I think the biggest goal of the Gaming Evolved project should be pushing game developers towards using the massively parallel devices inside the engines (AI, physics, etc)... otherwise, AMD is really not an option.