Summary:
Currently, only numeric C++ types are supported by the SYCL Sort KT. The C++ standard does not support a 16-bit float type. Extending this support may be useful for certain workloads.
Problem Statement:
The SYCL Sort KT delivers algorithmic advantages over dpl::sort for GPU devices. However, dpl::sort supports sycl::half while the Sort KT does not, giving a functional gap.
Preferred Solution:
This support should be easy to add. Upon first look, the following changes are needed to support it:
- An overload of
__order_preserving_cast for sycl::half in oneapi/dpl/experimental/kt/radix_sort_utils.h.
- Test coverage
Summary:
Currently, only numeric C++ types are supported by the SYCL Sort KT. The C++ standard does not support a 16-bit float type. Extending this support may be useful for certain workloads.
Problem Statement:
The SYCL Sort KT delivers algorithmic advantages over
dpl::sortfor GPU devices. However,dpl::sortsupportssycl::halfwhile the Sort KT does not, giving a functional gap.Preferred Solution:
This support should be easy to add. Upon first look, the following changes are needed to support it:
__order_preserving_castforsycl::halfinoneapi/dpl/experimental/kt/radix_sort_utils.h.