23 template<
class Tkey,
class Tval>
25 sycl::queue &q, sycl::buffer<Tkey> &buf_key, sycl::buffer<Tval> &buf_values,
u32 len) {
28 shamalgs::algorithm::details::sort_by_key_bitonic_fallback(q, buf_key, buf_values, len);
30 shamalgs::algorithm::details::sort_by_key_bitonic_updated<Tkey, Tval, 16>(
31 q, buf_key, buf_values, len);
35 template<
class Tkey,
class Tval>
37 const sham::DeviceScheduler_ptr &sched,
41 shamalgs::algorithm::details::sort_by_key_bitonic_updated_usm<Tkey, Tval, 16>(
42 sched, buf_key, buf_values, len);
46 sycl::queue &q, sycl::buffer<u32> &buf_key, sycl::buffer<u32> &buf_values,
u32 len);
49 sycl::queue &q, sycl::buffer<u64> &buf_key, sycl::buffer<u32> &buf_values,
u32 len);
52 const sham::DeviceScheduler_ptr &sched,
58 const sham::DeviceScheduler_ptr &sched,
64 const sham::DeviceScheduler_ptr &sched,
70 const sham::DeviceScheduler_ptr &sched,
std::uint32_t u32
32 bit unsigned integer
main include file for the shamalgs algorithms
A buffer allocated in USM (Unified Shared Memory)
namespace for primitive algorithm (e.g. sort, scan, reductions, ...)
void sort_by_key_pow2_len(sycl::queue &q, sycl::buffer< Tkey > &buf_key, sycl::buffer< Tval > &buf_values, u32 len)
Sort key-value pairs using sycl::buffers (power-of-2 optimized)