NVIDIA Releases Source To CUDA Compiler
An anonymous reader writes "NVIDIA has announced they have 'open-sourced' their new CUDA compiler so that their GPGPU platform can be brought to new architectures. NVIDIA's CUDA compiler is based upon LLVM. At the moment though they seem to be restricting the source code's access to 'qualified' individuals.'
The official press release implies wider access to the source will happen later. It so happens that a few days ago AMD opened their OpenCL backend and added initial support to the Free Software r600 driver.
Title is correct. From TFA, the summary appears wrong. It seems they are not open sourcing anything. To quote TFA
On December 13th, NVIDIA announced that it will open up the CUDA platform by releasing source code for the CUDA Compiler.
They will let you look at the code, and they might let you send patches back to them. Nowhere I can find did NVIDIA promise anything along the lines of an open license, or even any license at all. This is more like a Microsoft shared-source deal, where you can look, but no rights or privileges are transferred to you.
That said, it would still be cool to see.
IMO, open sourcing their GPU libraries would be a much bigger deal than only open sourcing the compiler. I would like to see CUBLAS, CUFFT, CUSPARSE, CURAND, etc all get opened up to the community.
The pain is not in compiling GPU code; rather, the pain is in writing good GPU code. The major difference between NVIDIA and AMD (and the major edge NVIDIA has over AMD) is not as much the compiler as it is the libraries.
Of course, I'm biased, because I work at AccelerEyes and we do GPU consulting with our freely available, but not open source, ArrayFire GPU library, which has both CUDA and OpenCL versions.
Well, They are making some of the best mobile/low-power solutions with the Tegra family of chip-sets.
I also believe that it's still going to take some time before the integrated solutions (Intel IGP and AMD Fusion) are good enough to replace discrete graphics for gamers - where they are strong today.
imho ... OpenCL is a much better path, because it can execute code on a CPU as well as a GPU. It can even target FPGAs for executing the parallel operations on reconfigurable hardware, as well as sharing output paths with OpenGL for visualization.
The Nvidia driver ( at least for linux ) currently seems to only support Nvidia GPUs as a target, but the AMD driver supports AMD GPUs as well as the host systems CPU. Again, on linux at least, you can install both AMD and Nvidias drivers if you want to utilize your CPU ( via AMD driver ) and Nvidia GPU ( via Nvidia driver ) at the same time, although there are some minor framework related hoops to jump through to get parallel execution across multiple device platforms concurrently.
These features seem to indicate native CUDA is pretty much a dead platform ( looking forward ).