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.