Academic researchers and software tool vendors get to more easily implement GPU support

Dec 14, 2011 07:35 GMT  ·  By

By some strange coincidence, HP's announcement that webOS was going open-source has been followed by NVIDIA making a similar announcement about its CUDA development platform.

At least, that is to say that NVIDIA has released the source code for the NVIDIA CUDA LLVM-based compiler.

This compiler is included in the latest release of the CUDA toolkit, version 4.1.

“Opening up the CUDA platform is a significant step,” said Sudhakar Yalamanchili, professor at Georgia Institute of Technology and lead of the Ocelot project, which maps software written in CUDA C to different processor architectures.

“The future of computing is heterogeneous, and the CUDA programming model provides a powerful way to maximize performance on many different types of processors, including AMD GPUs and Intel x86 CPUs.”

Qualified software tool developers and academic researchers can register here for early access to the compiler.

With it, they will be able to come up with their own approach to programming heterogeneous parallel systems and flexibly “map the CUDA programming model to other architectures.”

LLVM's main asset is its module design that lets one easily add support for other processor architectures and programming languages.

Companies like Apple, Cray, Adobe, Electronic Arts (EA) and others already make use of it.

“This initiative enables PGI to create native CUDA Fortran and OpenACC compilers that leverage the same device-level optimization technology used by NVIDIA CUDA C/C++,” said Doug Miles, director of The Portland Group.

“It will enable seamless debugging and profiling using existing tools, and allow PGI to focus on higher-level optimizations and language features.”

Since its GPU compute accelerators already power some of the best supercomputers out there, it just has to get more HPC software to support parallel processing.

NVIDIA hopes that the CUDA LLVM-based compiler will be quickly adopted and used to speed up the journey towards exascale computing.