Skip to content

Commit bfa43a7

Browse files
committed
Use our own DefaultComparator, not use Kokkos impl
1 parent e8c7897 commit bfa43a7

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

common/src/KokkosKernels_Sorting.hpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,21 @@
2424

2525
namespace KokkosKernels {
2626

27+
namespace Impl {
28+
template <typename Value>
29+
struct DefaultComparator {
30+
KOKKOS_INLINE_FUNCTION bool operator()(const Value lhs, const Value rhs) const { return lhs < rhs; }
31+
};
32+
} // namespace Impl
33+
2734
// ----------------------------
2835
// General device-level sorting
2936
// ----------------------------
3037

3138
// Bitonic sort: sorts v according to the comparator object's operator().
3239
// Default comparator is just operator< for v's element type.
3340
template <typename View, typename ExecSpace, typename Ordinal,
34-
typename Comparator = Kokkos::Experimental::Impl::StdAlgoLessThanBinaryPredicate<typename View::value_type>>
41+
typename Comparator = Impl::DefaultComparator<typename View::value_type>>
3542
void bitonicSort(View v, const Comparator& comp = Comparator());
3643

3744
// --------------------------------------------------------
@@ -366,7 +373,7 @@ KOKKOS_INLINE_FUNCTION void SerialRadixSort2(ValueType* values, ValueType* value
366373
// memory references are coalesced Con: O(n log^2(n)) serial time is bad on CPUs
367374
// Good diagram of the algorithm at https://en.wikipedia.org/wiki/Bitonic_sorter
368375
template <typename Ordinal, typename ValueType, typename TeamMember,
369-
typename Comparator = Kokkos::Experimental::Impl::StdAlgoLessThanBinaryPredicate<ValueType>>
376+
typename Comparator = Impl::DefaultComparator<ValueType>>
370377
[[deprecated("Use Kokkos::Experimental::sort_team instead")]] KOKKOS_INLINE_FUNCTION void TeamBitonicSort(
371378
ValueType* values, Ordinal n, const TeamMember mem, const Comparator& comp = Comparator()) {
372379
Kokkos::View<ValueType*, Kokkos::AnonymousSpace> valuesView(values, n);
@@ -375,7 +382,7 @@ template <typename Ordinal, typename ValueType, typename TeamMember,
375382

376383
// Sort "values", while applying the same swaps to "perm"
377384
template <typename Ordinal, typename ValueType, typename PermType, typename TeamMember,
378-
typename Comparator = Kokkos::Experimental::Impl::StdAlgoLessThanBinaryPredicate<ValueType>>
385+
typename Comparator = Impl::DefaultComparator<ValueType>>
379386
[[deprecated("Use Kokkos::Experimental::sort_by_key_team instead")]] KOKKOS_INLINE_FUNCTION void TeamBitonicSort2(
380387
ValueType* values, PermType* perm, Ordinal n, const TeamMember mem, const Comparator& comp = Comparator()) {
381388
Kokkos::View<ValueType*, Kokkos::AnonymousSpace> valuesView(values, n);

0 commit comments

Comments
 (0)