Hi,

I saw that recently Julian Taylor is doing many low level optimization like using SSE instruction. I think it is great.

Last year, Mark Florisson released the minivect[1] project that he worked on during is master thesis. minivect is a compiler for element-wise expression that do some of the same low level optimization that Julian is doing in NumPy right now.

Mark did minivect in a way that allow it to be reused by other project. It is used now by Cython and Numba I think. I had plan to reuse it in Theano, but I didn't got the time to integrate it up to now.

What about reusing it in NumPy? I think that some of Julian optimization aren't in minivect (I didn't check to confirm). But from I heard, minivect don't implement reduction and there is a pull request to optimize this in NumPy.

The advantage to concentrate some functionality in one common package is that more project benefit from optimization done to it. (after the work to use it first!)

How this could be done in NumPy? NumPy have its own code generator for many dtype. We could call minivect code generator to replace some of it.

What do you think of this idea?


Sadly, I won't be able to spent time on the code for this, but I wanted to raise the idea while people are working on that, in case it is helpful.

Frédéric


[1] https://github.com/markflorisson88/minivect