Re: RFC: building numpy against OpenBLAS.

2015-06-07 Thread Ludovic Courtès
Mark H Weaver m...@netris.org skribis:

 So, I come again to the same conclusion: that we should switch to
 OpenBLAS on _all_ platforms, and strip away the ATLAS-handling code in
 our python-numpy package.  We can work on fixing OpenBLAS to MIPS later.

Agreed, we can’t afford not to have substitutes for things like
LibreOffice.

Mark or Ricardo, can you push the patch?

Thanks!

Ludo’.



Re: RFC: building numpy against OpenBLAS.

2015-06-05 Thread Mark H Weaver
Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes:

 Ricardo Wurmus writes:

 python-numpy currently depends on Atlas, which means that it cannot be
 substituted with a binary built elsewhere.  OpenBLAS is an alternative
 to Atlas and the binary can be used on all supported CPUs at runtime.
 This makes it possible for us to make numpy substitutable.

 We currently do not have a working OpenBLAS on MIPS, so the attached
 patch selects OpenBLAS as an input only when not on MIPS.  Some
 additional configuration happens only unless atlas is among the
 inputs.

 If there are no objections I'd like to go ahead and push this patch to
 build numpy with OpenBLAS.  From the comments I gather that it's not as
 controversial a change as I suspected.

Yes, please do!

Thanks,
  Mark



Re: RFC: building numpy against OpenBLAS.

2015-06-05 Thread Mark H Weaver
Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes:

 Ricardo Wurmus writes:

 python-numpy currently depends on Atlas, which means that it cannot be
 substituted with a binary built elsewhere.  OpenBLAS is an alternative
 to Atlas and the binary can be used on all supported CPUs at runtime.
 This makes it possible for us to make numpy substitutable.

 We currently do not have a working OpenBLAS on MIPS, so the attached
 patch selects OpenBLAS as an input only when not on MIPS.  Some
 additional configuration happens only unless atlas is among the
 inputs.

 If there are no objections I'd like to go ahead and push this patch to
 build numpy with OpenBLAS.  From the comments I gather that it's not as
 controversial a change as I suspected.

I think we should go ahead and switch to OpenBLAS on _all_ platforms,
not just on MIPS.  Were there any objections to that?  If not, I'd
advocate just doing it.

 Thanks!
   Mark



Re: RFC: building numpy against OpenBLAS.

2015-06-05 Thread Mark H Weaver
Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes:

 We currently do not have a working OpenBLAS on MIPS, so the attached
 patch selects OpenBLAS as an input only when not on MIPS.  Some
 additional configuration happens only unless atlas is among the
 inputs.

 If there are no objections I'd like to go ahead and push this patch to
 build numpy with OpenBLAS.  From the comments I gather that it's not as
 controversial a change as I suspected.

 I think we should go ahead and switch to OpenBLAS on _all_ platforms,
 not just on MIPS.  Were there any objections to that?  If not, I'd
 advocate just doing it.

 There may have been a misunderstanding: We can switch to OpenBLAS for
 all platforms _except_ MIPS because OpenBLAS currently does not build on
 MIPS.

I was indeed confused.  However, it seems that ATLAS doesn't build on
MIPS either, based on its 'supported-systems' field.

So, I come again to the same conclusion: that we should switch to
OpenBLAS on _all_ platforms, and strip away the ATLAS-handling code in
our python-numpy package.  We can work on fixing OpenBLAS to MIPS later.

What do you think?

Thanks!
  Mark



Re: RFC: building numpy against OpenBLAS.

2015-06-05 Thread Mark H Weaver
Mark H Weaver m...@netris.org writes:

 Ricardo Wurmus ricardo.wur...@mdc-berlin.de writes:

 Ricardo Wurmus writes:

 python-numpy currently depends on Atlas, which means that it cannot be
 substituted with a binary built elsewhere.  OpenBLAS is an alternative
 to Atlas and the binary can be used on all supported CPUs at runtime.
 This makes it possible for us to make numpy substitutable.

 We currently do not have a working OpenBLAS on MIPS, so the attached
 patch selects OpenBLAS as an input only when not on MIPS.  Some
 additional configuration happens only unless atlas is among the
 inputs.

 If there are no objections I'd like to go ahead and push this patch to
 build numpy with OpenBLAS.  From the comments I gather that it's not as
 controversial a change as I suspected.

 I think we should go ahead and switch to OpenBLAS on _all_ platforms,
 not just on MIPS.  Were there any objections to that?  If not, I'd
 advocate just doing it.

Libreoffice depends on python2-numpy, so if we don't switch to OpenBLAS
on all platforms, then we cannot offer binary substitutes for
Libreoffice.

Also, the persistent build failures of python-numpy on Hydra are
probably due to its use of ATLAS, when ALTAS is built on a different
build slave than python2-numpy.

So, at this point we have several strong incentives to phase out the use
of ATLAS.

  Mark



Re: RFC: building numpy against OpenBLAS.

2015-06-05 Thread Ricardo Wurmus

 We currently do not have a working OpenBLAS on MIPS, so the attached
 patch selects OpenBLAS as an input only when not on MIPS.  Some
 additional configuration happens only unless atlas is among the
 inputs.

 If there are no objections I'd like to go ahead and push this patch to
 build numpy with OpenBLAS.  From the comments I gather that it's not as
 controversial a change as I suspected.

 I think we should go ahead and switch to OpenBLAS on _all_ platforms,
 not just on MIPS.  Were there any objections to that?  If not, I'd
 advocate just doing it.

There may have been a misunderstanding: We can switch to OpenBLAS for
all platforms _except_ MIPS because OpenBLAS currently does not build on
MIPS.

~~ Ricardo



Re: RFC: building numpy against OpenBLAS.

2015-06-01 Thread Ricardo Wurmus

Ricardo Wurmus writes:

 python-numpy currently depends on Atlas, which means that it cannot be
 substituted with a binary built elsewhere.  OpenBLAS is an alternative
 to Atlas and the binary can be used on all supported CPUs at runtime.
 This makes it possible for us to make numpy substitutable.

 We currently do not have a working OpenBLAS on MIPS, so the attached
 patch selects OpenBLAS as an input only when not on MIPS.  Some
 additional configuration happens only unless atlas is among the
 inputs.

If there are no objections I'd like to go ahead and push this patch to
build numpy with OpenBLAS.  From the comments I gather that it's not as
controversial a change as I suspected.

~~ Ricardo



Re: RFC: building numpy against OpenBLAS.

2015-05-28 Thread Federico Beffa
On Wed, May 27, 2015 at 5:50 PM, Ricardo Wurmus
ricardo.wur...@mdc-berlin.de wrote:

 Federico Beffa writes:

 Out of curiosity, could you outline how OpenBLAS is optimized for a
 specific CPU architecture while being compiled on a different CPU (and
 hence allowing to be substituted)?

 The Quick Install instructions[1] say that when OpenBLAS is compiled
 with DYNAMIC_ARCH=1

All kernel will be included in the library and dynamically switched
 the best architecutre at run time.

 It seems that unlike ATLAS, OpenBLAS does not perform any self-tuning
 but relies on hand-optimised code (e.g. by using CPU-specific
 instructions).

Sounds good. Thanks!

Fede



Re: RFC: building numpy against OpenBLAS.

2015-05-22 Thread Eric Bavier

- Ricardo Wurmus ricardo.wur...@mdc-berlin.de wrote:
 python-numpy currently depends on Atlas, which means that it cannot be
 substituted with a binary built elsewhere.  OpenBLAS is an alternative
 to Atlas and the binary can be used on all supported CPUs at runtime.
 This makes it possible for us to make numpy substitutable.
[...]
 Anyway, I just wanted to post this here to ask for opinions.  Maybe this
 is a bad idea.  (In my case it makes sense not to use Atlas, because the
 compile-time tuning is useless when a shared store is used and clients
 use Atlas on machines other than the build host.)
 

I would very much like to see OpenBLAS substituted for atlas whereever 
possible.  The runtime performance of OpenBLAS is quite a bit better than 
ATLAS.  I've seen e.g. OpenBLAS to be roughly 20% faster than ATLAS for GEMM 
calls on Sandybridge platforms.

`~Eric