Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
scan_exclusive_sum_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
26
30#include <string>
31#include <vector>
32
33namespace shamalgs::primitives {
34
74 template<class T>
75 void scan_exclusive_sum_in_place(sham::DeviceBuffer<T> &buf1, u32 len);
76
78 namespace impl {
79
83
87
90
92 void set_impl_scan_exclusive_sum_in_place(const std::string &impl);
93
96 const sham::DeviceScheduler_ptr &dev_sched);
97
98 } // namespace impl
99
100} // namespace shamalgs::primitives
std::uint32_t u32
32 bit unsigned integer
namespace to control implementation behavior
std::vector< std::string > get_default_impl_list_scan_exclusive_sum_in_place()
Get list of available scan_exclusive_sum_in_place implementations.
bool is_impl_set_scan_exclusive_sum_in_place()
Check if an implementation has been selected for scan_exclusive_sum_in_place.
void set_impl_scan_exclusive_sum_in_place(const std::string &impl)
Set the implementation for scan_exclusive_sum_in_place, from a config json string.
void autoselect_impl_scan_exclusive_sum_in_place(const sham::DeviceScheduler_ptr &dev_sched)
Select the default implementation for scan_exclusive_sum_in_place.
std::string get_current_impl_scan_exclusive_sum_in_place()
Get the current implementation for scan_exclusive_sum_in_place.
namespace for primitive algorithm (e.g. sort, scan, reductions, ...)
void scan_exclusive_sum_in_place(sham::DeviceBuffer< T > &buf1, u32 len)
Compute exclusive prefix sum in-place on a device buffer.