Repository navigation
Recursive LAUUM - #1402
Recursive LAUUM#1402
Conversation
…lauum is a dispatch to the varint of choice. We are defaulting to recursive, but could be blocked as well
…how ilaenv parses names, any lauum routine that queries for nx will return the same value.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1402 +/- ##
==========================================
+ Coverage 69.36% 69.50% +0.14%
==========================================
Files 6122 6184 +62
Lines 486717 494962 +8245
Branches 23268 23426 +158
==========================================
+ Hits 337590 344026 +6436
- Misses 148689 150502 +1813
+ Partials 438 434 -4
... and 111 files with indirect coverage changes Continue to review full report in Codecov by Harness.
|
|
Hi @jprhyne, could you please merge the current master back into all your PRs? We fixed numerical issues and errors on all platforms that are tested in CI, and the CI jobs are now configured to fail if new errors occur. That will help us to quickly determine if the changes in the PRs introduce new errors or can be merged. |
|
I don't have visibility of the setting for this PR, but the default on this repo is to give permission to those with write permission, to push (including force-push) to a PR branch. That would mean that someone with permissions on this repo could rebase this branch past the |
|
I am working on lallm (another variant similar to this routine) and noticed that there is no statement on the unused triangular component of A inside LAUUM. I have opened an issue asking for clarification (Issue #1415). I'm more than happy to merge changes for that into this PR (after I update this branch and ensure all tests pass of course) |
…nto rec_lauum_only_lauum
|
I still need to fix documentation, I'm just running the tests after merging the new master branch before doing any other changes. |
… rec_lauum_only_lauum
|
We could also put the old blocked lauum implementation into
|
We are trying a new design here where variants of an algorithm are in SRC, as opposed to the VARIANTS folder. I would like to keep it that way and try. LAUMM is an entry point and then developers, vendors can deflect to a variant. Right now, @jprhyne chose LAUMM_RECURSIVE as a default for the reference version of LAPACK. However, we would like to expose as well LAUUM_BLOCKED. (LAUMM_BLOCKED is the current LAUUM.) Actually LAUMM_BLOCKED could be renamed to LAUMM_BLOCKED_LL. If there is some traction for this renaming, I won't be opposed to it. (One could write a LAUMM_BLOCKED_RL, the right-looking variant of LAUUM.) |
|
Hi @ACSimon33, have a look. I think @jprhyne addressed all your feedback. (Thanks for the feedback.) I could either ask you to "re-review" or to "dismiss your review". I chose "re-review". Cheers, Julien. |
Description
As discussed in PR #1373, here is the implementation of a recursive LAUUM. Since some may prefer a blocked algorithm, we are proposing that we use
*lauum.fas a dispatch to whatever implementation is desired in a given environment. It's possible to somehow utilizeilaenvto do the dispatch or to have this logic insidelauum.fdirectly.In addition, since it is hardware dependent, I default to NX=64 as a crossover to lauu2. Due to how ILAENV parses the (sub)-routine names, any LAUUM routine that queries for NX will return the same value. This could be relevant if an NX parameter is to be introduced into the blocked variant. I'm not sure what the preferred method to deal with this is, so I propose that we defer this decision until it becomes relevant.
But, if it is better to solve this issue now, I propose adding another variable that checks for whatever comes after underscores in ILAENV. However, since this type of naming is not convention, I do not believe it is a good idea unless there becomes a standardized way of having different variant names in the main source directory.
Since this is a change to an auxiliary routine without a change in any public facing APIs, I do not think it is important to solve at this moment.
Checklist