Skip to content
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

Remove restriction on CUDA that amr.blocking_factor be a multiple of 8 #1049

Merged
merged 3 commits into from
Jun 21, 2020

Conversation

maxpkatz
Copy link
Member

PR summary

Though using a blocking factor >= 8 is recommended for performance reasons, it was previously required due to correctness reasons because of the use of an AMReX Fortran function, amrex_filccn. As noted in #1048, this function is no longer required due to recent changes in Castro (problems overriding bc_fill_nd.F90 or bc_ext_fill_nd.F90 do not need to provide an initial fill of the ghost zone data before implementing their specific boundary conditions; this is now done for them). Calling this function may now result in race conditions and correctness issues in the CUDA build, so it should be removed from any problem setups.

PR checklist

  • test suite needs to be run on this PR
  • this PR will change answers in the test suite to more than roundoff level
  • all newly-added functions have docstrings as per the coding conventions
  • the CHANGES file has been updated, if appropriate
  • if appropriate, this change is described in the docs

Though this is recommended for performance reasons, it was previously required
due to correctness reasons because of the use of an AMReX Fortran function,
amrex_filccn. As noted in AMReX-Astro#1048, this function is no longer required due to
recent changes in Castro (problems overriding bc_fill_nd.F90 or bc_ext_fill_nd.F90
do not need to provide an initial fill of the ghost zone data before implementing
their specific boundary conditions; this is now done for you). Calling this function
may now result in race conditions and correctness issues in the CUDA build, so it
should be removed from any problem setups. (AMReX-Astro#1049)
@maxpkatz maxpkatz marked this pull request as ready for review June 21, 2020 18:10
@zingale zingale merged commit f88234a into AMReX-Astro:development Jun 21, 2020
@maxpkatz maxpkatz deleted the rm_bc_launch_config branch July 7, 2020 04:57
@maxpkatz maxpkatz mentioned this pull request Oct 30, 2020
5 tasks
zingale pushed a commit that referenced this pull request Oct 30, 2020
We had rules in the build system that capped the number of registers per thread used in the CUDA build for the boundary condition routines. This allowed us to be consistent with similar logic I had inserted in AMReX in the Fortran filcc. However, we no longer use that boundary condition interface, so the special handling we have in the build system is no longer necessary (#819, #1048, #1049). These CUDA build rules are a holdover from that time and have been obsolete for a while.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants