Re: [eigen] Idea: BLAS backend

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

This has been a TODO item for a long time, it's just not been a huge
priority since our performance level is already, depending on your use
cases, anywhere between competitive with the best BLAS (for level 3
operations) and better than what BLAS can offer (for nested
expressions involving level 1-2 operations).

Now that we use bugzilla, TODO items should be filed as bugs, so I did it:
BLAS: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=172
LAPACK http://eigen.tuxfamily.org/bz/show_bug.cgi?id=173

I don't believe at all that code size would be an argument here. Being
a template library we allow the users to compiler only the code that
they want. By contrast, a binary library like GotoBLAS contains code
for all functions, for all 4 numeric types. It can't compete with us
on code size.

I didn't know about the new BSD-licensed GotoBLAS, that's great news.

Cheers
Benoit

2011/2/3 Konstantin Tokarev <annulen@xxxxxxxxx>:
> Hi Eigen devs,
>
> In the wiki you are stating that Eigen 3 includes "Important optimizations in many places, including in matrix-matrix product which is now nearly as fast as Intel MKL and GotoBLAS, including on multi-CPU systems"
>
> That's great news. However, as you might know [1], recently GotoBLAS was open sourced  under BSD license. GotoBLAS supports large number of OSes, CPU architectures, and instruction sets, so it could be beneficial to use it as an optional backend for (maybe some of) computations Eigen performs. MKL also implements standrard BLAS API, so it could be used as a backend to speed up computations on latest Intel cores and IA64.
>
> Another possible use case for BLAS backend could be decreasing of binaries' sizes (Eigen is based on templates which increase size of binaries, and GotoBLAS is a small library)
>
> [1] http://www.tacc.utexas.edu/tacc-projects/gotoblas2/
>
> --
> Regards,
> Konstantin
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/