Conduit Device Support#1358
Conversation
| } | ||
| else | ||
| { | ||
| CONDUIT_ERROR("Cannot call forall with an empty policy."); |
There was a problem hiding this comment.
explore if we want to fall back to serial in this case
* Reorganize execution macros to make clangd happy * Move the error checking macro back, as it depends on conduit_execution.hpp itself * Move macro back to where it was previously
/usr/WS2/justin/conduit_builds/develop_06_10_26_CUDA/conduit/src/tests/conduit/execution_test_utils.hpp(336): error: An extended __host__ __device__ lambda cannot be defined inside a generic lambda expression("operator()").
(index_t idx)
^
/usr/WS2/justin/conduit_builds/develop_06_10_26_CUDA/conduit/src/tests/conduit/execution_test_utils.hpp(391): error: An extended __host__ __device__ lambda cannot be defined inside a generic lambda expression("operator()").
(index_t idx)
^
/usr/WS2/justin/conduit_builds/develop_06_10_26_CUDA/conduit/src/tests/conduit/t_conduit_execution.cpp(118): error: The enclosing parent function ("TestBody") for an extended __host__ __device__ lambda cannot have private or protected access within its class
(index_t i)
^
|
* Add initial sort implementation * Add openmp sort + tests * Add comments * Revert test array size * Auto convert predicates to use RAJA equivalents when possible * Fix RAJA for serial and openmp * Address feedback * Add todos * Address feedback * Cleanup * Add more comments
#1629) * Initial implementation * Add missing comments * Remove node-backed tests * Add TODOs to address feedback
|
AI says about Windows CI:
|
|
@cyrush how does MPI play into our work this summer? |
* Initial implementation of node-back tests * Minor tweaks * Address feedback * More fixes
|
Putting these here to reference later, they're extra caliper options for openmp/GPU:
|
|
The device execution model doesn't currently expose a way for the user to globally override the execution policies determined at compile-time (as far as I know anyways). It's unclear to me whether this would be useful beyond benchmarking (maybe for debugging?), but for example, at any level of abstraction above executing our fundamental operations directly (atomics, reducers, etc.) it's currently only possible to ask for host vs device execution. However, the underlying host/device execution policies are automatically set to the best available policy at compile-time. This means that it's currently not possible to benchmark the serial execution policy if conduit was built with RAJA + openmp, since asking for host execution will always use openmp. |
Resolves #1151
See #1614 for ongoing development feature-tracking
TODO fix CI