-
Notifications
You must be signed in to change notification settings - Fork 28
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
Meta-issue tracking LFRic module-inline and intrinsics-inlining issues #1823
Comments
I started #1844 to fix these issues. I could deal with the duplicated declarations when the same kernel is in multiple invokes in the same file and a more subtle issues I found when psy.gen is called multiple times. But I need your opinion how to solve issues with missing symbols inside the inlined routines. The problem is when the kernel code uses a globally imported variable. e.g.:
When this routine is inlined the r_single is undeclared in the _psy.f90 file. There is a rule/check that no global variables are used inside inlined kernels but this is just checking the code and not the declarations kinds. I could:
this will require updating a few LFRic kernel code. @rupertford @arporter @TeranIvy what do you think? |
I think we should allow/make an exception for kind parameters. In #924 I copy any imports over to the call site, even if they are in module scope. |
Ok, I will copy to psy the symbols used in the kind parameter. |
(towards #1823) Fix LFRic ModuleInline issues with repeated kernels
(towards #1823) refactor KernelModuleInlineTrans
Remaining issues after merging #1968 |
I updated the issue title and description with the current inlining stats for gungho_model LFRic miniapp |
In my work on #2716, I have (belatedly) realised that the |
Updated March 2024, the current stats are:
Inline transformations successful 502
Inline transformations failed 139:
Inline MATMUL intrinsic successful 64
Inline MATMUL intrinsic failed 73
The text was updated successfully, but these errors were encountered: