On Fri, 24 Jan 2020, Sven Schreiber wrote:
Am 24.01.2020 um 20:58 schrieb Allin Cottrell:
> There's a compile-time option for openblas that is apparently more
> functional in 0.3.7 than it used to be. Quoting Makefile.rule:
>
> "If any gemm argument m, n or k is less or equal to
> [GEMM_MULTITHREAD_THRESHOLD], gemm will be execute with single thread.
> It might be worth trying the Julia value of 50. But this is applicable
> only to our builds for Windows, or for people building the openblas
> library themselves (e.g. on Linux). I haven't experimented yet but I
> plan to.
I had read about that, yes, but doesn't GEMM just apply to
multiplication? Would this affect solvers as well?
It would affect solvers to the extent that they call matrix
multiplication (obviously). I'm not sure what proportion of the
cycles executed by the solvers is taken up by matrix multiplication
but I expect it's non-trivial. If you look in (e.g.) the
kernel/x86_64 subdirectory of the OpenBLAS source, you see that
these architecture-specific "kernel" routines, which form the larger
multi-threaded part of openblas, are almost all to do with matrix
multiplication.
You can also find some multi-threaded routines in the lapack
subdirectory but at this point there's only a few of them -- nothing
like the full range of lapack functions.
Allin