Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lapack/netlib: require Gonum v0.13 and add missing methods #92

Merged
merged 4 commits into from
Jul 29, 2023

Conversation

vladimir-ch
Copy link
Member

@vladimir-ch vladimir-ch commented Jul 7, 2023

Let's give some TLC to the netlib packages. Let's start by requiring Gonum v0.13 and adding missing methods which are Dlapmr and Dpstrf. The editor reformatted comments on save and I also removed two unreachable returns that somehow sneaked in in the past.

Unfortunately, there are two failing tests: one in BLAS Drotg (new one) and one in LAPACK Dlarfb. I should probably identify the root cause before merging this.

Fixes #91

Please take a look.

@kortschak
Copy link
Member

kortschak commented Jul 7, 2023

I should bump the Go versions for CI. We don't have any required version, so this is not needed, but it should be bumped in the CI config.

@vladimir-ch
Copy link
Member Author

Ok, I'll bump the Go version too.

About Drotg, OpenBLAS seems to use their own C implementation in interface/rotg.c which is based on the previous reference version that doesn't handle extreme values well. I'll create an issue for them.

I'll check Dlarfb next.

@vladimir-ch
Copy link
Member Author

The failure of Dlarfb test turns out to be a bug in LAPACKE: Reference-LAPACK/lapack#877

@kortschak
Copy link
Member

After running go generate ./... to bring the errors and doc synchronisation up to date the only failure locally is the known drotg issue.

@vladimir-ch
Copy link
Member Author

I've run go generate. I think OpenBLAS will pick up the fix for the Dlarfb issue but the Drotg issue will likely persist. Should I add a flag to skip testing huge numbers from this repo?

@kortschak
Copy link
Member

Yeah, I think so.

@vladimir-ch
Copy link
Member Author

I missed there's one more failure in Drotmg:

=== RUN   TestDrotmg
    level1double.go:2206: drotm y_0 mismatch RD1_Med_RD2_Big_Flag_0: expected 0, found 5.1194107541670215e-11
--- FAIL: TestDrotmg (0.00s)

@vladimir-ch
Copy link
Member Author

The root cause is again the difference between using and not using FMA. The detection of the FMA instruction in the CI pipeline gives different results from running locally. It'd be nice to know how to get the same (or at least in terms of FMA) build in both environments. Anyway, I'll see if I can either improve the test or relax the tolerance.

@codecov-commenter
Copy link

codecov-commenter commented Jul 29, 2023

Codecov Report

Patch coverage: 47.82% and project coverage change: -1.34% ⚠️

Comparison is base (ede9441) 30.46% compared to head (ac94acc) 29.12%.
Report is 4 commits behind head on master.

❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #92      +/-   ##
==========================================
- Coverage   30.46%   29.12%   -1.34%     
==========================================
  Files           3        3              
  Lines        6513     6321     -192     
==========================================
- Hits         1984     1841     -143     
+ Misses       4096     4046      -50     
- Partials      433      434       +1     
Files Changed Coverage Δ
blas/netlib/blas.go 28.51% <ø> (-0.66%) ⬇️
lapack/netlib/lapack.go 30.24% <47.82%> (-2.79%) ⬇️

... and 1 file with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@vladimir-ch
Copy link
Member Author

"All checks have passed" 🎉

@vladimir-ch vladimir-ch merged commit 8b8060e into master Jul 29, 2023
2 checks passed
@vladimir-ch vladimir-ch deleted the gonum-0.13 branch July 29, 2023 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

lapack/netlib/lapack.go: Missing implementation of method Dlampr
3 participants