gonum / blas

A BLAS implementation for Go [DEPRECATED]
172 stars 16 forks source link

use prebuilt openblas packages #170

Closed jonlawlor closed 8 years ago

jonlawlor commented 8 years ago

travis-ci uses ubuntu 12.0 (precise) with the option to use ubuntu trusty. Neither provide a version of openblas that can pass the drotmg test due to https://github.com/xianyi/OpenBLAS/issues/365, which was fixed after openblas 2.10 (I think).

I've circumvented the typical apt-get process here. On the plus side this is much faster. On the minus side it is more fragile, and we are not testing against the absolute latest OpenBLAS.

btracey commented 8 years ago

This is probably okay for BLAS. The drotmg failure can be printed as a known error (like we do elsewhere). Lapack is a bigger issue because we've triggered several segfaults and other crashing behavior.

jonlawlor commented 8 years ago

Builds using OpenBLAS now take ~1m, down from ~5m.

@btracey - do you mean it is OK for the test to fail and that I should just use the prebuild packages that fail (and then modify the test to ignore the failure...) or that we absolutely need the latest OpenBLAS for the lapack library?

kortschak commented 8 years ago

gonum/lapack cannot use the earlier revisions of OpenBLAS since NETLIB LAPACKE at various places is fatally broken in the packaged versions.

jonlawlor commented 8 years ago

Even 2.15? That is available from Ubuntu Xenial.

kortschak commented 8 years ago

You could try. The worst that will happen is a failure - the failures are mainly segfaults, so they're pretty obvious.

jonlawlor commented 8 years ago

Still fiddling with prebuilt packages for lapack, but can I get a LGTM for blas?

kortschak commented 8 years ago

Any particular reason for the host you've chosen? and why libblas3 rather than OpenBLAS (we specify OpenBLAS in the README)?

It would by nice to have the behaviour configurable by env var.

jonlawlor commented 8 years ago

This change does build against OpenBLAS, but you're right that package might be redundant. I think I added it because it was a dependency somewhere along the way (I started with openblas and worked backwards) but it is possible that it is in there by mistake. I'll see if I can remove it.

jonlawlor commented 8 years ago

OK, a couple things. First, you were right in that we don't need libblas3 if we use this install script. However, I think I cut a corner and didn't install libopenblas-dev, and that does depend on libblas-dev which depends on libblas3. I don't know why libblas-dev depends on libblas3, but it won't install without it.

I'm going to change the script to use an environment variable for the ubuntu mirror. I chose xmission because they have absolutely every package, while many mirrors do not. There are probably 10 that we can choose from.

Also, I think I got lapack working off of packages from xenial. Hopefully I'll have a pull for it in the next 4 or 5 hours.

jonlawlor commented 8 years ago

I have an improved version of this but I deleted and reset the repo so I have to open a new pull request for it, sorry. On the plus side lapack is building on prebuilt packages. Pull requests incoming...

jonlawlor commented 8 years ago

Closed in favor of #172