Back to top

New standard takes on OpenCL and CUDA

We already have at least two GPGPU standards jostling for attention from multi-core coders, but compiler developer PathScale has revealed that it reckons it can better both OpenCL and CUDA with a new open GPGPU standard, in collaboration with other industry leading partners.

Speaking to THINQ, PathScaleНs chief technology officer Christopher Bergstr_m, explained that the creator of highly-optimised compilers hopes to develop "another open standard that will hopefully compete with OpenCL, and be just as high-performance, have an easier programming model and end up helping everybody."

Explaining where the idea came from, Bergstr_m said, "PathScale is building an optimised GPU compiler, and we work on a very similar codebase to what Nvidia built for their Nvidia Toolkit. About a year ago, we thought that we could take basically CUDA and everything else, do further research on it and build something better optimised.

"We build highly-optimised compilers,' continues Bergstr_m, "and with Nvidia we realised we had to go a step deeper. You have to handle the runtime and kernel driver in addition, so therefore we need people in the open source community helping us build drivers and so on. We might be traditionally a compiler company, but weНre also trying to promote and advocate open source drivers, so that they run well with our compiler."

As such, PathScale has started offering free Fermi cards to open source developers in a bid to encourage the development of solid open source drivers. ж

So why do we need another GPGPU computing standard? Bergstr_m explains that OpenCL and CUDA are a long way behind software development in terms of coder-friendliness. ж

"Currently Nvidia is still pushing their antiquated, dare I say crappy, CUDA programming model," says Bergstr_m, "which is highly explicit and very expensive for people who write large bodies of code. The scientific community for specialised code has bitten the bullet and done it, but for the most part weНre not porting lines and lines of code to CUDA, and weНre definitely not porting it to OpenCL.

"There have basically been three evolutions of GPGPU," says Bergstr_m. "There's the fully new language that explicitly defines everything for offloading to the GPU _ OpenCL and CUDA. ж

"Then thereНs the middle ground approach that just needs an incremental change of code to offload to the GPU. Then thereНs the third evolution of offloading _ the fully automatic solution, where zero code changes and your typical SIMD or vectoriser will recognise that this loop should be offloaded to the GPU."

Specific details of the project are still under wraps at the moment, but Bergstr_m did say that PathScale was already working with other developers in the field of multi-core and GPGPU programming, and that it was currently in the process of alpha-testing its work. Although it's being developed with other partners, Bergstr_m says that PathScale's implementation of the new programming model will be fully open source.ж

However, Bergstr_m says that Nvidia hasnНt been involved in any of the work so far. "Nvidia has nothing to do with this," he says. "ItНs just a situation where we think we can build something better than them, and basically kick their ass and push open source.о

Tags: nvidia, cuda, opencl