Re: Matrix multiplication performance

Michael Lehn <[email protected]>
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <[email protected]>
On 24 Jan 2016, at 17:02, Peter Schmitteckert <[email protected]> wrote:

> Dear All,
> 
> 
> first of all I'm impressed by the recent results.
> 
> > We need both native implementations and bindings.
> 
> I completely agree.

I also agree.  But that is no contradiction of specifying a unified low-level C++BLAS standard.  One
possible and obvious implementation would be a binding to BLAS or CBLAS.  Also there is no real
BLAS or CBLAS standard like in “ANSI” or “ISO”.  Its just a de facto standard.  So as long as it is
useful it will become a de facto standard.  Even if it just is the nicest way to be a BLAS-binding it
should be attractive for other C++ libraries like MTL4 or BLAZE.

Its also amazing that libraries like ATLAS, OpenBLAS or BLIS are written in C and not in C++.  I am
pretty familiar with their code and using C++ would make their implementation so much easier. And
I am not talking about OOP.  Just using template functions and doing the rest in C-style.  Basically
they use macros for generating functions like sgemm, dgemm, cgemm, zgemm from a single
implementation.  Very unreadable, believe me.  So even for a BLAS implementation that just has
to support a C and Fortran interface my choice would be C++ for the actual implementation.  And
I am certainly not C++ fan boy.  Really.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.