Shamrock 2025.10.0
Astrophysical Code
Loading...
Searching...
No Matches
Namespaces | Functions
numeric.cpp File Reference
#include "shamalgs/details/numeric/numeric.hpp"
#include "shambase/assert.hpp"
#include "shambase/integer.hpp"
#include "shambase/numeric_limits.hpp"
#include "shamalgs/details/algorithm/algorithm.hpp"
#include "shamalgs/details/numeric/exclusiveScanAtomic.hpp"
#include "shamalgs/details/numeric/exclusiveScanGPUGems39.hpp"
#include "shamalgs/details/numeric/numericFallback.hpp"
#include "shamalgs/details/numeric/scanDecoupledLookback.hpp"
#include "shamalgs/details/numeric/streamCompactExclScan.hpp"
#include "shambackends/DeviceBuffer.hpp"
#include "shambackends/kernel_call.hpp"
#include <utility>
+ Include dependency graph for numeric.cpp:

Go to the source code of this file.

Namespaces

namespace  shamalgs
 namespace to contain everything implemented by shamalgs
 
namespace  shamalgs::numeric
 namespace containing the numeric algorithms of shamalgs
 

Functions

template<class T >
sycl::buffer< T > shamalgs::numeric::scan_exclusive (sycl::queue &q, sycl::buffer< T > &buf1, u32 len)
 Computes the exclusive sum of elements in a SYCL buffer.
 
template<class T >
sham::DeviceBuffer< T > shamalgs::numeric::scan_exclusive (sham::DeviceScheduler_ptr sched, sham::DeviceBuffer< T > &buf1, u32 len)
 Compute the exclusive sum of a buffer on the device.
 
template<class T >
sycl::buffer< T > shamalgs::numeric::scan_inclusive (sycl::queue &q, sycl::buffer< T > &buf1, u32 len)
 
template<class T >
void shamalgs::numeric::scan_exclusive_in_place (sycl::queue &q, sycl::buffer< T > &buf, u32 len)
 
template<class T >
void shamalgs::numeric::scan_inclusive_in_place (sycl::queue &q, sycl::buffer< T > &buf, u32 len)
 
template sycl::buffer< u32shamalgs::numeric::scan_exclusive (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len)
 
template sham::DeviceBuffer< u32shamalgs::numeric::scan_exclusive (sham::DeviceScheduler_ptr sched, sham::DeviceBuffer< u32 > &buf1, u32 len)
 
template sycl::buffer< u32shamalgs::numeric::scan_inclusive (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len)
 
template void shamalgs::numeric::scan_exclusive_in_place (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len)
 
template void shamalgs::numeric::scan_inclusive_in_place (sycl::queue &q, sycl::buffer< u32 > &buf1, u32 len)
 
std::tuple< std::optional< sycl::buffer< u32 > >, u32shamalgs::numeric::stream_compact (sycl::queue &q, sycl::buffer< u32 > &buf_flags, u32 len)
 Stream compaction algorithm.
 
sham::DeviceBuffer< u32shamalgs::numeric::stream_compact (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32 > &buf_flags, u32 len)
 Stream compaction algorithm.
 
template<class Tret , class T >
sham::DeviceBuffer< Tret > shamalgs::numeric::device_histogram (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &bin_edges, u64 nbins, const sham::DeviceBuffer< T > &values, u32 len)
 Compute the histogram of values between bin_edges.
 
template sham::DeviceBuffer< u64shamalgs::numeric::device_histogram< u64, f64 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f64 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f64 > &values, u32 len)
 
template sham::DeviceBuffer< u64shamalgs::numeric::device_histogram< u64, f32 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f32 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f32 > &values, u32 len)
 
template sham::DeviceBuffer< u32shamalgs::numeric::device_histogram< u32, f64 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f64 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f64 > &values, u32 len)
 
template sham::DeviceBuffer< u32shamalgs::numeric::device_histogram< u32, f32 > (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f32 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f32 > &values, u32 len)
 
template<class T >
BinnedCompute< T > shamalgs::numeric::binned_init_compute (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &bin_edges, u64 nbins, const sham::DeviceBuffer< T > &values, const sham::DeviceBuffer< T > &keys, u32 len)
 Prepare binned data for per-bin computation.
 
template BinnedCompute< f64shamalgs::numeric::binned_init_compute (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f64 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f64 > &values, const sham::DeviceBuffer< f64 > &keys, u32 len)
 
template BinnedCompute< f32shamalgs::numeric::binned_init_compute (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< f32 > &bin_edges, u64 nbins, const sham::DeviceBuffer< f32 > &values, const sham::DeviceBuffer< f32 > &keys, u32 len)
 

Detailed Description

Author
Timothée David–Cléris (tim.s.nosp@m.hamr.nosp@m.ock@p.nosp@m.roto.nosp@m.n.me)
Yona Lapeyre (yona..nosp@m.lape.nosp@m.yre@e.nosp@m.ns-l.nosp@m.yon.f.nosp@m.r)

Definition in file numeric.cpp.