nVidia should have opened up CUDA long ago to other platforms. OpenCL is still in its infancy and CUDA is gaining a lot of ground in the HPC space. It's a shame that its closed off to FireStream cards but at least its now open to the x86 world.
The Portland Group, a wholly-owned subsidiary of STMicroelectronics and a leading independent supplier of compilers for high-performance computing, on Tuesday announced it is developing a CUDA C compiler targeting systems based on the industry-standard general-purpose 64- and 32-bit x86 architectures.
The PGI CUDA C compiler for x86 platforms will allow developers using CUDA to compile and optimize CUDA applications to run on x86-based workstations, servers and clusters with or without an Nvidia GPU accelerator. When run on x86-based systems without a GPU, PGI CUDA C applications will use multiple cores and the streaming SIMD (single instruction multiple data) capabilities of Intel and AMD CPUs for parallel execution.
"CUDA C for x86 is a perfect complement to CUDA Fortran and PGI’s optimizing parallel Fortran and C compilers for multi-core x86. It is another important element in our on-going strategy of providing HPC programmers with development tools that give PGI users a full range of options for optimizing compute-intensive applications, while allowing them to leverage the latest technical innovations from AMD, Intel and Nvidia," said Douglas Miles, the director of the Portland Group.
The announcement by Portland and Nvidia appears to be pretty important for the whole industry in general and the graphics chip designer in particular. On the one hand, it will be possible to recompile almost every software designed for Nvidia CUDA-compliant hardware to run at x86 architectures. On the other hand, it will be possible to easily port a multi-threaded x86 program onto CUDA-compliant platform. As a result, it will be easier for developers to realize benefits of Nvidia's multi-threaded architecture. In addition, with the new compiler it should be easier for software developers to write applications that use both CPUs and GPUs.
"With the CUDA for x86 CPU compiler, PGI is responding to the need of developers who want to use a single parallel programming model to target many core GPUs and multi-core CPUs," said Sanford Russell, general manager of GPU Computing software at Nvidia.
A big question is how well it is possible to recompile an originally x86 applications for CUDA architecture and vice versa. Intel is currently working on its MIC architecture that will result into explicitly multi-core x86 chips, which can potentially compete against Nvidia's graphics chips with hundreds of stream processors.
The new PGI CUDA C compiler for x86 platforms will be demonstrated at the SC10 Supercomputing conference taking place in New Orleans, LA, November 13-15, 2010.