-
Notifications
You must be signed in to change notification settings - Fork 39
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
OpenACC GPU porting #149
Comments
MODIFIED * configure include/version/version.m4 Ymodules/mod_collision_el.F Bugs: - [OpenACC] Tentative to address issue #149 Patch sent by: Davide Sangalli <[email protected]>
Don't know if this can help but YAMBO_FREE gives an error also on Leonardo with nvhpc/23.11 (not for older compilers), it complains about deallocating on the host some data that are stilled present on the GPU. No idea why this arise only with latest compiler versions yet. Which error do you observe with gfortran? The opposite of Regarding YAMBO_FREE_GPU, which is called before YAMBO_FREE, shouldn't the code check if the data is mapped with devxlib before un mapping with devxlib, instead of checking if the data is allocated (on the host, for OpenACC)?
|
Hi Laura, thanks for raising this point. Apparently the issue is somehow recurrent...
basically, for some reasons the devxlib_mapped function fails, FREE_GPU does not deallocate (since it thinks GPU memory is not allocated), and the final deallocate complains |
It is used if However this does not always happen. See my comment here
|
I open a second issue for discussion on OpenACC GPU porting.
Another one is here: #79
Sometimes the code calls a "memory free" before doing allocations
This is done via the macro YAMBO_FREE, where the
deallocate
/devxlib_unmap
calls are protected byif allocated
.Example here in https://github.com/yambo-code/yambo/blob/tech-gpu/src/pol_function/X_irredux.F#L250
This call specifically leads to the following line:
https://github.com/yambo-code/yambo/blob/tech-gpu/src/Ymodules/mod_collision_el.F#L102
!DEV_ACC exit data delete(ggw)
With gfortran and Openacc this leads to an error.
From what I understand, there is no data to be deleted if
ggw
was not allocated. Although here the logic is not super clear to me.What is the opposite of
!DEV_ACC exit data delete(ggw)
? Is it!DEV_ACC enter data create(ggw)
?Why is this not handled via devxlib? Probably because
gww
is a type ?The text was updated successfully, but these errors were encountered: