There are multiple parallel programming development tools for mobile devices and supercomputing. The most popular is perhaps OpenCL, which is backed by Nvidia. Intel offers its own software development tools to work with its Xeon Phi accelerator chip, while AMD was a founder member of HSA (Heterogeneous System Architecture) Foundation, which aims to make applications easily portable across different chip architectures and devices. Nvidia is not a member of HSA, though ARM and other chip makers like Qualcomm and Texas Instruments are members of the Foundation.
Industry observers speculate that Nvidia isn't a member of the HSA Foundation primarily because it's focused on CUDA. There isn't a one-size-fits-all approach that can be taken to parallel programming, Buck said.
In the long run there won't be one way to approach programming for GPUs, and CUDA will provide the best tools for Nvidia chips, Buck said. Programmers already use multiple tools -- C, C++, Java, Ruby on Rails, Python, among others -- to write applications, and similarly, there will be multiple approaches to bring parallelism on mobile devices and supercomputers, Buck said.
Nvidia is also making hardware improvements that will make programming for its chips easier. Nvidia's upcoming Tegra 6 processor code-named Parker will make memory in CPUs and GPUs a shared resource. Currently GPU and CPU memory are divided, and in Parker the amount of addressable memory will expand.
"A developer doesn't have to manage where data is to take advantage of the GPU," Buck said.