E3SM-Project / E3SM-Project/HOMMEXX
On CUDA, check that a team policy won't throw due to team_size too large exception
- Dominant language
- Fortran
- Stars
- 11
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Kokkos asks Cuda to compute the max number of blocks, which is then used to compute the max team_size. If the requested team_size is too large, it throws.
Currently, our simulations never crashed, as long as build type of kokkos and homme match (debug-debug or release-release). However, we should not rely on this being always the case. Hence, upon policy creation, check if policy numbers are ok; if not, keep reducing either vector_length or team_size (depending if threads are preferred) until they are.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating policy creation and the CUDA path that computes the maximum blocks and team_size. Reproduce a request with an oversized team_size under differing build types, then verify that policy creation reduces vector_length or team_size according to the thread preference instead of throwing.
Written by the indexing model from the issue text.
Assessment
- Domain
- hpc
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100