Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
segmented_sort_in_place.hpp
Go to the documentation of this file.
1// -------------------------------------------------------//
2//
3// SHAMROCK code for hydrodynamics
4// Copyright (c) 2021-2026 Timothée David--Cléris <tim.shamrock@proton.me>
5// SPDX-License-Identifier: CeCILL Free Software License Agreement v2.1
6// Shamrock is licensed under the CeCILL 2.1 License, see LICENSE for more information
7//
8// -------------------------------------------------------//
9
10#pragma once
11
17
21#include <string>
22#include <vector>
23
24namespace shamalgs::primitives {
25
26 template<class T>
27 void segmented_sort_in_place(
28 sham::DeviceBuffer<T> &buf, const sham::DeviceBuffer<u32> &offsets);
29
31 namespace impl {
32
34 std::vector<std::string> get_default_impl_list_segmented_sort_in_place();
35
38
41
43 void set_impl_segmented_sort_in_place(const std::string &impl);
44
46 void autoselect_impl_segmented_sort_in_place(const sham::DeviceScheduler_ptr &dev_sched);
47
48 } // namespace impl
49
50} // namespace shamalgs::primitives
namespace to control implementation behavior
void set_impl_segmented_sort_in_place(const std::string &impl)
Set the implementation for segmented sort in place, from a config json string.
void autoselect_impl_segmented_sort_in_place(const sham::DeviceScheduler_ptr &dev_sched)
Select the default implementation for segmented sort in place.
std::string get_current_impl_segmented_sort_in_place()
Get the current implementation for segmented sort in place, as a config json string.
bool is_impl_set_segmented_sort_in_place()
Check if an implementation has been selected for segmented sort in place.
std::vector< std::string > get_default_impl_list_segmented_sort_in_place()
Get list of available segmented sort in place implementations, as config json strings.
namespace for primitive algorithm (e.g. sort, scan, reductions, ...)