Announcement

Collapse
No announcement yet.

GCC Support Published For OpenACC On The GPU

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GCC Support Published For OpenACC On The GPU

    Phoronix: GCC Support Published For OpenACC On The GPU

    Samsung has published their code to a modified version of the GCC Compiler that supports using the OpenACC 1.0 parallel computing specification. OpenACC allows for simplified parallel programming on heterogeneous CPU and GPU systems...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Proprietary compilers

    It is amazing that proprietary compilers even exist and that people actually rely on them and trust them.

    Proprietary compilers break the chain of trust.
    Just imagine how a malicious proprietary compiler can subvert the trust and security of anything and everything compiled.

    Comment


    • #3
      Evgeny Gavrin of Samsung announced the creation of an OpenACC GCC branch last week. The OpenACC support isn't finished yet but does produce working binaries with support for GPU offloading. The compiler supports the C, C++, and Fortran versions of OpenACC except only OpenACC 1.0 is supported and not the newer 2.0 specification. The OpenACC compiler support ends up generating translated OpenCL 1.1 code for the GPU offloading.
      What a waste of resources. Just leverage OpenCL directly. Not to mention, leverage OpenCL 1.2 directly. The only extension to this is Fortran. You want native interfaces of OpenCL for Fortran, then write them. Stop wasting time on these abstract layers above.

      Comment


      • #4
        This is really targeting the HPC world where the developers are quite often scientists and researchers implementing new algorithms and not so much experienced software engineers.

        Originally posted by Marc Driftmeyer View Post
        Not to mention, leverage OpenCL 1.2 directly.
        The main benefit to generating 1.1 code is that for NVIDIA hardware, 1.2 support didnt come about until Fermi. While Fermi is a few years old, yes, there are still a large number of deployed HPC systems running older generation Tesla cards.

        Originally posted by Marc Driftmeyer View Post
        Just leverage OpenCL directly. ... Stop wasting time on these abstract layers above.
        If you're a good developer, proficient in GPU development, then sure. But for many of the researchers looking to leverage CPUs for their algorithms, these abstractions are hugely useful. This is in a similar vein to using OpenMP for multithreading on CPUs instead of dealing directly with pthreads. You'll definitely be able to get the most performance out of using OpenCL directly but that comes at a very steep development cost. Not just in code development but in people resources as well. The added code complexity of managing an OpenCL pipeline very quickly becomes non-trivial. Also the pool of developers that can effectively develop GPU code via OpenCL is much smaller than those that can leverage these abstractions.

        In the end, these abstractions are are a good thing as it greatly increases the accessibility of highly parallel accelerators.
        Last edited by chuckatkins; 02 October 2013, 03:08 PM.

        Comment


        • #5
          FYI, there is another work by INRIA called StarPU, http://runtime.bordeaux.inria.fr/StarPU/ but no FORTRAN in that case.

          Comment

          Working...
          X