Thread execution spaces through vector API#630
Conversation
…dexable for indexer.
| std::string &phase_names, Verbosity eospacWarn) { | ||
| using namespace EospacWrapper; | ||
|
|
||
| EOS_INTEGER errorCode = EOS_OK; |
There was a problem hiding this comment.
eliminates an unused variable warning
|
|
||
| template <typename T, | ||
| typename = std::enable_if_t<variadic_utils::contains<T, Ts...>::value>> | ||
| template <typename T, typename EnableIfContained = |
There was a problem hiding this comment.
Naming the SFINAE/concept type produced more useful error messages from the cuda compiler.
There was a problem hiding this comment.
The diffs for the modifiers are a bit hard to read for some reason, but what they're doing is adding Space to each vector call, and then a defaulted version that calls PortsOfCall::Exec::Device().
|
Tests on re-git now passing. But I would like to clean this up a bit further and eliminate more of these redundant overloads. |
adamdempsey90
left a comment
There was a problem hiding this comment.
Lots of boilerplate, so I didn't give it too close of a look
| transform.y.apply(sie_unit_); | ||
| transform.f.apply(inv_temp_unit_); | ||
| t_.TemperatureFromDensityInternalEnergy(rhos, sies, temperatures, scratch, num, | ||
| t_.TemperatureFromDensityInternalEnergy(s, rhos, sies, temperatures, scratch, num, |
There was a problem hiding this comment.
While I think s is a fine name, a more descriptive name like exec_space might be even better
There was a problem hiding this comment.
Do you think that's necessary even though the type is named Space?
Still basically all boilerplate, but significantly reduced by adding more macros a la #629 but for modifier overloads. |
| INFO("Pressure at rho_max: " << at_max << ", Pressure beyond rho_max" | ||
| << beyond_max); | ||
| REQUIRE(at_max == beyond_max); | ||
| REQUIRE(isClose(at_max, beyond_max)); |
There was a problem hiding this comment.
Caused a failure on GPUs on the CI. Not sure why it only showed up now.
|
@adamdempsey90 ping for re-review given the macros I added. |
PR Summary
This MR resolves issue #628 and pulls in lanl/ports-of-call#109 from
ports-of-call. Here I expose the ability to select an execution space in thesingularity-eosvector API:PortsOfCall::Exec::Device()which is (when Kokkos is enabled) an alias to kokkos default execution space.PortsOfCall::Exec::Host()execution space.This MR used generative AI, but agents weren't set loose, so there's no proposed change plan. I made changes by hand and then had the robots copy my changes by example.
I am still getting the CI to pass, but this is ready for review.
PR Checklist
make formatcommand after configuring withcmake.plan_historiesfolder, with a filename the same as the MR number.If preparing for a new release, in addition please check the following: