NVIDIA and Continuum Analytics Announce NumbaPro, A Python CUDA Compilerby Ryan Smith on March 18, 2013 9:00 AM EST
As NVIDIA’s GPU Technology Conference 2013 kicks off this week, there will be a number of announcements coming down the pipeline from NVIDIA and their partners. The biggest and more important of these announcements will be Tuesday morning with NVIDIA CEO’s Jen-Hsun Huang’s keynote speech, while some other product announcements such as this one are being released today with the start of the show.
Starting things off is news from NVIDIA and Continuum Analytics, who are announcing that they are bringing Python support to CUDA. Specifically, Continuum Analytics’ will be introducing a new Python CUDA compiler, NumbaPro, for their high performance Python suite, Anaconda Accelerate. With the release of NumbaPro, Python with be joining C, C++, and Fortran (via PGI) as the 4th major CUDA language.
For NVIDIA of course the addition of Python is a big deal for them by opening the door to another substantial subset of programmers. Python is used in several different areas; though perhaps most widely known as an easy to learn, dynamically typed language common in scripting and prototyping, it’s also used professionally in fields such as engineering and “big data” analytics, the latter of which is where Continuum’s specific market comes in to play. For NVIDIA this brings with it both the benefit of making CUDA more accessible due to Python’s reputation for simplicity, and at the same time opening the door to new HPC industries.
Of course this is very much a numbers game for NVIDIA. Python has been one of the more widely used programming languages for a number of years now – though by quite how much depends on who’s running the survey – so after getting C++ under their belts it’s a logical language for NVIDIA to focus on to quickly grow their developer base. At the same time Python has a much larger industry presence than something like Fortran, so it’s also an opportunity for NVIDIA to further grow beyond academia and into industry.
Meanwhile, though NumbaPro can’t claim to be the first such Python CUDA compiler – other projects such as PyCUDA have come first – Continuum’s Python compiler is setup to become the all but defacto Python implementation for CUDA. Like The Portland Group’s Fortran compiler, NVIDIA has singled out NumbaPro for a special place in their ecosystem, effectively adopting it as a 2nd party CUDA compiler. So while Python isn’t a supported language in the base CUDA SDK, NVIDIA considers it a principle CUDA language through the use of NumbaPro.
Finally, NVIDIA is also using NumbaPro to tout the success of their 2011 CUDA LLVM initiative. One of the goals of bringing CUDA support to LLVM was to make it easier to add support for new programming languages to CUDA, which in this case is exactly what Continuum has used to build their Python CUDA compiler. NVIDIA’s long term goal remains to bring more languages (and thereby more developers) to CUDA, and being able to discuss success stories involving their LLVM compiler is a big part of accomplishing that.