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

WIP: Refactor serac to support RAJA #987

Draft
wants to merge 7 commits into
base: develop
Choose a base branch
from

Conversation

johnbowen42
Copy link
Contributor

@johnbowen42 johnbowen42 commented Aug 22, 2023

This PR enables CUDA execution via RAJA, as well as compilation of GPU kernels with NVCC. Several important restrictions imposed by nvcc that this PR works around are
(1) Multiple variadic template parameters in the enclosing function of a generic lambda
(2) Using [=] to capture local variables in a lambda declaration doesn't work with if the enclosing function has a variadic template parameter
(3) Fully generic lambdas (where both arguments and return type are deduced with auto)

Some template programming workarounds were required to expand the multiple template parameter restriction of nvcc, but this is currently passing some very basic unit tests ported from CPU.

@johnbowen42 johnbowen42 force-pushed the feature/bowen/migrate-to-raja branch 4 times, most recently from bf792e8 to f7de220 Compare August 22, 2023 20:48
@codecov-commenter
Copy link

codecov-commenter commented Aug 23, 2023

Codecov Report

Merging #987 (26cf13c) into develop (b10a5fb) will decrease coverage by 0.17%.
Report is 43 commits behind head on develop.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop     #987      +/-   ##
===========================================
- Coverage    89.35%   89.19%   -0.17%     
===========================================
  Files          138      138              
  Lines        10722    10830     +108     
===========================================
+ Hits          9581     9660      +79     
- Misses        1141     1170      +29     
Files Changed Coverage Δ
...ac/numerics/functional/domain_integral_kernels.hpp 100.00% <100.00%> (ø)
src/serac/physics/heat_transfer.hpp 86.42% <100.00%> (+0.12%) ⬆️

... and 3 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

📢 Have feedback on the report? Share it here.

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