-
Notifications
You must be signed in to change notification settings - Fork 9
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
Fix Kokkos Memory Pool when using Shared Memory Spaces #67
Conversation
@matthew-mccall Running With this branch (e830e7e) the deltawing adapt '500k' case (see https://github.com/SCOREC/omega_h/wiki/Building-on-NERSC-Perlmutter for run instructions) with the cuda memory space and the mempool enabled in 6.3346 seconds. With the Kokkos this branch (e830e7e) test failuresAll tests except the
Running it multiple times indicates there is non-deterministic behavior:
scorec-v10.8.2 test failures
These tests all fail with
build detailsUsing gcc 11.2 and cuda 11.7 via the following modules:
kokkos 4.1.00 cmake configure command
omegah cmake configure command
slurm interactive allocation command
|
With CUDA UVM all tests are passing on a workstation with a Nvidia 2080, gcc 10.1.0, and cuda 11.4. More debugging/testing will be needed to resolve the failures in |
This pull request fixes an issue that causes a segmentation fault when using the memory pool for the Kokkos backend. Specifically,
kokkos_malloc
andkokkos_free
normally allocate/free from the default memory space unless that memory space isSharedSpace
. As such,SharedSpace
must be explicitly passed as a template parameter tokokkos_malloc
andkokkos_free
when using shared memory spaces.While this rectifies the problem for most tests,
run_unit_mesh
seems to fail (for a different reason this time). It appears some fencing needs to be done afterKokkos::parallel_for
since lack of which caused an error to be thrown later in the test.