Phil Miller - NOAA
Phil Miller - NOAA
Modified to put/require everything to be in a single `MemorySpace`. This may be touchy if one wants to sort something in UVM or HostPinned space, but have all of the...
ICPC says this: ``` src/Kokkos_RadixSort.hpp(253): error #869: parameter "values" was never referenced View values) { ^ detected during instantiation of "void Test::Impl::test_radix_sort() [with ExecutionSpace=Kokkos::OpenMP]" at line 28 of "/__w/kokkos/kokkos/algorithms/unit_tests/TestSortCommon.hpp" ```...
In terms of other `View` template parameters: * Layout being left or right should be irrelevant, since the input is inherently rank 1. `LayoutStride` from a subview of a higher-rank...
I could maybe support argument Views having various traits, if I work internally with temporaries that are all explicitly `Unmanaged` aliases?
Looks like the CUDA Thrust and `std::sort` implementations of `Kokkos::sort()` pass iterators that would handle `LayoutStride` while oneAPI DPL for SYCL only supports contiguous views of `LayoutLeft` or `LayoutRight`.
Are your column headings reversed?
This looks good to me either way, but I'm not qualified to comment on which way to go with.
Looking ahead, you may want to explicitly add warnings about performance-impacting things `-Wredundant-move`, `-Wpessimizing-move`, and `-Wrange-loop-construct`, separate from their current default inclusion in GCC's `-Wall`
So, the one big question I have in reviewing this is: why the move to releasing epochs per-collection/objgroup/object? Everything else I've marked in comments is pretty minor, and can/should be...
Ok, I'll take a look. That maybe answers my follow-up question of what it means to release an epoch for some object/collection, but not for others.