Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Julian Taylor
On Thu, Feb 20, 2014 at 1:25 AM, Nathaniel Smith  wrote:
> Hey all,
>
> Just a heads up: thanks to the tireless work of Olivier Grisel, the OpenBLAS
> development branch is now fork-safe when built with its default threading
> support. (It is still not thread-safe when built using OMP for threading and
> gcc, but this is not the default.)
>
> Gory details: https://github.com/xianyi/OpenBLAS/issues/294
>
> Check it out - if it works you might want to consider lobbying your favorite
> distro to backport it.
>

debian unstable and the upcoming ubuntu 14.04 are already fixed.
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Olivier Grisel
2014-02-20 11:32 GMT+01:00 Julian Taylor :
> On Thu, Feb 20, 2014 at 1:25 AM, Nathaniel Smith  wrote:
>> Hey all,
>>
>> Just a heads up: thanks to the tireless work of Olivier Grisel, the OpenBLAS
>> development branch is now fork-safe when built with its default threading
>> support. (It is still not thread-safe when built using OMP for threading and
>> gcc, but this is not the default.)
>>
>> Gory details: https://github.com/xianyi/OpenBLAS/issues/294
>>
>> Check it out - if it works you might want to consider lobbying your favorite
>> distro to backport it.
>>
>
> debian unstable and the upcoming ubuntu 14.04 are already fixed.

Nice!

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Sturla Molden
Will this mean NumPy, SciPy et al. can start using OpenBLAS in the
"official" binary packages, e.g. on Windows and Mac OS X? ATLAS is slow and
Accelerate conflicts with fork as well. 

Will dotblas be built against OpenBLAS? AFAIK, it is only buit against
ATLAS or MKL, not any other BLAS, but it should just be a matter of
changing the build/link process.

Sturla



Nathaniel Smith  wrote:
> Hey all,
> 
> Just a heads up: thanks to the tireless work of Olivier Grisel, the
> OpenBLAS development branch is now fork-safe when built with its default
> threading support. (It is still not thread-safe when built using OMP for
> threading and gcc, but this is not the default.)
> 
> Gory details:  href="https://github.com/xianyi/OpenBLAS/issues/294";>https://github.com/xianyi/OpenBLAS/issues/294
> 
> Check it out - if it works you might want to consider lobbying your
> favorite distro to backport it.
> 
> -n
> 
> ___ NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org  href="http://mail.scipy.org/mailman/listinfo/numpy-discussion";>http://mail.scipy.org/mailman/listinfo/numpy-discussion

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Olivier Grisel
2014-02-20 14:28 GMT+01:00 Sturla Molden :
> Will this mean NumPy, SciPy et al. can start using OpenBLAS in the
> "official" binary packages, e.g. on Windows and Mac OS X? ATLAS is slow and
> Accelerate conflicts with fork as well.

This what I would like to do personnally. Ideally as a distribution of
wheel packages

To do so I built the current develop branch of OpenBLAS with:

  make USE_OPENMP=0 NUM_THREAD=32 NO_AFFINITY=1
  make PREFIX=/opt/OpenBLAS-noomp install

Then I added a site.cfg file in the numpy source folder with the lines:

  [openblas]
  libraries = openblas
  library_dirs = /opt/OpenBLAS-noomp/lib
  include_dirs = /opt/OpenBLAS-noomp/include


> Will dotblas be built against OpenBLAS?

Yes:

  $ ldd numpy/core/_dotblas.so
  linux-vdso.so.1 =>  (0x7fff24d04000)
  libopenblas.so.0 => /opt/OpenBLAS-noomp/lib/libopenblas.so.0
(0x7f432882f000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f4328449000)
  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x7f432814c000)
  libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
(0x7f4327f2f000)
  libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3
(0x7f4327c18000)
  /lib64/ld-linux-x86-64.so.2 (0x7f43298d3000)
  libquadmath.so.0 => /usr/lib/x86_64-linux-gnu/libquadmath.so.0
(0x7f43279e1000)


However when testing this I noticed the following strange slow import
and memory usage in an IPython session:

>>> import os, psutil
>>> psutil.Process(os.getpid()).get_memory_info().rss / 1e6
20.324352
>>> %time import numpy
CPU times: user 1.95 s, sys: 1.3 s, total: 3.25 s
Wall time: 530 ms
>>> psutil.Process(os.getpid()).get_memory_info().rss / 1e6
349.507584

The libopenblas.so file is just 14MB so I don't understand how I could
get those 330MB from.

It's even worst when using static linking (libopenblas.a instead of
libopenblas.so under linux).

With Atlas or MKL I get import times under 50 ms and the memory
overhead of the numpy import is just ~15MB.

I would be very interested in any help on this:

- can you reproduce this behavior?
- do you have an idea of a possible cause?
- how to investigate?

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Olivier Grisel
FYI: to build scipy against OpenBLAS I used the following site.cfg at
the root of my scipy source folder:

[DEFAULT]
library_dirs = /opt/OpenBLAS-noomp/lib:/usr/local/lib
include_dirs = /opt/OpenBLAS-noomp/include:/usr/local/include

[blas_opt]
libraries = openblas

[lapack_opt]
libraries = openblas

But this is unrelated to the previous numpy memory pattern as it
occurs independendly of scipy.

-- 
Olivier
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Carl Kleffner
Hi,

some days ago I put some preliminary mingw-w64 binaries and code based on
python2.7 on my google drive to discuss it with Matthew Brett. Maybe its
time for a broader discussion. IMHO it is ready for testing but not for
consumption.

url:
https://drive.google.com/folderview?id=0B4DmELLTwYmldUVpSjdpZlpNM1k&usp=sharing

contains:

(1) patches used

  numpy.patch
  scipy.patch


(2) 64 bit GCC toolchain
amd64/
 mingw-w64-toolchain-static_amd64-gcc-4.8.2_vc90_rev-20140131.7z
 libpython27.a

(3) numpy-1.8.0 linked against OpenBLAS
amd64/numpy-1.8.0/
  numpy-1.8.0.win-amd64-py2.7.exe
  numpy-1.8.0-cp27-none-win_amd64.whl
  numpy_amd64_fcompiler.log
  numpy_amd64_build.log
  numpy_amd64_test.log
  _numpyconfig.h
  config.h

(4) scipy-0.13.3 linked against OpenBLAS
amd64/scipy-0.13.3/
  scipy-0.13.3.win-amd64-py2.7.exe
  scipy-0.13.3-cp27-none-win_amd64.whl
  scipy_amd64_fcompiler.log
  scipy_amd64_build.log
  scipy_amd64_build_cont.log
  scipy_amd64_test._segfault.log
  scipy_amd64_test.log


(5) 32 bit GCC toolchain
win32/
  mingw-w64-toolchain-static_win32-gcc-4.8.2_vc90_rev-20140131.7z
  libpython27.a

(6) numpy-1.8.0 linked against OpenBLAS
win32/numpy-1.8.0/
  numpy-1.8.0.win32-py2.7.exe
  numpy-1.8.0-cp27-none-win32.whl
  numpy_win32_fcompiler.log
  numpy_win32_build.log
  numpy_win32_test.log
  _numpyconfig.h
  config.h

(7) scipy-0.13.3 linked against OpenBLAS
win32/scipy-0.13.3/
  scipy-0.13.3.win32-py2.7.exe
  scipy-0.13.3-cp27-none-win32.whl
  scipy_win32_fcompiler.log
  scipy_win32_build.log
  scipy_win32_build_cont.log
  scipy_win32_test.log

Summary to compile numpy:

(1) \bin and python should be in the PATH. Choose 32 bit or 64 bit
architecture.
(2) copy libpython27.a to \libs
 check, that \libs does not contain libmsvcr90.a
(3) apply numpy.patch
(4) copy libopenblas.dll from \bin to numpy\core
of course don't ever mix 32bit and 64 bit code
(5) create a site.cfg in the numpy folder with the absolute path to the
mingw import
files/header files. I copied the openblas header files, importlibs into
the GCC toolchain.
(6) create a mingw distutils.cfg file
(7) test the configuration
python setup.py config_fc --verbose
and
python setup.py build --help-fcompiler
(8) build
python setup.py build --fcompiler=gnu95
(9) make a distro
python setup.py bdist --format=wininst
(10) make a wheel
 wininst2wheel numpy-1.8.0.win32-py2.7.exe  (for 32 bit)
(11) install
 wheel install numpy-1.8.0-cp27-none-win32.whl
(12) import numpy; numpy.test()

Summary to compile scipy:

(1) apply scipy.patch
(2) python setup.py build --fcompiler=gnu95
and a second time
python setup.py build --fcompiler=gnu95
(3) python setup.py bdist --format=wininst
(4) install
(5) import scipy; scipy.test()

Hints:

(1) libpython import file:

The libpython27.a import files has been generated with gendef and dlltool
according to the recommendations on the mingw-w64 faq  site. It is
essential to not use import libraries from anywhere, but create it with the
tools in the GCC toolchain. The GCC toolchains contains correct generated
mscvrXX import files per default.

(2) OpenBLAS:

the openblas DLL must be copied to numpy/core before building numpy. All
Blas and Lapack code will be linked dynamically to this DLL. Because of
this the overall distro size gets much smaller compared to numpy-MKL or
scipy-MKL. It is not necessary to add numpy/core to the path! (at least on
my machine). To load libopenblas.dll to the process space it is only
necessary to import numpy - nothing else. libopenblas.dll is linked against
the msvcr90.dll, just like python. The DLL itself is a fat binary
containing all optimized kernels for all supported platforms. DLL, headers
and import files have been included into the toolchain.

(3) mingw-w64 toolchain:

In short it is an extended version of the 'recommended' mingw-builds
toolchain with some minor patches and customizations. I used
https://github.com/niXman/mingw-builds for my build. It is a 'statically'
build, thus all gcc related runtimes are linked statically into the
resulting binaries.

(4) Results:

Some FAILS - see corresp. log-files. I got a segfault with scipy.test() (64
bit) with multithreaded OpenBLAS (test_ssygv_1) but not in single threaded
mode. Due to time constraints I didn't made further tests right now.

Regards

Carl


2014-02-20 14:28 GMT+01:00 Sturla Molden :

> Will this mean NumPy, SciPy et al. can start using OpenBLAS in the
> "official" binary packages, e.g. on Windows and Mac OS X? ATLAS is slow and
> Accelerate conflicts with fork as well.
>
> Will dotblas be built against OpenBLAS? AFAIK, it is only buit against
> ATLAS or MKL, not any other BLAS, but it should just be a matter of
> changing the build/link process.
>
> Sturla
>
>
>
> Nathaniel Smith  wrote:
> > Hey all,
> >
> > Just a heads up: thanks to the tireless work of Olivier Grisel, the
> > OpenBLAS development branch is now fork-safe when built with its default
> > threading support. (It i

Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Olivier Grisel
Thanks for sharing, this is all very interesting.

Have you tried to have a look at the memory usage and import time of
numpy when linked against libopenblas.dll?

-- 
Olivier
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Julian Taylor
On Thu, Feb 20, 2014 at 3:50 PM, Olivier Grisel
 wrote:
> Thanks for sharing, this is all very interesting.
>
> Have you tried to have a look at the memory usage and import time of
> numpy when linked against libopenblas.dll?
>
> --

this is probably caused by the memory warmup
it can be disabled with NO_WARMUP=1 in some configuration file.
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Carl Kleffner
looked at the taskmanager there is not much difference to numpy-MKL. I
didn't made any qualified measurements however.

Carl


2014-02-20 15:50 GMT+01:00 Olivier Grisel :

> Thanks for sharing, this is all very interesting.
>
> Have you tried to have a look at the memory usage and import time of
> numpy when linked against libopenblas.dll?
>
> --
> Olivier
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Carl Kleffner
good point, I didn't used this option.

Carl


2014-02-20 16:01 GMT+01:00 Julian Taylor :

> On Thu, Feb 20, 2014 at 3:50 PM, Olivier Grisel
>  wrote:
> > Thanks for sharing, this is all very interesting.
> >
> > Have you tried to have a look at the memory usage and import time of
> > numpy when linked against libopenblas.dll?
> >
> > --
>
> this is probably caused by the memory warmup
> it can be disabled with NO_WARMUP=1 in some configuration file.
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Olivier Grisel
2014-02-20 16:01 GMT+01:00 Julian Taylor :
>
> this is probably caused by the memory warmup
> it can be disabled with NO_WARMUP=1 in some configuration file.

This was it, I now get:

>>> import os, psutil
>>> psutil.Process(os.getpid()).get_memory_info().rss / 1e6
20.324352
>>> %time import numpy
CPU times: user 84 ms, sys: 464 ms, total: 548 ms
Wall time: 59.3 ms
>>> psutil.Process(os.getpid()).get_memory_info().rss / 1e6
27.906048

Thanks for the tip.

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Olivier Grisel
I had a quick look (without running the procedure) but I don't
understand some elements:

- apparently you never tell in the numpy's site.cfg nor the scipy.cfg
to use the openblas lib nor set the
library_dirs: how does numpy.distutils know that it should dynlink
against numpy/core/libopenblas.dll

- how to you deal with the link to the following libraries:
libgfortran.3.dll
libgcc_s.1.dll
libquadmath.0.dll

If MinGW is installed on the system I assume that the linker will find
them. But would it work when the wheel packages are installed on a
system that does not have MinGW installed?

Best,

-- 
Olivier
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-20 Thread Carl Kleffner
Hi,

2014-02-20 23:17 GMT+01:00 Olivier Grisel :

> I had a quick look (without running the procedure) but I don't
> understand some elements:
>
> - apparently you never tell in the numpy's site.cfg nor the scipy.cfg
> to use the openblas lib nor set the
> library_dirs: how does numpy.distutils know that it should dynlink
> against numpy/core/libopenblas.dll
>

numpy's site.cfg is something like: (64 bit)

[openblas]
libraries = openblas
library_dirs = D:/devel/mingw64static/x86_64-w64-mingw32/lib
include_dirs = D:/devel/mingw64static/x86_64-w64-mingw32/include

or (32 bit)

[openblas]
libraries = openblas
library_dirs = D:/devel32/mingw32static/i686-w64-mingw32/lib
include_dirs = D:/devel32/mingw32static/i686-w64-mingw32/include

Please adapt the paths of course and apply the patches to numpy.



>
> - how to you deal with the link to the following libraries:
> libgfortran.3.dll
> libgcc_s.1.dll
> libquadmath.0.dll
>
> You won't need them. I build the toolchain statically. Thus you don't have
to mess up with GCC runtime libs. You can check the dependencies with MS
depends or with ntldd (included in the toolchain)


> If MinGW is installed on the system I assume that the linker will find
> them. But would it work when the wheel packages are installed on a
> system that does not have MinGW installed?
>

The wheels should be sufficient regardless if you have mingw installed or
not.

with best Regards

Carl
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-02-21 Thread Olivier Grisel
2014-02-20 23:56 GMT+01:00 Carl Kleffner :
> Hi,
>
> 2014-02-20 23:17 GMT+01:00 Olivier Grisel :
>
>> I had a quick look (without running the procedure) but I don't
>> understand some elements:
>>
>> - apparently you never tell in the numpy's site.cfg nor the scipy.cfg
>> to use the openblas lib nor set the
>> library_dirs: how does numpy.distutils know that it should dynlink
>> against numpy/core/libopenblas.dll
>
>
> numpy's site.cfg is something like: (64 bit)
>
> [openblas]
> libraries = openblas
> library_dirs = D:/devel/mingw64static/x86_64-w64-mingw32/lib
> include_dirs = D:/devel/mingw64static/x86_64-w64-mingw32/include
>
> or (32 bit)
>
> [openblas]
> libraries = openblas
> library_dirs = D:/devel32/mingw32static/i686-w64-mingw32/lib
> include_dirs = D:/devel32/mingw32static/i686-w64-mingw32/include

Thanks, what I don't understand is how the libopenblas.dll will be
found at runtime. Is it a specific "feature" of windows? For instance
how would the scipy/linalg/_*.so file know that the libopenblas.dll
can be found in $PYTHONPATH/numpy/core?

> Please adapt the paths of course and apply the patches to numpy.
>
>>
>> - how to you deal with the link to the following libraries:
>> libgfortran.3.dll
>> libgcc_s.1.dll
>> libquadmath.0.dll
>>
> You won't need them. I build the toolchain statically. Thus you don't have
> to mess up with GCC runtime libs. You can check the dependencies with MS
> depends or with ntldd (included in the toolchain)

Great! I did not know it was possible. I guess that if we want to
replicate that for Linux and Mac we will have to also build custom
static GCC toolchains as well. Is there a good reference doc somewhere
on how to do so? When googling I only find posts by people who cannot
make their toolchain build statically correctly.

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Olivier Grisel
Hi Carl,

I installed Python 2.7.6 64 bits on a windows server instance from
rackspace cloud and then ran get-pip.py and then could successfully
install the numpy and scipy wheel packages from your google drive
folder. I tested dot products and scipy.linalg.svd and they work as
expected.

Then I uncompressed your mingw toolchain in c:\mingw, put c:\mingw\bin
in my PATH and tried to build the scikit-learn git master with it,
however it fails with:

building 'sklearn.__check_build._check_build' extension
compiling C sources
C compiler: gcc -DMS_WIN64 -O2 -msse -msse2 -Wall -Wstrict-prototypes

compile options: '-D__MSVCRT_VERSION__=0x0900
-Ic:\Python27\lib\site-packages\numpy\core\include
-Ic:\Python27\lib\site-packages\numpy\core\include -Ic:\Python2
7\include -Ic:\Python27\PC -c'
gcc -DMS_WIN64 -O2 -msse -msse2 -Wall -Wstrict-prototypes
-D__MSVCRT_VERSION__=0x0900
-Ic:\Python27\lib\site-packages\numpy\core\include
-Ic:\Python27\lib\site-
packages\numpy\core\include -Ic:\Python27\include -Ic:\Python27\PC -c
sklearn\__check_build\_check_build.c -o
build\temp.win-amd64-2.7\Release\sklearn\__check_b
uild\_check_build.o
Found executable c:\mingw\bin\gcc.exe
gcc -shared -Wl,-gc-sections -Wl,-s
build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o
-Lc:\Python27\libs -Lc:\Python27\PCbuild\amd64 -Lbuild
\temp.win-amd64-2.7 -lpython27 -lmsvcr90 -o
build\lib.win-amd64-2.7\sklearn\__check_build\_check_build.pyd
build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o:_check_build.c:(.text+0x3):
undefined reference to `__imp__Py_NoneStruct'
build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o:_check_build.c:(.text+0x1ca):
undefined reference to `__imp__PyThreadState_Current'
build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o:_check_build.c:(.text+0x405):
undefined reference to `__imp_PyExc_ImportError'
c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../x86_64-w64-mingw32/bin/ld.exe:
build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.
o: bad reloc address 0x0 in section `.data'
collect2.exe: error: ld returned 1 exit status
error: Command "gcc -shared -Wl,-gc-sections -Wl,-s
build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o
-Lc:\Python27\libs -Lc:\Python27\PCbui
ld\amd64 -Lbuild\temp.win-amd64-2.7 -lpython27 -lmsvcr90 -o
build\lib.win-amd64-2.7\sklearn\__check_build\_check_build.pyd" failed
with exit status 1

Furthermore, when I try to introspect the blas information on this box I get:

In [1]: import scipy
C:\Python27\lib\site-packages\numpy\core\__init__.py:6: Warning: Numpy
64bit experimental build with Mingw-w64 and OpenBlas. Use with care.
  from . import multiarray
OpenBLAS : Your OS does not support AVX instructions. OpenBLAS is
using Barcelona kernels as a fallback, which may give poorer
performance.

In [2]: scipy.show_config()
umfpack_info:
  NOT AVAILABLE
lapack_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['D:/devel/mingw64static/x86_64-w64-mingw32/lib']
language = f77
blas_opt_info:
libraries = ['openblas', 'openblas']
library_dirs = ['D:/devel/mingw64static/x86_64-w64-mingw32/lib']
language = f77
openblas_info:
libraries = ['openblas', 'openblas']
library_dirs = ['D:/devel/mingw64static/x86_64-w64-mingw32/lib']
language = f77
blas_mkl_info:
  NOT AVAILABLE

In [3]: from numpy.distutils.system_info import get_info

In [4]: get_info('blas_opt')
C:\Python27\lib\site-packages\numpy\distutils\system_info.py:576:
UserWarning: Specified path
D:/devel/mingw64static/x86_64-w64-mingw32/lib is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
C:\Python27\lib\site-packages\numpy\distutils\system_info.py:1522: UserWarning:
Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [atlas]) or by setting
the ATLAS environment variable.
  warnings.warn(AtlasNotFoundError.__doc__)
C:\Python27\lib\site-packages\numpy\distutils\system_info.py:1531: UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
  warnings.warn(BlasNotFoundError.__doc__)
C:\Python27\lib\site-packages\numpy\distutils\system_info.py:1534: UserWarning:
Blas (http://www.netlib.org/blas/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [blas_src]) or by setting
the BLAS_SRC environment variable.
  warnings.warn(BlasSrcNotFoundError.__doc__)
Out[4]: {}

Would it make sense to embed the blas and lapack header files as part
of this numpy wheel and make numpy.distutils.system_info return the
lib and include folder pointing to the embedded libopenblas.dll and
header files so has to make third pa

Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Julian Taylor
On 26.03.2014 16:27, Olivier Grisel wrote:
> Hi Carl,
> 
> I installed Python 2.7.6 64 bits on a windows server instance from
> rackspace cloud and then ran get-pip.py and then could successfully
> install the numpy and scipy wheel packages from your google drive
> folder. I tested dot products and scipy.linalg.svd and they work as
> expected.
> 

> 
> Would it make sense to embed the blas and lapack header files as part
> of this numpy wheel and make numpy.distutils.system_info return the
> lib and include folder pointing to the embedded libopenblas.dll and
> header files so has to make third party libraries directly buildable
> against those?
> 

as for using openblas by default in binary builds, no.
pthread openblas build is now fork safe which is great but it is still
not reliable enough for a default.
E.g. the current latest release 0.2.8 still has one crash bug on
dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
git head has the former four fixed bug still has wrong results for cgemv.
The not so old 0.2.8 also fixed whole bunch more crashes and wrong
result issues (crashes on QR, uninitialized data use in dgemm, ...).
None of the fixes received unit tests, so I am somewhat pessimistic that
it will improve, especially as the maintainer is dissertating (is that
the right word?) and most of the code is assembler code only few people
can write (it is simply not required anymore, we have code generators
and intrinsics for that).

Openblas is great if you do not have the patience to build ATLAS and
only use a restricted set of functionality and platforms you can easily
test.
Currently it is in my opinion not suitable for a general purpose library
like numpy.

I don't have any objections to adding get_info("openblas") if that does
not work yet. Patches welcome.

[0] https://github.com/xianyi/OpenBLAS/issues/304
[1] https://github.com/xianyi/OpenBLAS/issues/333
[2] https://github.com/xianyi/OpenBLAS/issues/340
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Nathaniel Smith
On Wed, Mar 26, 2014 at 7:34 PM, Julian Taylor
 wrote:
> as for using openblas by default in binary builds, no.
> pthread openblas build is now fork safe which is great but it is still
> not reliable enough for a default.
> E.g. the current latest release 0.2.8 still has one crash bug on
> dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
> git head has the former four fixed bug still has wrong results for cgemv.
> The not so old 0.2.8 also fixed whole bunch more crashes and wrong
> result issues (crashes on QR, uninitialized data use in dgemm, ...).
> None of the fixes received unit tests, so I am somewhat pessimistic that
> it will improve, especially as the maintainer is dissertating (is that
> the right word?) and most of the code is assembler code only few people
> can write (it is simply not required anymore, we have code generators
> and intrinsics for that).
>
> Openblas is great if you do not have the patience to build ATLAS and
> only use a restricted set of functionality and platforms you can easily
> test.
> Currently it is in my opinion not suitable for a general purpose library
> like numpy.

Those problems you list are pretty damning, but neither is it
reasonable to expect everyone to manually build ATLAS on every machine
they use (or their students use, or...) :-(. So what other options do
we have for general purpose builds? Give up and use MKL? How's
eigen-blas doing these days? (I guess from skimming their docs they
use OpenMP?)

-- 
Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh
http://vorpus.org
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Julian Taylor
On 26.03.2014 21:41, Nathaniel Smith wrote:
> On Wed, Mar 26, 2014 at 7:34 PM, Julian Taylor
>  wrote:
>> as for using openblas by default in binary builds, no.
>> pthread openblas build is now fork safe which is great but it is still
>> not reliable enough for a default.
>> E.g. the current latest release 0.2.8 still has one crash bug on
>> dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
>> git head has the former four fixed bug still has wrong results for cgemv.
>> The not so old 0.2.8 also fixed whole bunch more crashes and wrong
>> result issues (crashes on QR, uninitialized data use in dgemm, ...).
>> None of the fixes received unit tests, so I am somewhat pessimistic that
>> it will improve, especially as the maintainer is dissertating (is that
>> the right word?) and most of the code is assembler code only few people
>> can write (it is simply not required anymore, we have code generators
>> and intrinsics for that).
>>
>> Openblas is great if you do not have the patience to build ATLAS and
>> only use a restricted set of functionality and platforms you can easily
>> test.
>> Currently it is in my opinion not suitable for a general purpose library
>> like numpy.
> 
> Those problems you list are pretty damning, but neither is it
> reasonable to expect everyone to manually build ATLAS on every machine
> they use (or their students use, or...) :-(. So what other options do
> we have for general purpose builds? Give up and use MKL? How's
> eigen-blas doing these days? (I guess from skimming their docs they
> use OpenMP?)
> 

I don't think general purpose builds need to have perfect performance.
we should provide something that works and allow users to tune it when
required. The slower general purpose build is also a great testcase to
verify that the tuned build works for your problem.

I didn't notice this is a reply to third party provided win64 binaries
with openblas. I though it was about official numpy binaries with
openblas again.
Third party binaries using openblas are great, especially these that
seem to warn that this is experimental.
It helps ironing out the kinks of openblas. Thanks for providing them.
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Olivier Grisel
My understanding of Carl's effort is that the long term goal is to
have official windows whl packages for both numpy and scipy published
on PyPI with a builtin BLAS / LAPACK implementation so that users can
do `pip install scipy` under windows and get something that just works
without have to install any compiler (fortran or C) nor any additional
library manually.

Most windows users are beginners and you cannot really expect them to
understand how to build the whole scipy stack from source.

The current solution (executable setup installers) is not optimal as
it requires Administrator rights to run, does not resolve dependencies
as pip does and cannot be installed in virtualenvs.

If we can build numpy / scipy whl packages for windows with the Atlas
dlls then fine embedded in the numpy package then good. It does not
need to be the
fastest BLAS / LAPACK lib in my opinion. Just something that works.

The problem with ATLAS is that you need to select the number of thread
at build time AFAIK. But we could set it to a reasonable default (e.g.
4 threads) for the default windows package.

-- 
Olivier
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Julian Taylor
On 26.03.2014 22:17, Olivier Grisel wrote:
> 
> The problem with ATLAS is that you need to select the number of thread
> at build time AFAIK. But we could set it to a reasonable default (e.g.
> 4 threads) for the default windows package.
> 

You have to set the number of threads at build time with OpenBlas too.
At runtime it then selects the number of online cpus but limited to the
build time maximum.
It defaults to the maximum of the machine it was built on. You need to
explicitly override that for generic binaries. (I think debian binaries
uses 64 which is probably reasonable for non MIC systems)
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-26 Thread Olivier Grisel
2014-03-26 22:31 GMT+01:00 Julian Taylor :
> On 26.03.2014 22:17, Olivier Grisel wrote:
>>
>> The problem with ATLAS is that you need to select the number of thread
>> at build time AFAIK. But we could set it to a reasonable default (e.g.
>> 4 threads) for the default windows package.
>>
>
> You have to set the number of threads at build time with OpenBlas too.
> At runtime it then selects the number of online cpus but limited to the
> build time maximum.
> It defaults to the maximum of the machine it was built on. You need to
> explicitly override that for generic binaries. (I think debian binaries
> uses 64 which is probably reasonable for non MIC systems)

Yes, the official windows binary for OpenBLAS is also build with a
maximum number of threads of 64 (NUM_THREADS=64) which I find
reasonable since the runtime number of threads will be capped by the
actual number of cores.

For ATLAS I don't think there is a runtime cap, or is there?

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-27 Thread Olivier Grisel
2014-03-26 16:27 GMT+01:00 Olivier Grisel :
> Hi Carl,
>
> I installed Python 2.7.6 64 bits on a windows server instance from
> rackspace cloud and then ran get-pip.py and then could successfully
> install the numpy and scipy wheel packages from your google drive
> folder. I tested dot products and scipy.linalg.svd and they work as
> expected.
>
> Then I uncompressed your mingw toolchain in c:\mingw, put c:\mingw\bin
> in my PATH and tried to build the scikit-learn git master with it,
> however it fails with:
>
> building 'sklearn.__check_build._check_build' extension
> compiling C sources
> C compiler: gcc -DMS_WIN64 -O2 -msse -msse2 -Wall -Wstrict-prototypes
>
> compile options: '-D__MSVCRT_VERSION__=0x0900
> -Ic:\Python27\lib\site-packages\numpy\core\include
> -Ic:\Python27\lib\site-packages\numpy\core\include -Ic:\Python2
> 7\include -Ic:\Python27\PC -c'
> gcc -DMS_WIN64 -O2 -msse -msse2 -Wall -Wstrict-prototypes
> -D__MSVCRT_VERSION__=0x0900
> -Ic:\Python27\lib\site-packages\numpy\core\include
> -Ic:\Python27\lib\site-
> packages\numpy\core\include -Ic:\Python27\include -Ic:\Python27\PC -c
> sklearn\__check_build\_check_build.c -o
> build\temp.win-amd64-2.7\Release\sklearn\__check_b
> uild\_check_build.o
> Found executable c:\mingw\bin\gcc.exe
> gcc -shared -Wl,-gc-sections -Wl,-s
> build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o
> -Lc:\Python27\libs -Lc:\Python27\PCbuild\amd64 -Lbuild
> \temp.win-amd64-2.7 -lpython27 -lmsvcr90 -o
> build\lib.win-amd64-2.7\sklearn\__check_build\_check_build.pyd
> build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o:_check_build.c:(.text+0x3):
> undefined reference to `__imp__Py_NoneStruct'
> build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o:_check_build.c:(.text+0x1ca):
> undefined reference to `__imp__PyThreadState_Current'
> build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o:_check_build.c:(.text+0x405):
> undefined reference to `__imp_PyExc_ImportError'
> c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../x86_64-w64-mingw32/bin/ld.exe:
> build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.
> o: bad reloc address 0x0 in section `.data'
> collect2.exe: error: ld returned 1 exit status
> error: Command "gcc -shared -Wl,-gc-sections -Wl,-s
> build\temp.win-amd64-2.7\Release\sklearn\__check_build\_check_build.o
> -Lc:\Python27\libs -Lc:\Python27\PCbui
> ld\amd64 -Lbuild\temp.win-amd64-2.7 -lpython27 -lmsvcr90 -o
> build\lib.win-amd64-2.7\sklearn\__check_build\_check_build.pyd" failed
> with exit status 1

Ignore that, I had forgotten to copy the libpython17.a file in
c:\Python27\libs on that instance.

Building scikit-learn works with the static toolchain. I have failing
tests but those are probably not related to the toolchain.

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-27 Thread josef . pktd
On Wed, Mar 26, 2014 at 5:17 PM, Olivier Grisel
 wrote:
> My understanding of Carl's effort is that the long term goal is to
> have official windows whl packages for both numpy and scipy published
> on PyPI with a builtin BLAS / LAPACK implementation so that users can
> do `pip install scipy` under windows and get something that just works
> without have to install any compiler (fortran or C) nor any additional
> library manually.
>
> Most windows users are beginners and you cannot really expect them to
> understand how to build the whole scipy stack from source.
>
> The current solution (executable setup installers) is not optimal as
> it requires Administrator rights to run, does not resolve dependencies
> as pip does and cannot be installed in virtualenvs.

as small related point:

The official installers can be used to install in virtualenv
The way I do it:
Run the superpack, official installer, wait until it extracts the
correct (SSE) install exe, then cancel
Then easy_install the install exe file that has been extracted to the
temp folder into the virtualenv.

I don't remember if the extraction already requires admin rights, but
I think not.
easy_install doesn't require any, IIRC.

Josef

>
> If we can build numpy / scipy whl packages for windows with the Atlas
> dlls then fine embedded in the numpy package then good. It does not
> need to be the
> fastest BLAS / LAPACK lib in my opinion. Just something that works.
>
> The problem with ATLAS is that you need to select the number of thread
> at build time AFAIK. But we could set it to a reasonable default (e.g.
> 4 threads) for the default windows package.
>
> --
> Olivier
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-27 Thread Olivier Grisel
2014-03-27 14:55 GMT+01:00  :
> On Wed, Mar 26, 2014 at 5:17 PM, Olivier Grisel
>  wrote:
>> My understanding of Carl's effort is that the long term goal is to
>> have official windows whl packages for both numpy and scipy published
>> on PyPI with a builtin BLAS / LAPACK implementation so that users can
>> do `pip install scipy` under windows and get something that just works
>> without have to install any compiler (fortran or C) nor any additional
>> library manually.
>>
>> Most windows users are beginners and you cannot really expect them to
>> understand how to build the whole scipy stack from source.
>>
>> The current solution (executable setup installers) is not optimal as
>> it requires Administrator rights to run, does not resolve dependencies
>> as pip does and cannot be installed in virtualenvs.
>
> as small related point:
>
> The official installers can be used to install in virtualenv
> The way I do it:
> Run the superpack, official installer, wait until it extracts the
> correct (SSE) install exe, then cancel
> Then easy_install the install exe file that has been extracted to the
> temp folder into the virtualenv.
>
> I don't remember if the extraction already requires admin rights, but
> I think not.
> easy_install doesn't require any, IIRC.

Hackish but interesting. Maybe the extraction can be done with generic
tools like winzip?

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-27 Thread josef . pktd
On Thu, Mar 27, 2014 at 9:59 AM, Olivier Grisel
 wrote:
> 2014-03-27 14:55 GMT+01:00  :
>> On Wed, Mar 26, 2014 at 5:17 PM, Olivier Grisel
>>  wrote:
>>> My understanding of Carl's effort is that the long term goal is to
>>> have official windows whl packages for both numpy and scipy published
>>> on PyPI with a builtin BLAS / LAPACK implementation so that users can
>>> do `pip install scipy` under windows and get something that just works
>>> without have to install any compiler (fortran or C) nor any additional
>>> library manually.
>>>
>>> Most windows users are beginners and you cannot really expect them to
>>> understand how to build the whole scipy stack from source.
>>>
>>> The current solution (executable setup installers) is not optimal as
>>> it requires Administrator rights to run, does not resolve dependencies
>>> as pip does and cannot be installed in virtualenvs.
>>
>> as small related point:
>>
>> The official installers can be used to install in virtualenv
>> The way I do it:
>> Run the superpack, official installer, wait until it extracts the
>> correct (SSE) install exe, then cancel
>> Then easy_install the install exe file that has been extracted to the
>> temp folder into the virtualenv.
>>
>> I don't remember if the extraction already requires admin rights, but
>> I think not.
>> easy_install doesn't require any, IIRC.
>
> Hackish but interesting. Maybe the extraction can be done with generic
> tools like winzip?

I tried to open and unzip with WinRAR but couldn't make sense of the content.

BTW: easy_install for other installers like matplotlib also works
nicely for virtualenv



However, the official installers are only for 32-bit python, and I
appreciate all the efforts to "modernize" the numpy and scipy builds.

Josef

>
> --
> Olivier
> http://twitter.com/ogrisel - http://github.com/ogrisel
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Matthew Brett
Hi,

On Wed, Mar 26, 2014 at 1:41 PM, Nathaniel Smith  wrote:
> On Wed, Mar 26, 2014 at 7:34 PM, Julian Taylor
>  wrote:
>> as for using openblas by default in binary builds, no.
>> pthread openblas build is now fork safe which is great but it is still
>> not reliable enough for a default.
>> E.g. the current latest release 0.2.8 still has one crash bug on
>> dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
>> git head has the former four fixed bug still has wrong results for cgemv.
>> The not so old 0.2.8 also fixed whole bunch more crashes and wrong
>> result issues (crashes on QR, uninitialized data use in dgemm, ...).
>> None of the fixes received unit tests, so I am somewhat pessimistic that
>> it will improve, especially as the maintainer is dissertating (is that
>> the right word?) and most of the code is assembler code only few people
>> can write (it is simply not required anymore, we have code generators
>> and intrinsics for that).
>>
>> Openblas is great if you do not have the patience to build ATLAS and
>> only use a restricted set of functionality and platforms you can easily
>> test.
>> Currently it is in my opinion not suitable for a general purpose library
>> like numpy.
>
> Those problems you list are pretty damning, but neither is it
> reasonable to expect everyone to manually build ATLAS on every machine
> they use (or their students use, or...) :-(. So what other options do
> we have for general purpose builds? Give up and use MKL? How's
> eigen-blas doing these days? (I guess from skimming their docs they
> use OpenMP?)

I see it should be possible to build a full blas and partial lapack
library with eigen [1] [2].

Does anyone know how their performance compares to MKL or the
reference implementations?

Carl - have you tried building eigen with your custom tool chain?

Cheers,

Matthew

[1] http://eigen.tuxfamily.org/index.php?title=3.0
[2] 
http://stackoverflow.com/questions/20441851/build-numpy-with-eigen-instead-of-atlas-or-openblas
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Sturla Molden
Matthew Brett  wrote:

> I see it should be possible to build a full blas and partial lapack
> library with eigen [1] [2].

Eigen has a licensing issue as well, unfortunately, MPL2. 

E.g. it requires recipients to be informed of the MPL requirements (cf.
impossible with pip install numpy). 

Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Robert Kern
On Fri, Mar 28, 2014 at 3:31 PM, Alan G Isaac  wrote:
> On 3/28/2014 10:54 AM, Sturla Molden wrote:
>> Eigen has a licensing issue as well, unfortunately, MPL2.
>>
>> E.g. it requires recipients to be informed of the MPL requirements (cf.
>> impossible with pip install numpy).
>
> Eigen chose MPL2 with the intent that Eigen be usable by
> "all projects".
> http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ
> If you are correct in your interpretation, it may be worth
> raising the issue and requesting the needed accommodation.

The authors of Eigen are familiar with our policy on this matter. See
the thread following this email:

  http://mail.scipy.org/pipermail/numpy-discussion/2010-January/047958.html

The change from LGPL to MPL2 isn't relevant to our policy. Both have
more restrictions and conditions than the BSD license.

-- 
Robert Kern
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Alan G Isaac
On 3/28/2014 10:54 AM, Sturla Molden wrote:
> Eigen has a licensing issue as well, unfortunately, MPL2.
>
> E.g. it requires recipients to be informed of the MPL requirements (cf.
> impossible with pip install numpy).


Eigen chose MPL2 with the intent that Eigen be usable by
"all projects".
http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ
If you are correct in your interpretation, it may be worth
raising the issue and requesting the needed accommodation.

Alan
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Robert Kern
On Fri, Mar 28, 2014 at 2:54 PM, Sturla Molden  wrote:
> Matthew Brett  wrote:
>
>> I see it should be possible to build a full blas and partial lapack
>> library with eigen [1] [2].
>
> Eigen has a licensing issue as well, unfortunately, MPL2.
>
> E.g. it requires recipients to be informed of the MPL requirements (cf.
> impossible with pip install numpy).

That's not the relevant condition. That's easily taken care of by
including the MPL2 license text in the binary alongside numpy's BSD
license text. This is no different than numpy's BSD license itself,
which requires that the license text be included. It's not like people
can't distribute any MPL2 project on PyPI just because pip doesn't
print out the license before installing.

The extra-BSD conditions of the MPL2 are sections 3.1 and 3.2.

-- 
Robert Kern
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Nathaniel Smith
On Fri, Mar 28, 2014 at 4:58 PM, Robert Kern  wrote:
> On Fri, Mar 28, 2014 at 2:54 PM, Sturla Molden  
> wrote:
>> Matthew Brett  wrote:
>>
>>> I see it should be possible to build a full blas and partial lapack
>>> library with eigen [1] [2].
>>
>> Eigen has a licensing issue as well, unfortunately, MPL2.
>>
>> E.g. it requires recipients to be informed of the MPL requirements (cf.
>> impossible with pip install numpy).
>
> That's not the relevant condition. That's easily taken care of by
> including the MPL2 license text in the binary alongside numpy's BSD
> license text. This is no different than numpy's BSD license itself,
> which requires that the license text be included. It's not like people
> can't distribute any MPL2 project on PyPI just because pip doesn't
> print out the license before installing.
>
> The extra-BSD conditions of the MPL2 are sections 3.1 and 3.2.

Those requirements just say that in addition to including the MPL2
license text, we also have to include a notice saying where the source
code is available, i.e. the package would have to somewhere include a
link to eigen.org.

https://www.mozilla.org/MPL/2.0/FAQ.html#distribute-my-binaries

I'm not sure why this would be a problem.

-n

-- 
Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh
http://vorpus.org
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Matthew Brett
Hi,

On Fri, Mar 28, 2014 at 8:58 AM, Robert Kern  wrote:
> On Fri, Mar 28, 2014 at 2:54 PM, Sturla Molden  
> wrote:
>> Matthew Brett  wrote:
>>
>>> I see it should be possible to build a full blas and partial lapack
>>> library with eigen [1] [2].
>>
>> Eigen has a licensing issue as well, unfortunately, MPL2.
>>
>> E.g. it requires recipients to be informed of the MPL requirements (cf.
>> impossible with pip install numpy).
>
> That's not the relevant condition. That's easily taken care of by
> including the MPL2 license text in the binary alongside numpy's BSD
> license text. This is no different than numpy's BSD license itself,
> which requires that the license text be included. It's not like people
> can't distribute any MPL2 project on PyPI just because pip doesn't
> print out the license before installing.
>
> The extra-BSD conditions of the MPL2 are sections 3.1 and 3.2.

Thanks for thinking this through.

If I read you right, your opinion is that there would be no problem
including Eigen binaries with Numpy.

License here: http://www.mozilla.org/MPL/2.0/

Section 3.1 - if we distribute Eigen source, it has to be under the
MPL; so that doesn't apply to binaries.

Section 3.2 a) says that if we distribute binaries, we have to point
to the original source (e.g. link on pypi page)
Section 3.2 b) says we can distribute the executable code under any
license as long as it doesn't restrict the user's access to Eigen
source.  I think that means there is no problem distributing the
binaries under the BSD license.  Nathaniel's link is the relevant one
: http://www.mozilla.org/MPL/2.0/FAQ.html#distribute-my-binaries

So - is Eigen our best option for optimized blas / lapack binaries on
64 bit Windows?

Cheers,

Matthew
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Sturla Molden
Matthew Brett  wrote:

> Does anyone know how their performance compares to MKL or the
> reference implementations?

http://eigen.tuxfamily.org/index.php?title=Benchmark 

http://gcdart.blogspot.de/2013/06/fast-matrix-multiply-and-ml.html


Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Sturla Molden
Matthew Brett  wrote:

> So - is Eigen our best option for optimized blas / lapack binaries on
> 64 bit Windows?

Maybe not:

http://gcdart.blogspot.de/2013/06/fast-matrix-multiply-and-ml.html

With AVX the difference is possibly even larger.


Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Nathaniel Smith
On Fri, Mar 28, 2014 at 8:01 PM, Sturla Molden  wrote:
> Matthew Brett  wrote:
>
>> So - is Eigen our best option for optimized blas / lapack binaries on
>> 64 bit Windows?
>
> Maybe not:
>
> http://gcdart.blogspot.de/2013/06/fast-matrix-multiply-and-ml.html
>
> With AVX the difference is possibly even larger.

But if we rule out closed-source BLAS, and we rule out OpenBLAS
because of our distrusting its accuracy, and we aren't going to
recompile ATLAS on every machine, then Eigen is the only library they
tested that is even an option for us.

It would be nice to see some comparison between our actual options --
Eigen, generically compiled ATLAS, anything else?

-- 
Nathaniel J. Smith
Postdoctoral researcher - Informatics - University of Edinburgh
http://vorpus.org
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Robert Kern
It's only a problem in that the binary will not be BSD, and we do need to
communicate that appropriately. It will contain a significant component
that is MPL2 licensed. The terms that force us to include the link to the
Eigen source that we used forces downstream redistributors of the binary to
do the same. Now, of all the copyleft licenses, this is certainly the most
friendly, but it is not BSD.
On Mar 28, 2014 6:43 PM, "Nathaniel Smith"  wrote:

> On Fri, Mar 28, 2014 at 4:58 PM, Robert Kern 
> wrote:
> > On Fri, Mar 28, 2014 at 2:54 PM, Sturla Molden 
> wrote:
> >> Matthew Brett  wrote:
> >>
> >>> I see it should be possible to build a full blas and partial lapack
> >>> library with eigen [1] [2].
> >>
> >> Eigen has a licensing issue as well, unfortunately, MPL2.
> >>
> >> E.g. it requires recipients to be informed of the MPL requirements (cf.
> >> impossible with pip install numpy).
> >
> > That's not the relevant condition. That's easily taken care of by
> > including the MPL2 license text in the binary alongside numpy's BSD
> > license text. This is no different than numpy's BSD license itself,
> > which requires that the license text be included. It's not like people
> > can't distribute any MPL2 project on PyPI just because pip doesn't
> > print out the license before installing.
> >
> > The extra-BSD conditions of the MPL2 are sections 3.1 and 3.2.
>
> Those requirements just say that in addition to including the MPL2
> license text, we also have to include a notice saying where the source
> code is available, i.e. the package would have to somewhere include a
> link to eigen.org.
>
> https://www.mozilla.org/MPL/2.0/FAQ.html#distribute-my-binaries
>
> I'm not sure why this would be a problem.
>
> -n
>
> --
> Nathaniel J. Smith
> Postdoctoral researcher - Informatics - University of Edinburgh
> http://vorpus.org
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Matthew Brett
Hi,

On Fri, Mar 28, 2014 at 11:56 AM, Sturla Molden  wrote:
> Matthew Brett  wrote:
>
>> Does anyone know how their performance compares to MKL or the
>> reference implementations?
>
> http://eigen.tuxfamily.org/index.php?title=Benchmark

I don't know how relevant these are to our case. If I understand
correctly, the usual use of Eigen, as in these benchmarks, is to use
the Eigen headers to get fast code via C++ templating.

Because they know some of us need this, Eigen can also build a more
standard blas / lapack library to link against, but I presume this
will stop Eigen templating doing lots of clever tricks with the
operations, and therefore slow it down.  Happy to be corrected though.

> http://gcdart.blogspot.de/2013/06/fast-matrix-multiply-and-ml.html

I think this page does not use the Eigen blas libraries either [1]

Also - this is on a massive linux machine ("48 core and 66GB RAM").
He's done a great job of showing what he did though.

The problem for us is:

We can't use MKL, ACML [2]
atlas is very difficult to compile on 64 bit windows, and has some
technical limitations on 64 bit [3]

So I think we're down to openblas and eigen for 64-bit windows. Does
anyone disagree?

Cheers,

Matthew

[1] : 
https://github.com/gcdart/dense-matrix-mult/blob/master/EIGEN/compile_eigen.sh
[2] : 
http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/ACML_June_24_2010_v2.pdf
[3] : http://math-atlas.sourceforge.net/atlas_install/node57.html
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Matthew Brett
Hi,

On Fri, Mar 28, 2014 at 12:26 PM, Robert Kern  wrote:
> It's only a problem in that the binary will not be BSD, and we do need to
> communicate that appropriately. It will contain a significant component that
> is MPL2 licensed. The terms that force us to include the link to the Eigen
> source that we used forces downstream redistributors of the binary to do the
> same. Now, of all the copyleft licenses, this is certainly the most
> friendly, but it is not BSD.

I think the binary would be BSD because of section 3.2:

"You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter the
recipients' rights in the Source Code Form under this License."

I think this is specifically saying - as long as our license (BSD)
does not try and limit access to Eigen source, we can distribute our
binary under our license.

Cheers,

Matthew
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Nathaniel Smith
On 28 Mar 2014 20:26, "Robert Kern"  wrote:
>
> It's only a problem in that the binary will not be BSD, and we do need to
communicate that appropriately. It will contain a significant component
that is MPL2 licensed. The terms that force us to include the link to the
Eigen source that we used forces downstream redistributors of the binary to
do the same. Now, of all the copyleft licenses, this is certainly the most
friendly, but it is not BSD.

AFAICT, the only way redistributers could violate the MPL would be if they
unpacked our binary and deleted the license file. But this would also be a
violation of the BSD. The only difference in terms of requirements on
redistributors between MPL and BSD seems to be exactly *which* text you
include in your license file.

I don't know if Eigen is a good choice on technical grounds (or even a
possible one - has anyone ever actually compiled numpy against it?), but
this license thing just doesn't seem like an important issue to me, if the
alternative is not providing useful binaries.

-n
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Robert Kern
The BSD license alters the recipient's rights. BSD binaries can be
redistributed without pointing to the sources.
On Mar 28, 2014 7:33 PM, "Matthew Brett"  wrote:

> Hi,
>
> On Fri, Mar 28, 2014 at 12:26 PM, Robert Kern 
> wrote:
> > It's only a problem in that the binary will not be BSD, and we do need to
> > communicate that appropriately. It will contain a significant component
> that
> > is MPL2 licensed. The terms that force us to include the link to the
> Eigen
> > source that we used forces downstream redistributors of the binary to do
> the
> > same. Now, of all the copyleft licenses, this is certainly the most
> > friendly, but it is not BSD.
>
> I think the binary would be BSD because of section 3.2:
>
> "You may distribute such Executable Form under the terms of this
> License, or sublicense it under different terms, provided that the
> license for the Executable Form does not attempt to limit or alter the
> recipients' rights in the Source Code Form under this License."
>
> I think this is specifically saying - as long as our license (BSD)
> does not try and limit access to Eigen source, we can distribute our
> binary under our license.
>
> Cheers,
>
> Matthew
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Robert Kern
No, the license does not contain a pointer to the Eigen sources, which is
required.

https://bitbucket.org/eigen/eigen/src/fabd880592ac3343713cc07e7287098afd0f18ca/COPYING.MPL2?at=default
On Mar 28, 2014 7:34 PM, "Nathaniel Smith"  wrote:

> On 28 Mar 2014 20:26, "Robert Kern"  wrote:
> >
> > It's only a problem in that the binary will not be BSD, and we do need
> to communicate that appropriately. It will contain a significant component
> that is MPL2 licensed. The terms that force us to include the link to the
> Eigen source that we used forces downstream redistributors of the binary to
> do the same. Now, of all the copyleft licenses, this is certainly the most
> friendly, but it is not BSD.
>
> AFAICT, the only way redistributers could violate the MPL would be if they
> unpacked our binary and deleted the license file. But this would also be a
> violation of the BSD. The only difference in terms of requirements on
> redistributors between MPL and BSD seems to be exactly *which* text you
> include in your license file.
>
> I don't know if Eigen is a good choice on technical grounds (or even a
> possible one - has anyone ever actually compiled numpy against it?), but
> this license thing just doesn't seem like an important issue to me, if the
> alternative is not providing useful binaries.
>
> -n
>
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Andrea Gavana
On 28 March 2014 19:56, Sturla Molden  wrote:

> Matthew Brett  wrote:
>
> > Does anyone know how their performance compares to MKL or the
> > reference implementations?
>
> http://eigen.tuxfamily.org/index.php?title=Benchmark



Very, very funny and twisted approach to legend-ordering-in-a-plot
approach. Maybe someone more knowledgeable can explain the ordering of the
labels in the plot legends, as after a while they don't make any sense -
neither lexicographically nor performance-wise.


Andrea.

"Imagination Is The Only Weapon In The War Against Reality."
http://www.infinity77.net

# - #
def ask_mailing_list_support(email):

if mention_platform_and_version() and include_sample_app():
send_message(email)
else:
install_malware()
erase_hard_drives()
# - #
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Robert Kern
Of course, that's besides the point. Yes,  pretty much everyone that likes
the BSD license of numpy will be okay with the minimal burdens the MPL2
lays on them. The problem is that we need to properly communicate that
license. The PyPI page is not adequate to that task, in my opinion. I have
no problem with the project distributing such binaries anywhere else. But
then, I have no problem with the project distributing MKL binaries
elsewhere either.
On Mar 28, 2014 7:34 PM, "Nathaniel Smith"  wrote:

> On 28 Mar 2014 20:26, "Robert Kern"  wrote:
> >
> > It's only a problem in that the binary will not be BSD, and we do need
> to communicate that appropriately. It will contain a significant component
> that is MPL2 licensed. The terms that force us to include the link to the
> Eigen source that we used forces downstream redistributors of the binary to
> do the same. Now, of all the copyleft licenses, this is certainly the most
> friendly, but it is not BSD.
>
> AFAICT, the only way redistributers could violate the MPL would be if they
> unpacked our binary and deleted the license file. But this would also be a
> violation of the BSD. The only difference in terms of requirements on
> redistributors between MPL and BSD seems to be exactly *which* text you
> include in your license file.
>
> I don't know if Eigen is a good choice on technical grounds (or even a
> possible one - has anyone ever actually compiled numpy against it?), but
> this license thing just doesn't seem like an important issue to me, if the
> alternative is not providing useful binaries.
>
> -n
>
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Nathaniel Smith
Yes, because they're distributing source. But *our* license file could
contain the text of the BSD, the text of the MPL, and the text "Eigen
source is available at http://eigen.org.";

If the only problem with eigen turns out to be that we have to add a line
of text to a file then I think we can probably manage this somehow.

-n
On 28 Mar 2014 20:40, "Robert Kern"  wrote:

> No, the license does not contain a pointer to the Eigen sources, which is
> required.
>
>
> https://bitbucket.org/eigen/eigen/src/fabd880592ac3343713cc07e7287098afd0f18ca/COPYING.MPL2?at=default
> On Mar 28, 2014 7:34 PM, "Nathaniel Smith"  wrote:
>
>> On 28 Mar 2014 20:26, "Robert Kern"  wrote:
>> >
>> > It's only a problem in that the binary will not be BSD, and we do need
>> to communicate that appropriately. It will contain a significant component
>> that is MPL2 licensed. The terms that force us to include the link to the
>> Eigen source that we used forces downstream redistributors of the binary to
>> do the same. Now, of all the copyleft licenses, this is certainly the most
>> friendly, but it is not BSD.
>>
>> AFAICT, the only way redistributers could violate the MPL would be if
>> they unpacked our binary and deleted the license file. But this would also
>> be a violation of the BSD. The only difference in terms of requirements on
>> redistributors between MPL and BSD seems to be exactly *which* text you
>> include in your license file.
>>
>> I don't know if Eigen is a good choice on technical grounds (or even a
>> possible one - has anyone ever actually compiled numpy against it?), but
>> this license thing just doesn't seem like an important issue to me, if the
>> alternative is not providing useful binaries.
>>
>> -n
>>
>> ___
>> NumPy-Discussion mailing list
>> NumPy-Discussion@scipy.org
>> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>>
>>
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Sturla Molden
Nathaniel Smith  wrote:

> If the only problem with eigen turns out to be that we have to add a line
> of text to a file then I think we can probably manage this somehow.

We would also have to compile Eigen-BLAS for various architectures and CPU
counts. It is not "adaptive" like MKL or OpenBLAS.

Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Matthew Brett
Hi,

On Fri, Mar 28, 2014 at 12:57 PM, Robert Kern  wrote:
> Of course, that's besides the point. Yes,  pretty much everyone that likes
> the BSD license of numpy will be okay with the minimal burdens the MPL2 lays
> on them. The problem is that we need to properly communicate that license.
> The PyPI page is not adequate to that task, in my opinion. I have no problem
> with the project distributing such binaries anywhere else. But then, I have
> no problem with the project distributing MKL binaries elsewhere either.
>
> On Mar 28, 2014 7:34 PM, "Nathaniel Smith"  wrote:
>>
>> On 28 Mar 2014 20:26, "Robert Kern"  wrote:
>> >
>> > It's only a problem in that the binary will not be BSD, and we do need
>> > to communicate that appropriately. It will contain a significant component
>> > that is MPL2 licensed. The terms that force us to include the link to the
>> > Eigen source that we used forces downstream redistributors of the binary to
>> > do the same. Now, of all the copyleft licenses, this is certainly the most
>> > friendly, but it is not BSD.
>>
>> AFAICT, the only way redistributers could violate the MPL would be if they
>> unpacked our binary and deleted the license file. But this would also be a
>> violation of the BSD. The only difference in terms of requirements on
>> redistributors between MPL and BSD seems to be exactly *which* text you
>> include in your license file.

I don't think even that would violate the MPL.  The MPL says only that
we - the distributors of binary code from an MPL project - must do
this (3.1) "... inform recipients of the Executable Form how they can
obtain a copy of such Source Code Form".  It doesn't say we have to
require the recipient to do the same [1], and it doesn't say that has
to be in our license.  I don't think it can mean that, because
otherwise it would not make sense to say (in section 3.2) that we can
"sublicense it under different terms, provided that the license for
the Executable Form does not attempt to limit or alter the recipients'
rights in the Source Code Form under this License.".  The unmodified
standard BSD license does not alter the recipients rights to the
source code form of Eigen.

>> I don't know if Eigen is a good choice on technical grounds (or even a
>> possible one - has anyone ever actually compiled numpy against it?), but
>> this license thing just doesn't seem like an important issue to me, if the
>> alternative is not providing useful binaries.

Am I correct in thinking we are all agreeing that it would be OK to
distribute binary wheels for numpy from pypi, with compiled Eigen?

See you,

Matthew

[1]  "It's important to understand that the condition to distribute
files under the MPL's terms only applies to the party that first
creates and distributes the Larger Work."
"https://www.gnu.org/licenses/license-list.html
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Matthew Brett
Hi,

On Fri, Mar 28, 2014 at 1:28 PM, Sturla Molden  wrote:
> Nathaniel Smith  wrote:
>
>> If the only problem with eigen turns out to be that we have to add a line
>> of text to a file then I think we can probably manage this somehow.
>
> We would also have to compile Eigen-BLAS for various architectures and CPU
> counts. It is not "adaptive" like MKL or OpenBLAS.

Yes, I guess we currently have no idea how bad a default Eigen would be.

We also have the soft constraint that any choice we make should also
work for building scipy binaries - so adequate lapack coverage.

I believe that means lapack_lite is not an option?

So I guess the options are:

* eigen - could it be slow?
* openblas - could it be buggy?
* reference blas / lapack [1] [2] [3]

In [2] someone seems to be getting very good performance from the
reference implementation.

I guess we need to benchmark these guys on some standard systems, and
decide how bad the performance / stability has to be before it's
better not to provide binaries at all.

Cheers,

Matthew

[1] http://icl.cs.utk.edu/lapack-for-windows/lapack/
[2] http://ylzhao.blogspot.com/2013/10/blas-lapack-precompiled-binaries-for.html
[3] http://www.fi.muni.cz/~xsvobod2/misc/lapack/
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Nathaniel Smith
I thought OpenBLAS is usually used with reference lapack?
On 28 Mar 2014 22:16, "Matthew Brett"  wrote:

> Hi,
>
> On Fri, Mar 28, 2014 at 1:28 PM, Sturla Molden 
> wrote:
> > Nathaniel Smith  wrote:
> >
> >> If the only problem with eigen turns out to be that we have to add a
> line
> >> of text to a file then I think we can probably manage this somehow.
> >
> > We would also have to compile Eigen-BLAS for various architectures and
> CPU
> > counts. It is not "adaptive" like MKL or OpenBLAS.
>
> Yes, I guess we currently have no idea how bad a default Eigen would be.
>
> We also have the soft constraint that any choice we make should also
> work for building scipy binaries - so adequate lapack coverage.
>
> I believe that means lapack_lite is not an option?
>
> So I guess the options are:
>
> * eigen - could it be slow?
> * openblas - could it be buggy?
> * reference blas / lapack [1] [2] [3]
>
> In [2] someone seems to be getting very good performance from the
> reference implementation.
>
> I guess we need to benchmark these guys on some standard systems, and
> decide how bad the performance / stability has to be before it's
> better not to provide binaries at all.
>
> Cheers,
>
> Matthew
>
> [1] http://icl.cs.utk.edu/lapack-for-windows/lapack/
> [2]
> http://ylzhao.blogspot.com/2013/10/blas-lapack-precompiled-binaries-for.html
> [3] http://www.fi.muni.cz/~xsvobod2/misc/lapack/
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Olivier Grisel
2014-03-28 22:18 GMT+01:00 Nathaniel Smith :
> I thought OpenBLAS is usually used with reference lapack?

I am no longer sure myself. Debian & thus Ubuntu seem to be only
packaging the BLAS part of OpenBLAS for the libblas.so symlink and
uses the reference implementation of lapack for the liblapack.so
symlink.

I observed a sparse leastsqr bug when linking scipy against the full
OpenBLAS under OSX that I could not reproduce under with the openblas
+ lapack combo shipped Ubuntu so there might be a difference. But that
could also be caused by a version / platform discrepancy between my
two setups.

-- 
Olivier
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Julian Taylor
On 28.03.2014 22:38, Olivier Grisel wrote:
> 2014-03-28 22:18 GMT+01:00 Nathaniel Smith :
>> I thought OpenBLAS is usually used with reference lapack?
> 
> I am no longer sure myself. Debian & thus Ubuntu seem to be only
> packaging the BLAS part of OpenBLAS for the libblas.so symlink and
> uses the reference implementation of lapack for the liblapack.so
> symlink.

You can link the reference lapack with any library providing a BLAS
compatible API/ABI. ATLAS and OpenBlas are ABI compatible with reference
BLAS which allows replacing the library via LD_PRELOAD or debian
alternatives without recompiling.

Both ATLAS and OpenBlas provide a subset of optimized lapack functions,
but they are optional. On Debian/Ubuntu you can install ATLAS lapack but
then you are also forced to use ATLAS blas.

I am not familiar with how relevant the optimized parts of lapack for
the general use case.

> 
> I observed a sparse leastsqr bug when linking scipy against the full
> OpenBLAS under OSX that I could not reproduce under with the openblas
> + lapack combo shipped Ubuntu so there might be a difference. But that
> could also be caused by a version / platform discrepancy between my
> two setups.
> 

what kind of a bug? wrong result or crash? Which target did openblas use
when compiling on macos? or was it a dynamic build? (see the name of the
built static library)
The adaptive nature of OpenBLAS can make reproducing issues tricky, I
don't think there is a way to force it to use a certain kernel at
runtime besides recompiling for a different target.

If you have a testcase I'd be interested in it, as I'm trying to get
openblas into a decent shape for ubuntu 14.04.
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Olivier Grisel
2014-03-28 22:55 GMT+01:00 Julian Taylor :
> On 28.03.2014 22:38, Olivier Grisel wrote:
>> 2014-03-28 22:18 GMT+01:00 Nathaniel Smith :
>>> I thought OpenBLAS is usually used with reference lapack?
>>
>> I am no longer sure myself. Debian & thus Ubuntu seem to be only
>> packaging the BLAS part of OpenBLAS for the libblas.so symlink and
>> uses the reference implementation of lapack for the liblapack.so
>> symlink.
>
> You can link the reference lapack with any library providing a BLAS
> compatible API/ABI. ATLAS and OpenBlas are ABI compatible with reference
> BLAS which allows replacing the library via LD_PRELOAD or debian
> alternatives without recompiling.
>
> Both ATLAS and OpenBlas provide a subset of optimized lapack functions,
> but they are optional. On Debian/Ubuntu you can install ATLAS lapack but
> then you are also forced to use ATLAS blas.
>
> I am not familiar with how relevant the optimized parts of lapack for
> the general use case.
>
>>
>> I observed a sparse leastsqr bug when linking scipy against the full
>> OpenBLAS under OSX that I could not reproduce under with the openblas
>> + lapack combo shipped Ubuntu so there might be a difference. But that
>> could also be caused by a version / platform discrepancy between my
>> two setups.
>>
>
> what kind of a bug? wrong result or crash?

Here it is: https://github.com/scikit-learn/scikit-learn/issues/2986

I have not found the time to investigate yet.

> Which target did openblas use
> when compiling on macos? or was it a dynamic build? (see the name of the
> built static library)

I think I used target=NEHALEM that time (but not 100% sure).

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-28 Thread Sturla Molden
Nathaniel Smith  wrote:

> I thought OpenBLAS is usually used with reference lapack?

It is.

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-03-31 Thread Matthew Brett
Hi,

On Wed, Mar 26, 2014 at 11:34 AM, Julian Taylor
 wrote:
> On 26.03.2014 16:27, Olivier Grisel wrote:
>> Hi Carl,
>>
>> I installed Python 2.7.6 64 bits on a windows server instance from
>> rackspace cloud and then ran get-pip.py and then could successfully
>> install the numpy and scipy wheel packages from your google drive
>> folder. I tested dot products and scipy.linalg.svd and they work as
>> expected.
>>
>
>>
>> Would it make sense to embed the blas and lapack header files as part
>> of this numpy wheel and make numpy.distutils.system_info return the
>> lib and include folder pointing to the embedded libopenblas.dll and
>> header files so has to make third party libraries directly buildable
>> against those?
>>
>
> as for using openblas by default in binary builds, no.
> pthread openblas build is now fork safe which is great but it is still
> not reliable enough for a default.
> E.g. the current latest release 0.2.8 still has one crash bug on
> dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
> git head has the former four fixed bug still has wrong results for cgemv.

I noticed the Carl was only getting three test failures on scipy - are
these related?

==
FAIL: test_decomp.test_eigh('general ', 6, 'F', True, False, False, (2, 4))
--
Traceback (most recent call last):
  File "D:\devel\py27\lib\site-packages\nose\case.py", line 197, in runTest
self.test(*self.arg)
  File "D:\devel\py27\lib\site-packages\scipy\linalg\tests\test_decomp.py",
line 642, in eigenhproblem_general
assert_array_almost_equal(diag2_, ones(diag2_.shape[0]), DIGITS[dtype])
  File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
811, in assert_array_almost_equal
header=('Arrays are not almost equal to %d decimals' % decimal))
  File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
644, in assert_array_compare
raise AssertionError(msg)
AssertionError:
Arrays are not almost equal to 4 decimals

(mismatch 100.0%)
 x: array([ 0.,  0.,  0.], dtype=float32)
 y: array([ 1.,  1.,  1.])

==
FAIL: Tests for the minimize wrapper.
--
Traceback (most recent call last):
  File "D:\devel\py27\lib\site-packages\nose\case.py", line 197, in runTest
self.test(*self.arg)
  File "D:\devel\py27\lib\site-packages\scipy\optimize\tests\test_optimize.py",
line 435, in test_minimize
self.test_powell(True)
  File "D:\devel\py27\lib\site-packages\scipy\optimize\tests\test_optimize.py",
line 209, in test_powell
atol=1e-14, rtol=1e-7)
  File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
1181, in assert_allclose
verbose=verbose, header=header)
  File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
644, in assert_array_compare
raise AssertionError(msg)
AssertionError:
Not equal to tolerance rtol=1e-07, atol=1e-14

(mismatch 100.0%)
 x: array([[ 0.75077639, -0.44156936,  0.47100962],
   [ 0.75077639, -0.44156936,  0.48052496],
   [ 1.50155279, -0.88313872,  0.95153458],...
 y: array([[ 0.72949016, -0.44156936,  0.47100962],
   [ 0.72949016, -0.44156936,  0.48052496],
   [ 1.45898031, -0.88313872,  0.95153458],...

==
FAIL: Powell (direction set) optimization routine
--
Traceback (most recent call last):
  File "D:\devel\py27\lib\site-packages\nose\case.py", line 197, in runTest
self.test(*self.arg)
  File "D:\devel\py27\lib\site-packages\scipy\optimize\tests\test_optimize.py",
line 209, in test_powell
atol=1e-14, rtol=1e-7)
  File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
1181, in assert_allclose
verbose=verbose, header=header)
  File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
644, in assert_array_compare
raise AssertionError(msg)
AssertionError:
Not equal to tolerance rtol=1e-07, atol=1e-14

(mismatch 100.0%)
 x: array([[ 0.75077639, -0.44156936,  0.47100962],
   [ 0.75077639, -0.44156936,  0.48052496],
   [ 1.50155279, -0.88313872,  0.95153458],...
 y: array([[ 0.72949016, -0.44156936,  0.47100962],
   [ 0.72949016, -0.44156936,  0.48052496],
   [ 1.45898031, -0.88313872,  0.95153458],...

--
Ran 8940 tests in 143.892s

> Openblas is great if you do not have the patience to build ATLAS and
> only use a restricted set of functionality and platforms you can easily
> test.

I don't think it's possible to build ATLAS on Windows 64-bit at the
moment, and it would take a lot of work to make it build, and Clint W
has said he does not want to invest much time maintaining the Windows
build, so unless someth

Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-03 Thread Julian Taylor
FYI, binaries linking openblas should add this patch in some way:
https://github.com/numpy/numpy/pull/4580

Cliffs: linking OpenBLAS prevents parallelization via threading or 
multiprocessing.

just wasted a bunch of time figuring that out ... (though its well 
documented in numerous stackoverflow questions, too bad none of them 
reached us)

On 04/01/2014 02:59 AM, Matthew Brett wrote:
> Hi,
>
> On Wed, Mar 26, 2014 at 11:34 AM, Julian Taylor
>  wrote:
>> On 26.03.2014 16:27, Olivier Grisel wrote:
>>> Hi Carl,
>>>
>>> I installed Python 2.7.6 64 bits on a windows server instance from
>>> rackspace cloud and then ran get-pip.py and then could successfully
>>> install the numpy and scipy wheel packages from your google drive
>>> folder. I tested dot products and scipy.linalg.svd and they work as
>>> expected.
>>>
>>
>>>
>>> Would it make sense to embed the blas and lapack header files as part
>>> of this numpy wheel and make numpy.distutils.system_info return the
>>> lib and include folder pointing to the embedded libopenblas.dll and
>>> header files so has to make third party libraries directly buildable
>>> against those?
>>>
>>
>> as for using openblas by default in binary builds, no.
>> pthread openblas build is now fork safe which is great but it is still
>> not reliable enough for a default.
>> E.g. the current latest release 0.2.8 still has one crash bug on
>> dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
>> git head has the former four fixed bug still has wrong results for cgemv.
>
> I noticed the Carl was only getting three test failures on scipy - are
> these related?
>
> ==
> FAIL: test_decomp.test_eigh('general ', 6, 'F', True, False, False, (2, 4))
> --
> Traceback (most recent call last):
>File "D:\devel\py27\lib\site-packages\nose\case.py", line 197, in runTest
>  self.test(*self.arg)
>File "D:\devel\py27\lib\site-packages\scipy\linalg\tests\test_decomp.py",
> line 642, in eigenhproblem_general
>  assert_array_almost_equal(diag2_, ones(diag2_.shape[0]), DIGITS[dtype])
>File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
> 811, in assert_array_almost_equal
>  header=('Arrays are not almost equal to %d decimals' % decimal))
>File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
> 644, in assert_array_compare
>  raise AssertionError(msg)
> AssertionError:
> Arrays are not almost equal to 4 decimals
>
> (mismatch 100.0%)
>   x: array([ 0.,  0.,  0.], dtype=float32)
>   y: array([ 1.,  1.,  1.])
>
> ==
> FAIL: Tests for the minimize wrapper.
> --
> Traceback (most recent call last):
>File "D:\devel\py27\lib\site-packages\nose\case.py", line 197, in runTest
>  self.test(*self.arg)
>File 
> "D:\devel\py27\lib\site-packages\scipy\optimize\tests\test_optimize.py",
> line 435, in test_minimize
>  self.test_powell(True)
>File 
> "D:\devel\py27\lib\site-packages\scipy\optimize\tests\test_optimize.py",
> line 209, in test_powell
>  atol=1e-14, rtol=1e-7)
>File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
> 1181, in assert_allclose
>  verbose=verbose, header=header)
>File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
> 644, in assert_array_compare
>  raise AssertionError(msg)
> AssertionError:
> Not equal to tolerance rtol=1e-07, atol=1e-14
>
> (mismatch 100.0%)
>   x: array([[ 0.75077639, -0.44156936,  0.47100962],
> [ 0.75077639, -0.44156936,  0.48052496],
> [ 1.50155279, -0.88313872,  0.95153458],...
>   y: array([[ 0.72949016, -0.44156936,  0.47100962],
> [ 0.72949016, -0.44156936,  0.48052496],
> [ 1.45898031, -0.88313872,  0.95153458],...
>
> ==
> FAIL: Powell (direction set) optimization routine
> --
> Traceback (most recent call last):
>File "D:\devel\py27\lib\site-packages\nose\case.py", line 197, in runTest
>  self.test(*self.arg)
>File 
> "D:\devel\py27\lib\site-packages\scipy\optimize\tests\test_optimize.py",
> line 209, in test_powell
>  atol=1e-14, rtol=1e-7)
>File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
> 1181, in assert_allclose
>  verbose=verbose, header=header)
>File "D:\devel\py27\lib\site-packages\numpy\testing\utils.py", line
> 644, in assert_array_compare
>  raise AssertionError(msg)
> AssertionError:
> Not equal to tolerance rtol=1e-07, atol=1e-14
>
> (mismatch 100.0%)
>   x: array([[ 0.75077639, -0.44156936,  0.47100962],
> [ 0.75077639, -0.44156936,  0.48052496],
> [ 1.50155279, -0.88313872,  0.95153458],...
>   y: array([[ 0.7294

Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-03 Thread Olivier Grisel
2014-04-03 14:56 GMT+02:00 Julian Taylor :
> FYI, binaries linking openblas should add this patch in some way:
> https://github.com/numpy/numpy/pull/4580
>
> Cliffs: linking OpenBLAS prevents parallelization via threading or
> multiprocessing.
>
> just wasted a bunch of time figuring that out ... (though its well
> documented in numerous stackoverflow questions, too bad none of them
> reached us)

You mean because of the default CPU affinity stuff in the default
OpenBLAS? If we ship OpenBLAS with a windows binary of numpy / scipy
we can compile OpenBLAS with the NO_AFFINITY=1 flag to avoid the
issue.

-- 
Olivier
http://twitter.com/ogrisel - http://github.com/ogrisel
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-06 Thread Matthew Brett
Hi,

On Wed, Mar 26, 2014 at 11:34 AM, Julian Taylor
 wrote:
> On 26.03.2014 16:27, Olivier Grisel wrote:
>> Hi Carl,
>>
>> I installed Python 2.7.6 64 bits on a windows server instance from
>> rackspace cloud and then ran get-pip.py and then could successfully
>> install the numpy and scipy wheel packages from your google drive
>> folder. I tested dot products and scipy.linalg.svd and they work as
>> expected.
>>
>
>>
>> Would it make sense to embed the blas and lapack header files as part
>> of this numpy wheel and make numpy.distutils.system_info return the
>> lib and include folder pointing to the embedded libopenblas.dll and
>> header files so has to make third party libraries directly buildable
>> against those?
>>
>
> as for using openblas by default in binary builds, no.
> pthread openblas build is now fork safe which is great but it is still
> not reliable enough for a default.
> E.g. the current latest release 0.2.8 still has one crash bug on
> dgemv[1], and wrong results zherk/zer2[2] and dgemv/cgemv[3].
> git head has the former four fixed bug still has wrong results for cgemv.
> The not so old 0.2.8 also fixed whole bunch more crashes and wrong
> result issues (crashes on QR, uninitialized data use in dgemm, ...).
> None of the fixes received unit tests, so I am somewhat pessimistic that
> it will improve, especially as the maintainer is dissertating (is that
> the right word?) and most of the code is assembler code only few people
> can write (it is simply not required anymore, we have code generators
> and intrinsics for that).
>
> Openblas is great if you do not have the patience to build ATLAS and
> only use a restricted set of functionality and platforms you can easily
> test.
> Currently it is in my opinion not suitable for a general purpose library
> like numpy.
>
> I don't have any objections to adding get_info("openblas") if that does
> not work yet. Patches welcome.

Julian - do you have any opinion on using gotoBLAS instead of OpenBLAS
for the Windows binaries?

Cheers,

Matthew
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-06 Thread Sturla Molden
Matthew Brett  wrote:

> Julian - do you have any opinion on using gotoBLAS instead of OpenBLAS
> for the Windows binaries?

That is basically OpenBLAS too, except with more bugs and no AVX support.

Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-06 Thread Matthew Brett
Hi,

On Sun, Apr 6, 2014 at 11:47 AM, Sturla Molden  wrote:
> Matthew Brett  wrote:
>
>> Julian - do you have any opinion on using gotoBLAS instead of OpenBLAS
>> for the Windows binaries?
>
> That is basically OpenBLAS too, except with more bugs and no AVX support.

I know that OpenBLAS is a fork of gotoBLAS2, but you said in another
thread that gotoBLAS2 was 'rock-solid'.  If the bugs in gotoBLAS2 do
not in practice arise for default Windows builds, then it could be a
good option until OpenBLAS is more mature.

Put another way - does anyone know what bugs in gotoBLAS2 do arise for
Windows / Intel builds?

Cheers,

Matthew
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-06 Thread Carl Kleffner
MKL BLAS LAPACK has issues as well:
http://software.intel.com/en-us/articles/intel-mkl-110-bug-fixes .
In case of OpenBLAS or GOTOBLAS what precisly is the problem you identify
as showstopper?

Regards

Carl




2014-04-06 20:59 GMT+02:00 Matthew Brett :

> Hi,
>
> On Sun, Apr 6, 2014 at 11:47 AM, Sturla Molden 
> wrote:
> > Matthew Brett  wrote:
> >
> >> Julian - do you have any opinion on using gotoBLAS instead of OpenBLAS
> >> for the Windows binaries?
> >
> > That is basically OpenBLAS too, except with more bugs and no AVX support.
>
> I know that OpenBLAS is a fork of gotoBLAS2, but you said in another
> thread that gotoBLAS2 was 'rock-solid'.  If the bugs in gotoBLAS2 do
> not in practice arise for default Windows builds, then it could be a
> good option until OpenBLAS is more mature.
>
> Put another way - does anyone know what bugs in gotoBLAS2 do arise for
> Windows / Intel builds?
>
> Cheers,
>
> Matthew
> ___
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-06 Thread Sturla Molden
Matthew Brett  wrote:

> Put another way - does anyone know what bugs in gotoBLAS2 do arise for
> Windows / Intel builds?

http://www.openblas.net/Changelog.txt

There are some bug fixes for x86_64 here.

GotoBLAS (and GotoBLAS2) were the de facto BLAS on many HPC systems, and
are well proven. But there is no software without bugs. 

I don't think there is a reason to prefer GotoBLAS2 to OpenBLAS. But you
could of course just cherry-pick all bugfixes for x86 and amd64 and leave
out the rest of the changes. Differences between OpenBLAS and GotoBLAS2 for
MIPS does not really matter for Windows...

Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion


Re: [Numpy-discussion] Default builds of OpenBLAS development branch are now fork safe

2014-04-06 Thread Sturla Molden
Carl Kleffner  wrote:
> MKL BLAS LAPACK has issues as well:
>  href="http://software.intel.com/en-us/articles/intel-mkl-110-bug-fixes";>http://software.intel.com/en-us/articles/intel-mkl-110-bug-fixes
> .
> In case of OpenBLAS or GOTOBLAS what precisly is the problem you identify
> as showstopper?

For example:

https://github.com/xianyi/OpenBLAS/issues/340

However, the main problem is the quality of the projects:

- GotoBLAS2 is abandonware. After Goto went to Intel, all development has
ceased. Any bugs will not be fixed.

- GotoBLAS2 uses OpenMP on Posix. GOMP is not fork-safe (though not an
issue on Windows).

- OpenBLAS looks a bit like a one-man student project. Right now Zhang
Xianyi is writing his dissertation, so development has stopped. 

- The SIMD code is written in inline assembly instead of using compiler
intrinsics for SIMD ops. This makes it hard to contribute as it is
insufficient just to know C. 

- AT&T syntax in the inline assembly prevents us from building with MSVC.


Sturla

___
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion