|Re: [eigen] Idea: BLAS backend|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Idea: BLAS backend
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Thu, 3 Feb 2011 08:16:00 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=x3APukE06Dy98AuaXD7Yk8R/ZPeJrnrdKZCXZXCVwME=; b=m3fqY2q7D/o3jR1ImKNvvhuOaU8Ipy7ie6ppkkS5rXFo+AG5grbJ/YJRfWMuqh1By2 eKj970zw4aVjHvjtmHJs2NGK6jkM7p2uaGdS94ZDqgVnPYhK/YzuFcA2SgWhHkIoog0V fgPNUtlDz60XHe1RMkBWHyXnrW2eBmFeYQBXI=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=ZDokXgu/tVQ7oGFWtOAwkuTh7x4HHuZLJLSGf5wvZivYoRsDp76304ImXLaFarjcYB 7z7+bFxxuGoeH88YmQdPRcXdTbrRnaRr+t0AElBxD222m9CtlwY94sUGjzxU0YnzEuUQ dB3rYcSKINeCKDH+JXc8k0N92389pBUiDtX8w=
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:
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.
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 , 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)
>  http://www.tacc.utexas.edu/tacc-projects/gotoblas2/