E3SM-Project / E3SM-Project/HOMMEXX

On CUDA, check that a team policy won't throw due to team_size too large exception

Open
#293 1 comment 0 reactions 0 assignees View on GitHub
feature request Infrastructure
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.