The Portland Group is due to ship a performance-optimised PGI Cuda C/C++ compiler for multi-core x86 platforms (Cuda-x86) with its PGI 2012 release this month. Originally announced at the 2010 Nvidia GPU Technology Conference (GTC), Cuda-x86 extends Cuda beyond the GPU into a system-wide programming model. This release is a key step towards making the x86+GPU architecture an integrated parallel platform.
The PGI compiler for Cuda-x86 processes Cuda C/C++ is a native parallel-programming language for general-purpose multi-core x86 microprocessors from AMD and Intel. Cuda-x86 includes full support for Nvidia's Cuda C/C++ language for GPUs so that programmers can recompile Cuda application source code for execution on an x86 host. Using Cuda-x86 developers can compile and optimise their Cuda applications to run on x86-based workstations, servers and clusters with or without an Nvidia GPU accelerator. Cuda C/C++ applications compiled for x86 targets use multiple cores and the streaming SIMD (Single Instruction Multiple Data) capabilities of Intel and AMD CPUs for parallel execution.
In addition, PGI Cuda C/C++ for GPU devices is planned for release in mid-2012. At that time, using PGI Unified Binary technology, one binary will be able to use Nvidia GPUs when present or default to using multi-core x86 if no GPU is present.