Skip to content
This repository was archived by the owner on Nov 24, 2018. It is now read-only.

Conversation

@kortschak
Copy link
Member

@btracey Please take a look.

@kortschak
Copy link
Member Author

This can be left until we want to upgrade to 3.6 since it now seems that we can link against 3.6 with ours (on my machine) and an upgrade will break installations that do not have 3.6.

@kortschak
Copy link
Member Author

BTW Do not trust the github diff. It is clearly wrong in places.

@btracey
Copy link
Member

btracey commented Dec 9, 2015

Does this remove the functions that are no longer in Lapack? It looked like it did more from the real diff.

@kortschak
Copy link
Member Author

It actually doesn't remove anything. It changes a parameter name and adds some new functions and changes some signatures.

@btracey
Copy link
Member

btracey commented Dec 9, 2015

Ah, that makes sense. Could it also remove the extra functions (so I can use the new OpenBLAS)?

@kortschak
Copy link
Member Author

Can you try building with this before I do that. I don't actually see any thing that says those were deleted intentionally.

@btracey
Copy link
Member

btracey commented Dec 9, 2015

As is currently set up, I get the same linking error (about undefined symbols). Do I need to change anything?

@kortschak
Copy link
Member Author

You shouldn't need to. @vladimir-ch can you replicate this failure?

@vladimir-ch
Copy link
Member

It took me a while to figure out that you are using the develop branch. Yes, I get the same linking errors as @btracey

@vladimir-ch
Copy link
Member

I think the cause is OpenBLAS/lapack-netlib/SRC/Makefile:451, the deprecated routines are not built.

@vladimir-ch
Copy link
Member

No, that doesn't seem to be it.

@vladimir-ch
Copy link
Member

OpenBLAS/lapack-netlib/LAPACKE/src/Makefile:2201

@vladimir-ch
Copy link
Member

make BUILD_DEPRECATED=1 works for me

@kortschak
Copy link
Member Author

OK, that makes sense. I can now replicate the failure - artifacts for those functions were left behind and linked in, so hosing the repo and re-checking out gives the failure.

So this PR should also add a list of deprecated functions to exclude.

Because change for change's sake is a good thing.
@kortschak
Copy link
Member Author

PTAL

@btracey
Copy link
Member

btracey commented Dec 9, 2015

Could you explain this a bit? It seems to delete a lot of functions "LAPACKE_zuncsd2by1" for example. Are these being determined from a master list somewhere?

Is the copyright year change intentional?

@kortschak
Copy link
Member Author

I got the list of deprecated functions from here and the copyright date is a function of the fact that the header files are just copied from here.

@btracey
Copy link
Member

btracey commented Dec 9, 2015

Code compiles correctly for me, so LGTM

@kortschak kortschak merged commit 6343a7f into master Dec 9, 2015
@vladimir-ch
Copy link
Member

Just for my better understanding of the big picture (a bit too late): this PR requires OpenBLAS to be compiled from the develop branch. It is not difficult at all but still it is a slightly harsh requirement that should be at least mentioned somewhere. Also, what is the motivation or justification of this? Otherwise we are rather conservative.

@kortschak
Copy link
Member Author

For whatever reason (I don't understand this myself), OpenBLAS's default branch is develop.

The motivation is that it fixes the build - when we pull for travis we get develop and so our builds were breaking since the deprecated functions were not being built.

@vladimir-ch
Copy link
Member

For whatever reason (I don't understand this myself), OpenBLAS's default branch is develop.

Interesting. I'm wondering how many packages actually use the develop branch. I didn't do any rigorous comparison but building our clapack against OpenBLAS master seemed to produce the same errors as against my Fedora 22 system OpenBLAS.

@btracey
Copy link
Member

btracey commented Dec 9, 2015

Other groups are at least struggling with the issue on what to do with these deprecations and the breaks they cause. scipy/scipy#5266

The relevant factor in our case is that it seems we are the first group to actually test the RowMajor version of Lapacke. There are a bunch of memory errors and other size problems. See, for example, the two bugs I discovered in #74 alone. Using older versions of OpenBLAS give you incorrect results. Current versions do too, but that's only a stronger argument to stay with develop for the time being.

@vladimir-ch
Copy link
Member

Using older versions of OpenBLAS give you incorrect results. Current versions do too ...

That's not nice but I guess the alternatives are limited. Out of curiosity, does the Accelerate framework on OSX have similar issues? Or has someone tested MKL?

@btracey
Copy link
Member

btracey commented Dec 11, 2015

The problems are with Lapack functions. I don't know of alternate Lapack implementations except for some specific functions, so all Lapack versions would have these problems (since they all call the same C API)

@vladimir-ch
Copy link
Member

You mean that (y)our implementation of Lapack in native Go is not something common? All others end up calling the same Fortran code?

@btracey
Copy link
Member

btracey commented Dec 11, 2015

As far as I know, yes. OpenBLAS has a few functions, ATLAS has a few
functions. Mkl may have everything, they have the resources, knowledge and
market that they may care enough.

It must be the case that we're the first to really test the row major
implementation of lapack given the nature of the bugs we've seen
On Dec 10, 2015 5:45 PM, "Vladimír Chalupecký" notifications@github.com
wrote:

You mean that (y)our implementation of Lapack in native Go is not
something common? All others end up calling the same Fortran code?


Reply to this email directly or view it on GitHub
#75 (comment).

@vladimir-ch
Copy link
Member

Wow. Thanks.

@kortschak kortschak deleted the lapacke-3.6 branch December 11, 2015 20:13
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants