-
Notifications
You must be signed in to change notification settings - Fork 1
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
Add finer control field methods to read and write halos from accelerated devices #56
Conversation
… function interfaces
e0ae84b
to
5ff3bd1
Compare
5ff3bd1
to
d3b073d
Compare
…erated computations
@arporter This is ready for review. It prepares dl_esm_inf to expose more information about the device reads and writes in order to make the MPI+device computation more efficient (and correct!). I have already use it in manual PSycloneBench and PSyclone to prove that it provides correct results. I will clean up and submit those PR next. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work Sergi, I particularly like the new test. It works out of the box for me.
Just a few very minor things to tidy up.
module virtual_device | ||
use field_mod | ||
use kind_params_mod, only: go_wp | ||
use iso_c_binding |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please could you add an ONLY clause to this import to make it easier to follow the code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not quite :-) I meant changing this to something like, use iso_c_binding, only: c_loc, etc. etc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh, I think I must have replied thinking it was the previous comment, I did not address this suggestion the first time.
Now its done
@arporter I made the suggested changes. This is ready for another look. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Almost! Just the one outstanding comment to deal with.
module virtual_device | ||
use field_mod | ||
use kind_params_mod, only: go_wp | ||
use iso_c_binding |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not quite :-) I meant changing this to something like, use iso_c_binding, only: c_loc, etc. etc.
@arporter Ready again, I missed the comment the last time. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All requested changes have been made. New test still compiles and runs OK.
Closes #53 by adding parameters to the read_from/write_to_device methods. The halos in the generic exchange are now passed using this finer-grain data selection.
Also:
type(c_ptr)
instead ofinteger(c_intptr_t)
. The reason is that the later is exclusive to how OpenCL works (and causes some compiler issues). The c_ptr is more generic and fits better with SYCL and Kokkos.