Deprecating mixed precision inner product subroutines#373
Deprecating mixed precision inner product subroutines#373Matthew Walker (mattatmet) wants to merge 2 commits into
Conversation
|
Happy with these changes from a TCD team/PSyclone perspective - thanks for removing some PSyKAl-lite! |
Thomas Bendall (tommbendall)
left a comment
There was a problem hiding this comment.
Always good to see some psykal-light code removed. I don't think the corresponding innerproduct routines are called in LFRic-Apps so no linked PR is necessary?
If you haven't already, it might be worth double-checking by running an LFRic-Apps branch linked to this Core branch.
Thanks for the quick review Tom (Thomas Bendall (@tommbendall))! There's actually an integration test in apps that has these inner product calls that I've had to change as well as a significant number of KGOs that have to be adjusted as well. I've put those into #501 in apps. So I think it might be necessary but happy to be wrong on that? |
Ah sorry, I completely missed that there already was a linked Apps PR! So I'm not sure that I understand why every KGO changes... are the sums now happening at the native precision rather than r_double precision? |
Thomas Bendall (@tommbendall), yes, the psykal-lite code promotes the solver field within the subroutine to r_double, whereas the PSyclone built-ins (I think) are set to use whatever the precision is of the argument that it's given, which will be r_solver. |
I thought that must be the case! I have chatted with Tom M and Chris M and am happy that this is fine -- I also ran some NWP case studies to check that the impact is negligible and stability wouldn't be impacted, and everything looked OK. |
Awesome, thanks for doing that! Glad they were stable. |
PR Summary
Sci/Tech Reviewer: thomasmelvin
Code Reviewer: Oakley Brunt (@oakleybrunt)
This is a PR reflecting the Trac ticket #4449. The changes in this PR are a like-for-like replica of that ticket. This involves removing the PSyKAL light code introduced to perform mixed precision inner product operations in order to deprecate that feature. These inner product operations have been replaced in the solver with PSyclone built-ins that were introduced in PSyclone#1786.
Code Quality Checklist
Testing
trac.log
Test Suite Results - lfric_core - mixed-precision-core/run1
Suite Information
Task Information
❌ failed tasks - 1
⌛ waiting tasks - 1
Security Considerations
Performance Impact
AI Assistance and Attribution
Documentation
PSyclone Approval
Sci/Tech Review
(Please alert the code reviewer via a tag when you have approved the SR)
Code Review