[Numpy-discussion] performance matrix multiplication vs. matlab

Benoit Jacob jacob.benoit.1 at gmail.com
Sun Jan 17 09:52:31 EST 2010


2010/1/17 David Cournapeau <cournape at gmail.com>:
> On Sun, Jan 17, 2010 at 2:20 PM, Benoit Jacob <jacob.benoit.1 at gmail.com> wrote:
>
>> Couldn't you simply:
>>  - either add LGPL-licensed code to a third_party subdirectory not
>> subject to the NumPy license, and just use it? This is common
>> practice, see e.g. how Qt puts a copy of WebKit in a third_party
>> subdirectory.
>>  - or use LGPL-licensed code as an external dependency?
>

Thanks for the reply!
First of all I should say that I was only talking about the raised
licensing issue, I'm not saying that you _should_ use eigen from a
technical point of view.

> There are several issues with eigen2 for NumPy usage:
>  - using it as a default implementation does not make much sense IMHO,
> as it would make distributed binaries non 100 % BSD.

But the LGPL doesn't impose restrictions on the usage of binaries, so
how does it matter? The LGPL and the BSD licenses are similar as far
as the binaries are concerned (unless perhaps one starts disassembling
them).

The big difference between LGPL and BSD is at the level of source
code, not binary code: one modifies LGPL-based source code and
distributes a binary form of it, then one has to release the modified
source code as well. Since NumPy's users are presumably not interested
in modifying _Eigen_ itself, I don't think that matters. I understand
that they may want to modify NumPy's source code without releasing
their modified source code, so the BSD license is important for NumPy,
but having Eigen in a third_party directory wouldn't affect that.

>  - to my knowledge, eigen2 does not have a BLAS API, so we would have
> to write specific wrappers for eigen2, which is undesirable.

That's true. FYI, a BLAS API is coming in Eigen 3,
https://bitbucket.org/eigen/eigen/src/tip/blas/

>  - eigen2 is C++, and it is a stated goal to make numpy depend only on
> a C compiler (it may optionally uses fortran to link against
> blas/lapack, though).

Ah OK. Well, once the Eigen BLAS is implemented, it will be usable by
a C compiler.

> As I see it, people would be able to easily use eigen2 if there was a
> BLAS API for it. We still would not distribute binaries built with
> eigen2, but it means people who don't care about using GPL code could
> use it.

I see. I'd quite like to see this happening! Maybe, just give a look
at where Eigen is in 1 year from now, the BLAS should be ready for
that.

>
> Independently of NumPy, I think a BLAS API for eigen2 would be very
> beneficial for eigen2 if you care about the numerical scientific
> community.

So do we, that's why we're doing it ;) see above.

Benoit



More information about the NumPy-Discussion mailing list