Once we have LLVM: Numba

Once we have LLVM: Numba

Postby fredd » Thu Mar 07, 2013 6:13 pm

Numba is a Python compiler which is able to jit-compile a large subset of numerical Python to efficient machine code (using LLVM). It support automatic type interference of most numpy code so unlike Cython large code modifications are usually not needed. Currently it's CPU-only but they plan support GPUs for evaluating parallellizable array-expressions.

When/if someone implements Epiphany support for LLVM it would be highly interesting and not that hard to impement a Epiphany backend in Numba. Numba works on a function level so it will be useful to execute computional kernels on Epiphany from a bigger Python program running on ARM.
fredd
 
Posts: 12
Joined: Wed Dec 19, 2012 1:09 pm

Re: Once we have LLVM: Numba

Postby shr » Sun Aug 18, 2013 2:32 pm

OpenCL support for Numba is on the roadmap for version 1.0, though they're thinking GPUs. LLVM/Numba/IPython would make a nice environment for Paralella discovery.
“At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation” — Igor Sikorsky
shr
 
Posts: 23
Joined: Mon Dec 17, 2012 3:29 am
Location: Lyons, Colorado, USA

Re: Once we have LLVM: Numba

Postby CIB » Mon Aug 19, 2013 5:09 pm

Last time I checked the llvm port was pretty much on hold though. =(
CIB
 
Posts: 108
Joined: Sat Jul 13, 2013 1:57 pm

Re: Once we have LLVM: Numba

Postby fredd » Fri Aug 23, 2013 3:41 pm

An alternative in the meanwhile might be porting Theano from CUDA to OpenCL and use the OpenCL SDK. This should allow evaluating array/linalg expressions on the IPython command line directly on the cores, even tho I find the syntax a little clumsier than numba.
fredd
 
Posts: 12
Joined: Wed Dec 19, 2012 1:09 pm

Re: Once we have LLVM: Numba

Postby ogrisel » Mon Aug 26, 2013 12:56 pm

parakeet [1] is an alternative jit compiler for a numerical subset of python and is scheduled to have 2 compiler backends:

- one is llvm with llvmpy and is already mostly useable,
- one is based on opencl and loo.py and is under active development.

[1] https://github.com/iskandr/parakeet
ogrisel
 
Posts: 1
Joined: Mon Aug 26, 2013 12:52 pm


Return to Python

Who is online

Users browsing this forum: No registered users and 2 guests