[Numpy-discussion] Transonic Vision: unifying Python-Numpy accelerators

PIERRE AUGIER pierre.augier at univ-grenoble-alpes.fr
Mon Nov 4 16:54:00 EST 2019


Dear Python-Numpy community,

Transonic is a pure Python package to easily accelerate modern Python-Numpy code with different accelerators (currently Cython, Pythran and Numba).

I'm trying to get some funding for this project. The related work would benefit in particular to Cython, Numba, Pythran and Xtensor.

To obtain this funding, we really need some feedback from some people knowing the subject of performance with Python-Numpy code.

That's one of the reason why we wrote this long and serious text on Transonic Vision: http://tiny.cc/transonic-vision. We describe some issues (perf for numerical kernels, incompatible accelerators, community split between experts and simple users, ...) and possible improvements.

Help would be very much appreciated.

Now a coding riddle:

import numpy as np
from transonic import jit

@jit(native=True, xsimd=True)
def fxfy(ft, fn, theta):
    sin_theta = np.sin(theta)
    cos_theta = np.cos(theta)
    fx = cos_theta * ft - sin_theta * fn
    fy = sin_theta * ft + cos_theta * fn
    return fx, fy

@jit(native=True, xsimd=True)
def fxfy_loops(ft, fn, theta):
    n0 = theta.size
    fx = np.empty_like(ft)
    fy = np.empty_like(fn)
    for index in range(n0):
        sin_theta = np.sin(theta[index])
        cos_theta = np.cos(theta[index])
        fx[index] = cos_theta * ft[index] - sin_theta * fn[index]
        fy[index] = sin_theta * ft[index] + cos_theta * fn[index]
    return fx, fy

How can be compared the performances of these functions with pure Numpy, Numba and Pythran ?

You can find out the answer in our note http://tiny.cc/transonic-vision :-)

Pierre

> Message: 1
> Date: Thu, 31 Oct 2019 21:16:06 +0100 (CET)
> From: PIERRE AUGIER <pierre.augier at univ-grenoble-alpes.fr>
> To: numpy-discussion at python.org
> Subject: [Numpy-discussion] Transonic Vision: unifying Python-Numpy
>	accelerators
> Message-ID:
>	<1080118635.5930814.1572552966711.JavaMail.zimbra at univ-grenoble-alpes.fr>
>	
> Content-Type: text/plain; charset=utf-8
> 
> Dear Python-Numpy community,
> 
> Few years ago I started to use a lot Python and Numpy for science. I'd like to
> thanks all people who contribute to this fantastic community.
> 
> I used a lot Cython, Pythran and Numba and for the FluidDyn project, we created
> Transonic, a pure Python package to easily accelerate modern Python-Numpy code
> with different accelerators. We wrote a long and serious text to explain why we
> think Transonic could have a positive impact on the scientific Python
> ecosystem.
> 
> Here it is: http://tiny.cc/transonic-vision
> 
> Feedback and discussions would be greatly appreciated!
> 
> Pierre
> 
> --
> Pierre Augier - CR CNRS                 http://www.legi.grenoble-inp.fr
> LEGI (UMR 5519) Laboratoire des Ecoulements Geophysiques et Industriels
> BP53, 38041 Grenoble Cedex, France                tel:+33.4.56.52.86.16


More information about the NumPy-Discussion mailing list