Phil Miller - NOAA

Results 319 comments of 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`.

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.