OpenMP and GPU

Discussion created by godsic on Oct 1, 2009
Latest reply on Oct 7, 2009 by godsic

In the light of GF100, it will be quite difficult for AMD survive on the GPGPU market, because GF100 is more flexible in compare to RV8xx and offers some very important extra futures (ECC memory regime). Nevertheless, it is more important for developers to spend less time to port their apps to GPGPU platforms like OpenCL, ATI CAL, CUDA. Therefore it will be nice to have GPU enabled version of OpenMP!!!!!.

In most cases OpenMP follows SPMD execution paradigm which is similar to GPU (stream operations= SPMD). Simple analysis of the software paralized with OpenMP will show that in 90% cases developers use

#pragma omp parallel for ...

clause which can be easy ported to any GPGPU platform on compiler level with all necessary  assumptions (such as GPU or CPU, how to manage memoty etc.). Moreover AMD can extend OpenMP standard to allow developers manualy adjust some GPU related counterparts.

Therefore, developers can easy recompile existing OpenMP code and achieve more perf with GPU! And AMD can focus on optimizations without any developers impact, because in 100% performance of GPU application are strongly depend on the knowledges of developer in GPU architecture, which is not trivial.

OpenCL is powerful standard, but it closer to classic GPU framework  OpenGL rather then standard co-processor paradigm.