Today NVIDIA announced support for the Python language on its flavor of GPGPU (CUDA).

Manifold GIS uses CUDA to enable some accelerated raster operations but it is not a programmable environment and is limited to what functions its developer has provided.

With Python, used in many GIS packages including ArcGIS and QGIS (along with the numpy and sciypy packages), being supported as a first-class CUDA language, what are the prospects for being able to leverage GPGPU in these mainstream GIS packages?

  • 2
    Has anyone tried using the Anaconda Python distribution with ArcGIS/QGIS? – blah238 Mar 18 '13 at 18:41
  • 2
    this article is about the benefits of GPU based geoprocessing operations blogs.esri.com/esri/apl/2010/03/30/… – geogeek Mar 18 '13 at 18:52
  • A great read, but it is somewhat disappointing to see that that article is 3 years old -- I'm not expecting to see anything like that with 10.2, but maybe at the Developer Conference next week they'll have some surprises. – blah238 Mar 19 '13 at 0:38
  • Just wondering whether the title & tag on this should be Desktop GIS and ArcGIS-desktop. Also, whether this may be something that is coming in ArcGIS Pro. I thought I read the latter somewhere but could not find a link just now. – PolyGeo Apr 25 '14 at 23:20
  • I don't think so. Python is used on servers as well. Best kept generic IMO. – blah238 Apr 25 '14 at 23:23

I think the licensing is going to be the bullet that might stop (most likely QGIS) this dream-come-true. From the press release NVIDIA is just putting their stamp of approval on Continuum Analytics' proprietary NumbraPro ability to access the NVIDIA CUDA. Nvidia itself isn't providing native access for Pythoners to the CUDA environment.

If I got it right: The NumbraPro compiler takes Python script, creates optimized C/C++ code which then compiles under LLVM's compiler which has support for NVIDIA's GPUs. This allows the Python language to operate at the performance of lower-level languages, though the compile time will be longer due to the extra step, than it would have been implementing it in straight C/C++.

However, doing a quick look around the web, there is already support for Python bindings to LLVM. I am not familiar with the Python bindings in LLVM but if it is anything like parallel programming in plain Python... I will let someone else wrangle 800+ threads and how to share their states.

So it might just be a matter of finding someone willing to work on that project to get Python LLVM to GPU to GIS. The darkside of that it would require an extra component, namely the LLVM compiler to be included in any GIS plugin or suite. Extra bloat.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.