![]() |
Shamrock 2025.10.0
Astrophysical Code
|
namespace for primitive algorithm (e.g. sort, scan, reductions, ...) More...
Namespaces | |
| namespace | impl |
| namespace to control implementation behavior | |
Classes | |
| class | ImplControl |
Enumerations | |
| enum class | IS_ALL_TRUE_IMPL : u32 { HOST , SUM_REDUCTION } |
| enum class | REDUCTION_IMPL : u32 { FALLBACK } |
| enum class | EXSCAN_IN_PLACE_IMPL : u32 { STD_SCAN } |
Functions | |
| template<class T > | |
| void | append_subset_to (const sham::DeviceBuffer< T > &buf, const sham::DeviceBuffer< u32 > &idxs_buf, u32 nvar, sham::DeviceBuffer< T > &buf_other, u32 start_enque) |
| Appends a subset of elements from one buffer to another. | |
| template<class Tkey > | |
| constexpr void | binary_range_search (const Tkey *__restrict__ key, u32 first, u32 last, const Tkey &value_min, const Tkey &value_max, u32 &inf, u32 &sup) |
| Find the range of indices for which key[inf] <= value_min <= value_max <= key[sup]. | |
| template<class T , class Tbins , class... Targs, class Tfunctor > | |
| sham::DeviceBuffer< T > | compute_histogram (const sham::DeviceScheduler_ptr &dev_sched, const sham::DeviceBuffer< Tbins > &bin_edge_inf, const sham::DeviceBuffer< Tbins > &bin_edge_sup, size_t element_count, Tfunctor &&functor, const sham::DeviceBuffer< Targs > &...input_data) |
| template<class T > | |
| sham::DeviceBuffer< T > | compute_histogram_basic (const sham::DeviceScheduler_ptr &dev_sched, const sham::DeviceBuffer< T > &bin_edge_inf, const sham::DeviceBuffer< T > &bin_edge_sup, const sham::DeviceBuffer< T > &positions) |
| template<class T > | |
| shambase::VecComponent< T > | dot_sum (sham::DeviceBuffer< T > &buf1, u32 start_id, u32 end_id) |
| Compute the sum of dot products of elements in a device buffer with themselves. | |
| template<class T > | |
| shambase::VecComponent< T > | dot_sum (sham::DeviceBuffer< T > &buf1) |
| template<class T > | |
| bool | equals (sycl::queue &q, sycl::buffer< T > &buf1, sycl::buffer< T > &buf2, u32 cnt) |
| Compare elements between two sycl::buffers for equality. | |
| template<class T > | |
| bool | equals (const sham::DeviceScheduler_ptr &dev_sched, sham::DeviceBuffer< T > &buf1, sham::DeviceBuffer< T > &buf2, u32 cnt) |
| Compare elements between two sham::DeviceBuffers for equality. | |
| template<class T > | |
| bool | equals (const sham::DeviceScheduler_ptr &q, sham::DeviceBuffer< T > &buf1, sham::DeviceBuffer< T > &buf2) |
| Compare all elements between two sham::DeviceBuffers for equality. | |
| template<class T > | |
| bool | equals (sycl::queue &q, sycl::buffer< T > &buf1, sycl::buffer< T > &buf2) |
| Compare all elements between two sycl::buffers for equality. | |
| template<class T > | |
| bool | equals_ptr_s (sycl::queue &q, const std::unique_ptr< sycl::buffer< T > > &buf1, const std::unique_ptr< sycl::buffer< T > > &buf2, u32 cnt) |
| Compare elements between two unique_ptr-wrapped sycl::buffers with count. | |
| template<class T > | |
| bool | equals_ptr (sycl::queue &q, const std::unique_ptr< sycl::buffer< T > > &buf1, const std::unique_ptr< sycl::buffer< T > > &buf2) |
| Compare all elements between two unique_ptr-wrapped sycl::buffers. | |
| template<class Tvec , sham::USMKindTarget target> | |
| sham::DeviceBuffer< typename shambase::VectorProperties< Tvec >::component_type, target > | flatten_buffer (const sham::DeviceBuffer< Tvec, target > &buffer) |
| Flatten a buffer of vector type into a buffer of scalar type. | |
| template<class Tvec , sham::USMKindTarget target> | |
| sham::DeviceBuffer< Tvec, target > | unflatten_buffer (const sham::DeviceBuffer< typename shambase::VectorProperties< Tvec >::component_type, target > &buffer) |
| Unflatten a buffer that contains a flattened vector. | |
| sham::DeviceBuffer< u32 > | gen_buffer_index (sham::DeviceScheduler_ptr sched, u32 len) |
| Generates a buffer where buf[i] = i. | |
| void | fill_buffer_index (sham::DeviceBuffer< u32 > &buf, u32 len) |
| Fills a buffer with sequential indices, such that buf[i] = i. | |
| template<class T > | |
| bool | is_all_true (sycl::buffer< T > &buf, u32 cnt) |
| Check if all elements in a sycl::buffer are non-zero. | |
| template<class T > | |
| bool | is_all_true (sham::DeviceBuffer< T > &buf, u32 cnt) |
| Check if all elements in a sham::DeviceBuffer are non-zero. | |
| template<typename Tval > | |
| sham::DeviceBuffer< Tval > | linspace (Tval Rmin, Tval Rmax, u32 N) |
| Create an array of N values between two values. | |
| template<class Tkey > | |
| constexpr u32 | binary_search_lower_bound (const Tkey *__restrict__ key, u32 first, u32 last, const Tkey &value) |
| GPU compatible implementation of std::lower_bound. | |
| template<class T , class Engine = std::mt19937> | |
| T | mock_value (Engine &eng, T min_bound, T max_bound) |
| Generates a random mock value within specified bounds. | |
| template<class T , class Engine = std::mt19937> | |
| T | mock_value (Engine &eng) |
| Generates a random mock value using default bounds. | |
| template<class T > | |
| std::vector< T > | mock_vector (u64 seed, u32 len, T min_bound, T max_bound) |
| Generates a vector of random mock values within specified bounds. | |
| template<class T > | |
| std::vector< T > | mock_vector (u64 seed, u32 len) |
| Generates a vector of random mock values using default bounds. | |
| template<class T > | |
| T | sum (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &buf1, u32 start_id, u32 end_id) |
| Compute the sum of elements in a device buffer within a specified range. | |
| template<class T > | |
| T | min (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &buf1, u32 start_id, u32 end_id) |
| Find the minimum element in a device buffer within a specified range. | |
| template<class T > | |
| T | max (const sham::DeviceScheduler_ptr &sched, const sham::DeviceBuffer< T > &buf1, u32 start_id, u32 end_id) |
| Find the maximum element in a device buffer within a specified range. | |
| template<class T > | |
| void | scan_exclusive_sum_in_place (sham::DeviceBuffer< T > &buf1, u32 len) |
| Compute exclusive prefix sum in-place on a device buffer. | |
| template<class T > | |
| void | segmented_sort_in_place (sham::DeviceBuffer< T > &buf, const sham::DeviceBuffer< u32 > &offsets) |
| template<class Tkey , class Tval > | |
| 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) | |
| template<class Tkey , class Tval > | |
| void | sort_by_key_pow2_len (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< Tkey > &buf_key, sham::DeviceBuffer< Tval > &buf_values, u32 len) |
| Sort key-value pairs using USM buffers (power-of-2 optimized) | |
| template<class Tkey , class Tval > | |
| void | sort_by_key (sycl::queue &q, sycl::buffer< Tkey > &buf_key, sycl::buffer< Tval > &buf_values, u32 len) |
| Sort key-value pairs using sycl::buffers. | |
| template<class Tkey , class Tval > | |
| void | sort_by_key (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< Tkey > &buf_key, sham::DeviceBuffer< Tval > &buf_values, u32 len) |
| Sort key-value pairs using USM buffers. | |
| template<class Tkey > | |
| constexpr u32 | binary_search_upper_bound (const Tkey *__restrict__ key, u32 first, u32 last, const Tkey &value) |
| GPU compatible implementation of std::upper_bound. | |
| IS_ALL_TRUE_IMPL | is_all_true_impl_from_params (const std::string &impl) |
| shamalgs::impl_param | is_all_true_impl_to_params (const IS_ALL_TRUE_IMPL &impl) |
| template bool | is_all_true (sham::DeviceBuffer< u8 > &buf, u32 cnt) |
| template<> | |
| u8 | mock_value (std::mt19937 &eng, u8 min_bound, u8 max_bound) |
| template<> | |
| u16 | mock_value (std::mt19937 &eng, u16 min_bound, u16 max_bound) |
| template<> | |
| u32 | mock_value (std::mt19937 &eng, u32 min_bound, u32 max_bound) |
| template<> | |
| u64 | mock_value (std::mt19937 &eng, u64 min_bound, u64 max_bound) |
| template<> | |
| i8 | mock_value (std::mt19937 &eng, i8 min_bound, i8 max_bound) |
| template<> | |
| i16 | mock_value (std::mt19937 &eng, i16 min_bound, i16 max_bound) |
| template<> | |
| i32 | mock_value (std::mt19937 &eng, i32 min_bound, i32 max_bound) |
| template<> | |
| i64 | mock_value (std::mt19937 &eng, i64 min_bound, i64 max_bound) |
| template<> | |
| f32 | mock_value (std::mt19937 &eng, f32 min_bound, f32 max_bound) |
| template<> | |
| f64 | mock_value (std::mt19937 &eng, f64 min_bound, f64 max_bound) |
| template<> | |
| sycl::vec< u64, 2 > | mock_value (std::mt19937 &eng, sycl::vec< u64, 2 > min_bound, sycl::vec< u64, 2 > max_bound) |
| template<> | |
| sycl::vec< u64, 3 > | mock_value (std::mt19937 &eng, sycl::vec< u64, 3 > min_bound, sycl::vec< u64, 3 > max_bound) |
| template<> | |
| sycl::vec< u64, 4 > | mock_value (std::mt19937 &eng, sycl::vec< u64, 4 > min_bound, sycl::vec< u64, 4 > max_bound) |
| template<> | |
| sycl::vec< u64, 8 > | mock_value (std::mt19937 &eng, sycl::vec< u64, 8 > min_bound, sycl::vec< u64, 8 > max_bound) |
| template<> | |
| sycl::vec< u64, 16 > | mock_value (std::mt19937 &eng, sycl::vec< u64, 16 > min_bound, sycl::vec< u64, 16 > max_bound) |
| template<> | |
| sycl::vec< u32, 2 > | mock_value (std::mt19937 &eng, sycl::vec< u32, 2 > min_bound, sycl::vec< u32, 2 > max_bound) |
| template<> | |
| sycl::vec< u32, 3 > | mock_value (std::mt19937 &eng, sycl::vec< u32, 3 > min_bound, sycl::vec< u32, 3 > max_bound) |
| template<> | |
| sycl::vec< u32, 4 > | mock_value (std::mt19937 &eng, sycl::vec< u32, 4 > min_bound, sycl::vec< u32, 4 > max_bound) |
| template<> | |
| sycl::vec< u32, 8 > | mock_value (std::mt19937 &eng, sycl::vec< u32, 8 > min_bound, sycl::vec< u32, 8 > max_bound) |
| template<> | |
| sycl::vec< u32, 16 > | mock_value (std::mt19937 &eng, sycl::vec< u32, 16 > min_bound, sycl::vec< u32, 16 > max_bound) |
| template<> | |
| sycl::vec< u16, 2 > | mock_value (std::mt19937 &eng, sycl::vec< u16, 2 > min_bound, sycl::vec< u16, 2 > max_bound) |
| template<> | |
| sycl::vec< u16, 3 > | mock_value (std::mt19937 &eng, sycl::vec< u16, 3 > min_bound, sycl::vec< u16, 3 > max_bound) |
| template<> | |
| sycl::vec< u16, 4 > | mock_value (std::mt19937 &eng, sycl::vec< u16, 4 > min_bound, sycl::vec< u16, 4 > max_bound) |
| template<> | |
| sycl::vec< u16, 8 > | mock_value (std::mt19937 &eng, sycl::vec< u16, 8 > min_bound, sycl::vec< u16, 8 > max_bound) |
| template<> | |
| sycl::vec< u16, 16 > | mock_value (std::mt19937 &eng, sycl::vec< u16, 16 > min_bound, sycl::vec< u16, 16 > max_bound) |
| template<> | |
| sycl::vec< u8, 2 > | mock_value (std::mt19937 &eng, sycl::vec< u8, 2 > min_bound, sycl::vec< u8, 2 > max_bound) |
| template<> | |
| sycl::vec< u8, 3 > | mock_value (std::mt19937 &eng, sycl::vec< u8, 3 > min_bound, sycl::vec< u8, 3 > max_bound) |
| template<> | |
| sycl::vec< u8, 4 > | mock_value (std::mt19937 &eng, sycl::vec< u8, 4 > min_bound, sycl::vec< u8, 4 > max_bound) |
| template<> | |
| sycl::vec< u8, 8 > | mock_value (std::mt19937 &eng, sycl::vec< u8, 8 > min_bound, sycl::vec< u8, 8 > max_bound) |
| template<> | |
| sycl::vec< u8, 16 > | mock_value (std::mt19937 &eng, sycl::vec< u8, 16 > min_bound, sycl::vec< u8, 16 > max_bound) |
| template<> | |
| sycl::vec< i64, 2 > | mock_value (std::mt19937 &eng, sycl::vec< i64, 2 > min_bound, sycl::vec< i64, 2 > max_bound) |
| template<> | |
| sycl::vec< i64, 3 > | mock_value (std::mt19937 &eng, sycl::vec< i64, 3 > min_bound, sycl::vec< i64, 3 > max_bound) |
| template<> | |
| sycl::vec< i64, 4 > | mock_value (std::mt19937 &eng, sycl::vec< i64, 4 > min_bound, sycl::vec< i64, 4 > max_bound) |
| template<> | |
| sycl::vec< i64, 8 > | mock_value (std::mt19937 &eng, sycl::vec< i64, 8 > min_bound, sycl::vec< i64, 8 > max_bound) |
| template<> | |
| sycl::vec< i64, 16 > | mock_value (std::mt19937 &eng, sycl::vec< i64, 16 > min_bound, sycl::vec< i64, 16 > max_bound) |
| template<> | |
| sycl::vec< i32, 2 > | mock_value (std::mt19937 &eng, sycl::vec< i32, 2 > min_bound, sycl::vec< i32, 2 > max_bound) |
| template<> | |
| sycl::vec< i32, 3 > | mock_value (std::mt19937 &eng, sycl::vec< i32, 3 > min_bound, sycl::vec< i32, 3 > max_bound) |
| template<> | |
| sycl::vec< i32, 4 > | mock_value (std::mt19937 &eng, sycl::vec< i32, 4 > min_bound, sycl::vec< i32, 4 > max_bound) |
| template<> | |
| sycl::vec< i32, 8 > | mock_value (std::mt19937 &eng, sycl::vec< i32, 8 > min_bound, sycl::vec< i32, 8 > max_bound) |
| template<> | |
| sycl::vec< i32, 16 > | mock_value (std::mt19937 &eng, sycl::vec< i32, 16 > min_bound, sycl::vec< i32, 16 > max_bound) |
| template<> | |
| sycl::vec< i16, 2 > | mock_value (std::mt19937 &eng, sycl::vec< i16, 2 > min_bound, sycl::vec< i16, 2 > max_bound) |
| template<> | |
| sycl::vec< i16, 3 > | mock_value (std::mt19937 &eng, sycl::vec< i16, 3 > min_bound, sycl::vec< i16, 3 > max_bound) |
| template<> | |
| sycl::vec< i16, 4 > | mock_value (std::mt19937 &eng, sycl::vec< i16, 4 > min_bound, sycl::vec< i16, 4 > max_bound) |
| template<> | |
| sycl::vec< i16, 8 > | mock_value (std::mt19937 &eng, sycl::vec< i16, 8 > min_bound, sycl::vec< i16, 8 > max_bound) |
| template<> | |
| sycl::vec< i16, 16 > | mock_value (std::mt19937 &eng, sycl::vec< i16, 16 > min_bound, sycl::vec< i16, 16 > max_bound) |
| template<> | |
| sycl::vec< i8, 2 > | mock_value (std::mt19937 &eng, sycl::vec< i8, 2 > min_bound, sycl::vec< i8, 2 > max_bound) |
| template<> | |
| sycl::vec< i8, 3 > | mock_value (std::mt19937 &eng, sycl::vec< i8, 3 > min_bound, sycl::vec< i8, 3 > max_bound) |
| template<> | |
| sycl::vec< i8, 4 > | mock_value (std::mt19937 &eng, sycl::vec< i8, 4 > min_bound, sycl::vec< i8, 4 > max_bound) |
| template<> | |
| sycl::vec< i8, 8 > | mock_value (std::mt19937 &eng, sycl::vec< i8, 8 > min_bound, sycl::vec< i8, 8 > max_bound) |
| template<> | |
| sycl::vec< i8, 16 > | mock_value (std::mt19937 &eng, sycl::vec< i8, 16 > min_bound, sycl::vec< i8, 16 > max_bound) |
| template<> | |
| sycl::vec< f64, 2 > | mock_value (std::mt19937 &eng, sycl::vec< f64, 2 > min_bound, sycl::vec< f64, 2 > max_bound) |
| template<> | |
| sycl::vec< f64, 3 > | mock_value (std::mt19937 &eng, sycl::vec< f64, 3 > min_bound, sycl::vec< f64, 3 > max_bound) |
| template<> | |
| sycl::vec< f64, 4 > | mock_value (std::mt19937 &eng, sycl::vec< f64, 4 > min_bound, sycl::vec< f64, 4 > max_bound) |
| template<> | |
| sycl::vec< f64, 8 > | mock_value (std::mt19937 &eng, sycl::vec< f64, 8 > min_bound, sycl::vec< f64, 8 > max_bound) |
| template<> | |
| sycl::vec< f64, 16 > | mock_value (std::mt19937 &eng, sycl::vec< f64, 16 > min_bound, sycl::vec< f64, 16 > max_bound) |
| template<> | |
| sycl::vec< f32, 2 > | mock_value (std::mt19937 &eng, sycl::vec< f32, 2 > min_bound, sycl::vec< f32, 2 > max_bound) |
| template<> | |
| sycl::vec< f32, 3 > | mock_value (std::mt19937 &eng, sycl::vec< f32, 3 > min_bound, sycl::vec< f32, 3 > max_bound) |
| template<> | |
| sycl::vec< f32, 4 > | mock_value (std::mt19937 &eng, sycl::vec< f32, 4 > min_bound, sycl::vec< f32, 4 > max_bound) |
| template<> | |
| sycl::vec< f32, 8 > | mock_value (std::mt19937 &eng, sycl::vec< f32, 8 > min_bound, sycl::vec< f32, 8 > max_bound) |
| template<> | |
| sycl::vec< f32, 16 > | mock_value (std::mt19937 &eng, sycl::vec< f32, 16 > min_bound, sycl::vec< f32, 16 > max_bound) |
| template<> | |
| u8 | mock_value (std::mt19937_64 &eng, u8 min_bound, u8 max_bound) |
| template<> | |
| u16 | mock_value (std::mt19937_64 &eng, u16 min_bound, u16 max_bound) |
| template<> | |
| u32 | mock_value (std::mt19937_64 &eng, u32 min_bound, u32 max_bound) |
| template<> | |
| u64 | mock_value (std::mt19937_64 &eng, u64 min_bound, u64 max_bound) |
| template<> | |
| i8 | mock_value (std::mt19937_64 &eng, i8 min_bound, i8 max_bound) |
| template<> | |
| i16 | mock_value (std::mt19937_64 &eng, i16 min_bound, i16 max_bound) |
| template<> | |
| i32 | mock_value (std::mt19937_64 &eng, i32 min_bound, i32 max_bound) |
| template<> | |
| i64 | mock_value (std::mt19937_64 &eng, i64 min_bound, i64 max_bound) |
| template<> | |
| f32 | mock_value (std::mt19937_64 &eng, f32 min_bound, f32 max_bound) |
| template<> | |
| f64 | mock_value (std::mt19937_64 &eng, f64 min_bound, f64 max_bound) |
| template<> | |
| sycl::vec< u64, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< u64, 2 > min_bound, sycl::vec< u64, 2 > max_bound) |
| template<> | |
| sycl::vec< u64, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< u64, 3 > min_bound, sycl::vec< u64, 3 > max_bound) |
| template<> | |
| sycl::vec< u64, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< u64, 4 > min_bound, sycl::vec< u64, 4 > max_bound) |
| template<> | |
| sycl::vec< u64, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< u64, 8 > min_bound, sycl::vec< u64, 8 > max_bound) |
| template<> | |
| sycl::vec< u64, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< u64, 16 > min_bound, sycl::vec< u64, 16 > max_bound) |
| template<> | |
| sycl::vec< u32, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< u32, 2 > min_bound, sycl::vec< u32, 2 > max_bound) |
| template<> | |
| sycl::vec< u32, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< u32, 3 > min_bound, sycl::vec< u32, 3 > max_bound) |
| template<> | |
| sycl::vec< u32, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< u32, 4 > min_bound, sycl::vec< u32, 4 > max_bound) |
| template<> | |
| sycl::vec< u32, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< u32, 8 > min_bound, sycl::vec< u32, 8 > max_bound) |
| template<> | |
| sycl::vec< u32, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< u32, 16 > min_bound, sycl::vec< u32, 16 > max_bound) |
| template<> | |
| sycl::vec< u16, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< u16, 2 > min_bound, sycl::vec< u16, 2 > max_bound) |
| template<> | |
| sycl::vec< u16, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< u16, 3 > min_bound, sycl::vec< u16, 3 > max_bound) |
| template<> | |
| sycl::vec< u16, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< u16, 4 > min_bound, sycl::vec< u16, 4 > max_bound) |
| template<> | |
| sycl::vec< u16, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< u16, 8 > min_bound, sycl::vec< u16, 8 > max_bound) |
| template<> | |
| sycl::vec< u16, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< u16, 16 > min_bound, sycl::vec< u16, 16 > max_bound) |
| template<> | |
| sycl::vec< u8, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< u8, 2 > min_bound, sycl::vec< u8, 2 > max_bound) |
| template<> | |
| sycl::vec< u8, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< u8, 3 > min_bound, sycl::vec< u8, 3 > max_bound) |
| template<> | |
| sycl::vec< u8, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< u8, 4 > min_bound, sycl::vec< u8, 4 > max_bound) |
| template<> | |
| sycl::vec< u8, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< u8, 8 > min_bound, sycl::vec< u8, 8 > max_bound) |
| template<> | |
| sycl::vec< u8, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< u8, 16 > min_bound, sycl::vec< u8, 16 > max_bound) |
| template<> | |
| sycl::vec< i64, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< i64, 2 > min_bound, sycl::vec< i64, 2 > max_bound) |
| template<> | |
| sycl::vec< i64, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< i64, 3 > min_bound, sycl::vec< i64, 3 > max_bound) |
| template<> | |
| sycl::vec< i64, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< i64, 4 > min_bound, sycl::vec< i64, 4 > max_bound) |
| template<> | |
| sycl::vec< i64, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< i64, 8 > min_bound, sycl::vec< i64, 8 > max_bound) |
| template<> | |
| sycl::vec< i64, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< i64, 16 > min_bound, sycl::vec< i64, 16 > max_bound) |
| template<> | |
| sycl::vec< i32, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< i32, 2 > min_bound, sycl::vec< i32, 2 > max_bound) |
| template<> | |
| sycl::vec< i32, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< i32, 3 > min_bound, sycl::vec< i32, 3 > max_bound) |
| template<> | |
| sycl::vec< i32, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< i32, 4 > min_bound, sycl::vec< i32, 4 > max_bound) |
| template<> | |
| sycl::vec< i32, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< i32, 8 > min_bound, sycl::vec< i32, 8 > max_bound) |
| template<> | |
| sycl::vec< i32, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< i32, 16 > min_bound, sycl::vec< i32, 16 > max_bound) |
| template<> | |
| sycl::vec< i16, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< i16, 2 > min_bound, sycl::vec< i16, 2 > max_bound) |
| template<> | |
| sycl::vec< i16, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< i16, 3 > min_bound, sycl::vec< i16, 3 > max_bound) |
| template<> | |
| sycl::vec< i16, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< i16, 4 > min_bound, sycl::vec< i16, 4 > max_bound) |
| template<> | |
| sycl::vec< i16, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< i16, 8 > min_bound, sycl::vec< i16, 8 > max_bound) |
| template<> | |
| sycl::vec< i16, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< i16, 16 > min_bound, sycl::vec< i16, 16 > max_bound) |
| template<> | |
| sycl::vec< i8, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< i8, 2 > min_bound, sycl::vec< i8, 2 > max_bound) |
| template<> | |
| sycl::vec< i8, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< i8, 3 > min_bound, sycl::vec< i8, 3 > max_bound) |
| template<> | |
| sycl::vec< i8, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< i8, 4 > min_bound, sycl::vec< i8, 4 > max_bound) |
| template<> | |
| sycl::vec< i8, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< i8, 8 > min_bound, sycl::vec< i8, 8 > max_bound) |
| template<> | |
| sycl::vec< i8, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< i8, 16 > min_bound, sycl::vec< i8, 16 > max_bound) |
| template<> | |
| sycl::vec< f64, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< f64, 2 > min_bound, sycl::vec< f64, 2 > max_bound) |
| template<> | |
| sycl::vec< f64, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< f64, 3 > min_bound, sycl::vec< f64, 3 > max_bound) |
| template<> | |
| sycl::vec< f64, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< f64, 4 > min_bound, sycl::vec< f64, 4 > max_bound) |
| template<> | |
| sycl::vec< f64, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< f64, 8 > min_bound, sycl::vec< f64, 8 > max_bound) |
| template<> | |
| sycl::vec< f64, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< f64, 16 > min_bound, sycl::vec< f64, 16 > max_bound) |
| template<> | |
| sycl::vec< f32, 2 > | mock_value (std::mt19937_64 &eng, sycl::vec< f32, 2 > min_bound, sycl::vec< f32, 2 > max_bound) |
| template<> | |
| sycl::vec< f32, 3 > | mock_value (std::mt19937_64 &eng, sycl::vec< f32, 3 > min_bound, sycl::vec< f32, 3 > max_bound) |
| template<> | |
| sycl::vec< f32, 4 > | mock_value (std::mt19937_64 &eng, sycl::vec< f32, 4 > min_bound, sycl::vec< f32, 4 > max_bound) |
| template<> | |
| sycl::vec< f32, 8 > | mock_value (std::mt19937_64 &eng, sycl::vec< f32, 8 > min_bound, sycl::vec< f32, 8 > max_bound) |
| template<> | |
| sycl::vec< f32, 16 > | mock_value (std::mt19937_64 &eng, sycl::vec< f32, 16 > min_bound, sycl::vec< f32, 16 > max_bound) |
| REDUCTION_IMPL | get_default_reduction_impl () |
| REDUCTION_IMPL | reduction_impl_from_params (const std::string &impl) |
| shamalgs::impl_param | reduction_impl_to_params (const REDUCTION_IMPL &impl) |
| EXSCAN_IN_PLACE_IMPL | get_default_scan_exclusive_sum_in_place_impl () |
| EXSCAN_IN_PLACE_IMPL | scan_exclusive_sum_in_place_impl_from_params (const std::string &impl) |
| shamalgs::impl_param | scan_exclusive_sum_in_place_impl_to_params (const EXSCAN_IN_PLACE_IMPL &impl) |
| template void | scan_exclusive_sum_in_place< u32 > (sham::DeviceBuffer< u32 > &buf1, u32 len) |
| template<class T , class Comp > | |
| void | internal_segmented_sort_in_place (sham::DeviceBuffer< T > &buf, const sham::DeviceBuffer< u32 > &offsets, Comp &&comp) |
| template<> | |
| void | segmented_sort_in_place< u32_2 > (sham::DeviceBuffer< u32_2 > &buf, const sham::DeviceBuffer< u32 > &offsets) |
| template<> | |
| void | segmented_sort_in_place< u32 > (sham::DeviceBuffer< u32 > &buf, const sham::DeviceBuffer< u32 > &offsets) |
| template void | sort_by_key_pow2_len (sycl::queue &q, sycl::buffer< u32 > &buf_key, sycl::buffer< u32 > &buf_values, u32 len) |
| template void | sort_by_key_pow2_len (sycl::queue &q, sycl::buffer< u64 > &buf_key, sycl::buffer< u32 > &buf_values, u32 len) |
| template void | sort_by_key_pow2_len (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u32 > &buf_key, sham::DeviceBuffer< u32 > &buf_values, u32 len) |
| template void | sort_by_key_pow2_len (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< u64 > &buf_key, sham::DeviceBuffer< u32 > &buf_values, u32 len) |
| template void | sort_by_key_pow2_len (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f64 > &buf_key, sham::DeviceBuffer< f64 > &buf_values, u32 len) |
| template void | sort_by_key_pow2_len (const sham::DeviceScheduler_ptr &sched, sham::DeviceBuffer< f32 > &buf_key, sham::DeviceBuffer< f32 > &buf_values, u32 len) |
Variables | |
| IS_ALL_TRUE_IMPL | is_all_true_impl = IS_ALL_TRUE_IMPL::HOST |
| REDUCTION_IMPL | reduction_impl = get_default_reduction_impl() |
| EXSCAN_IN_PLACE_IMPL | scan_exclusive_sum_in_place_impl = get_default_scan_exclusive_sum_in_place_impl() |
namespace for primitive algorithm (e.g. sort, scan, reductions, ...)
|
strong |
Definition at line 107 of file scan_exclusive_sum_in_place.cpp.
|
strong |
Definition at line 69 of file is_all_true.cpp.
|
strong |
Definition at line 31 of file reduction.cpp.
| void shamalgs::primitives::append_subset_to | ( | const sham::DeviceBuffer< T > & | buf, |
| const sham::DeviceBuffer< u32 > & | idxs_buf, | ||
| u32 | nvar, | ||
| sham::DeviceBuffer< T > & | buf_other, | ||
| u32 | start_enque | ||
| ) |
Appends a subset of elements from one buffer to another.
The elements to append are specified by indices in idxs_buf. The source buffer buf is treated as an array of objects, each with nvar variables. The elements are appended to buf_other.
| T | The type of data in the buffers. |
| buf | The source buffer. |
| idxs_buf | A buffer of indices specifying which objects to copy from buf. |
| nvar | The number of variables per object. |
| buf_other | The destination buffer to which the subset will be appended. |
| start_enque | The starting index in buf_other where the subset will be appended. |
Definition at line 45 of file append_subset_to.cpp.
Here is the call graph for this function:
|
constexpr |
Find the range of indices for which key[inf] <= value_min <= value_max <= key[sup].
| Tkey | Type of the key |
| key | Array of keys |
| first | First index of the range |
| last | Last index of the range |
| value_min | Lower bound of the range |
| value_max | Upper bound of the range |
| inf | Index of the first element of the range |
| sup | Index of the last element of the range |
Definition at line 59 of file binary_range_search.hpp.
Here is the call graph for this function:
|
constexpr |
GPU compatible implementation of std::lower_bound.
Definition at line 25 of file lower_bound.hpp.
|
constexpr |
GPU compatible implementation of std::upper_bound.
Definition at line 25 of file upper_bound.hpp.
|
inline |
Definition at line 359 of file compute_histogram.hpp.
|
inline |
Definition at line 430 of file compute_histogram.hpp.
|
inline |
Definition at line 45 of file dot_sum.hpp.
| shambase::VecComponent< T > shamalgs::primitives::dot_sum | ( | sham::DeviceBuffer< T > & | buf1, |
| u32 | start_id, | ||
| u32 | end_id | ||
| ) |
Compute the sum of dot products of elements in a device buffer with themselves.
| T | The data type of elements in the buffer (e.g., float, double, int). |
| buf1 | The input buffer containing the elements to sum. |
| start_id | The starting index (inclusive) of the range to sum. |
| end_id | The ending index (exclusive) of the range to sum. |
Example:
Definition at line 26 of file dot_sum.cpp.
Here is the call graph for this function:
|
inline |
Compare elements between two sham::DeviceBuffers for equality.
Performs element-wise comparison between two device buffers to determine if all corresponding elements are equal. The function compares the first cnt elements of each buffer and returns true only if all pairs match. This is the preferred method for USM-based buffer comparisons.
| T | Element type - must support equality comparison |
| dev_sched | Device scheduler pointer for execution context |
| buf1 | First device buffer to compare |
| buf2 | Second device buffer to compare |
| cnt | Number of elements to compare from the beginning of each buffer |
| std::invalid_argument | if either buffer is smaller than cnt |
Definition at line 154 of file equals.hpp.
Here is the call graph for this function:
|
inline |
Compare all elements between two sham::DeviceBuffers for equality.
Performs element-wise comparison between two device buffers to determine if all corresponding elements are equal. This function automatically compares all elements if both buffers have the same size, or returns false if sizes differ.
| T | Element type - must support equality comparison |
| q | Device scheduler pointer for execution context |
| buf1 | First device buffer to compare |
| buf2 | Second device buffer to compare |
Definition at line 235 of file equals.hpp.
Here is the call graph for this function:| bool shamalgs::primitives::equals | ( | sycl::queue & | q, |
| sycl::buffer< T > & | buf1, | ||
| sycl::buffer< T > & | buf2 | ||
| ) |
Compare all elements between two sycl::buffers for equality.
Performs element-wise comparison between two buffers to determine if all corresponding elements are equal. This function automatically compares all elements if both buffers have the same size, or returns false if sizes differ.
| T | Element type - must support equality comparison |
| q | sycl::queue for device execution |
| buf1 | First buffer to compare |
| buf2 | Second buffer to compare |
Definition at line 280 of file equals.hpp.
Here is the call graph for this function:| bool shamalgs::primitives::equals | ( | sycl::queue & | q, |
| sycl::buffer< T > & | buf1, | ||
| sycl::buffer< T > & | buf2, | ||
| u32 | cnt | ||
| ) |
Compare elements between two sycl::buffers for equality.
Performs element-wise comparison between two buffers to determine if all corresponding elements are equal. The function compares the first cnt elements of each buffer and returns true only if all pairs match.
| T | Element type - must support equality comparison |
| q | sycl::queue for device execution |
| buf1 | First buffer to compare |
| buf2 | Second buffer to compare |
| cnt | Number of elements to compare from the beginning of each buffer |
| std::invalid_argument | if either buffer is smaller than cnt |
Definition at line 77 of file equals.hpp.
Here is the call graph for this function:| bool shamalgs::primitives::equals_ptr | ( | sycl::queue & | q, |
| const std::unique_ptr< sycl::buffer< T > > & | buf1, | ||
| const std::unique_ptr< sycl::buffer< T > > & | buf2 | ||
| ) |
Compare all elements between two unique_ptr-wrapped sycl::buffers.
Performs element-wise comparison between two unique_ptr-wrapped buffers to determine if all corresponding elements are equal. The function handles null pointer cases and compares all elements if both pointers are valid and buffer sizes match.
| T | Element type - must support equality comparison |
| q | sycl::queue for device execution |
| buf1 | First unique_ptr-wrapped buffer to compare |
| buf2 | Second unique_ptr-wrapped buffer to compare |
Definition at line 386 of file equals.hpp.
Here is the call graph for this function:| bool shamalgs::primitives::equals_ptr_s | ( | sycl::queue & | q, |
| const std::unique_ptr< sycl::buffer< T > > & | buf1, | ||
| const std::unique_ptr< sycl::buffer< T > > & | buf2, | ||
| u32 | cnt | ||
| ) |
Compare elements between two unique_ptr-wrapped sycl::buffers with count.
Performs element-wise comparison between two unique_ptr-wrapped buffers to determine if all corresponding elements are equal. The function handles null pointer cases and compares the first cnt elements if both pointers are valid.
| T | Element type - must support equality comparison |
| q | sycl::queue for device execution |
| buf1 | First unique_ptr-wrapped buffer to compare |
| buf2 | Second unique_ptr-wrapped buffer to compare |
| cnt | Number of elements to compare from the beginning of each buffer |
Definition at line 329 of file equals.hpp.
Here is the call graph for this function:| void shamalgs::primitives::fill_buffer_index | ( | sham::DeviceBuffer< u32 > & | buf, |
| u32 | len | ||
| ) |
Fills a buffer with sequential indices, such that buf[i] = i.
The buffer must have a size of at least len. If len is 0, the function has no effect.
| buf | The buffer to fill. |
| len | The number of elements to fill from the start of the buffer. |
| std::invalid_argument | if buf.get_size() < len. |
Definition at line 23 of file gen_buffer_index.cpp.
Here is the call graph for this function:
|
inline |
Flatten a buffer of vector type into a buffer of scalar type.
The buffer is flattened in row-major order, i.e. the first element of the first vector is stored first, then the second element of the first vector, and so on.
| buffer | The buffer to flatten. |
Definition at line 40 of file flatten.hpp.
Here is the call graph for this function:| sham::DeviceBuffer< u32 > shamalgs::primitives::gen_buffer_index | ( | sham::DeviceScheduler_ptr | sched, |
| u32 | len | ||
| ) |
Generates a buffer where buf[i] = i.
| sched | The scheduler to run on. |
| len | Length of the buffer to generate. |
Definition at line 39 of file gen_buffer_index.cpp.
Here is the call graph for this function:| REDUCTION_IMPL shamalgs::primitives::get_default_reduction_impl | ( | ) |
Definition at line 40 of file reduction.cpp.
| EXSCAN_IN_PLACE_IMPL shamalgs::primitives::get_default_scan_exclusive_sum_in_place_impl | ( | ) |
Definition at line 120 of file scan_exclusive_sum_in_place.cpp.
| void shamalgs::primitives::internal_segmented_sort_in_place | ( | sham::DeviceBuffer< T > & | buf, |
| const sham::DeviceBuffer< u32 > & | offsets, | ||
| Comp && | comp | ||
| ) |
Definition at line 168 of file segmented_sort_in_place.cpp.
| bool shamalgs::primitives::is_all_true | ( | sham::DeviceBuffer< T > & | buf, |
| u32 | cnt | ||
| ) |
Check if all elements in a sham::DeviceBuffer are non-zero.
Performs a boolean reduction operation to determine if every element in the device buffer is non-zero (logically true). The function returns true only if all elements satisfy the condition element != 0.
| T | Element type - must support comparison with zero |
| buf | Device buffer containing the elements to check |
| cnt | Number of elements to check from the beginning of the buffer |
cnt elements of the bufferDefinition at line 109 of file is_all_true.cpp.
Here is the call graph for this function:| bool shamalgs::primitives::is_all_true | ( | sycl::buffer< T > & | buf, |
| u32 | cnt | ||
| ) |
Check if all elements in a sycl::buffer are non-zero.
Performs a boolean reduction operation to determine if every element in the buffer is non-zero (logically true). The function returns true only if all elements satisfy the condition element != 0.
| T | Element type - must support comparison with zero |
| buf | Buffer containing the elements to check |
| cnt | Number of elements to check from the beginning of the buffer |
cnt elements of the bufferDefinition at line 124 of file is_all_true.cpp.
|
inline |
Definition at line 72 of file is_all_true.cpp.
|
inline |
Definition at line 84 of file is_all_true.cpp.
| sham::DeviceBuffer< Tval > shamalgs::primitives::linspace | ( | Tval | Rmin, |
| Tval | Rmax, | ||
| u32 | N | ||
| ) |
Create an array of N values between two values.
| Tval | value type in the sequence (same type as bounds) |
| Rmin | lower bound of the sequence |
| Rmax | upper bound of the sequence |
| N | number of samples to generate |
TODO: move to GPU
Definition at line 37 of file linspace.hpp.
| T shamalgs::primitives::max | ( | const sham::DeviceScheduler_ptr & | sched, |
| const sham::DeviceBuffer< T > & | buf1, | ||
| u32 | start_id, | ||
| u32 | end_id | ||
| ) |
Find the maximum element in a device buffer within a specified range.
This function finds the maximum value among all elements in the buffer between start_id (inclusive) and end_id (exclusive). The computation is performed on the device using the provided scheduler.
| T | The data type of elements in the buffer (e.g., float, double, int). |
| sched | The device scheduler to run on. |
| buf1 | The input buffer containing the elements to search. |
| start_id | The starting index (inclusive) of the range to search. |
| end_id | The ending index (exclusive) of the range to search. |
Example:
values = {5.0, 2.0, 8.0, 1.0, 6.0}, start = 1, end = 4 result = 8.0 (maximum of {2.0, 8.0, 1.0})
Definition at line 155 of file reduction.cpp.
Here is the call graph for this function:| T shamalgs::primitives::min | ( | const sham::DeviceScheduler_ptr & | sched, |
| const sham::DeviceBuffer< T > & | buf1, | ||
| u32 | start_id, | ||
| u32 | end_id | ||
| ) |
Find the minimum element in a device buffer within a specified range.
This function finds the minimum value among all elements in the buffer between start_id (inclusive) and end_id (exclusive). The computation is performed on the device using the provided scheduler.
| T | The data type of elements in the buffer (e.g., float, double, int). |
| sched | The device scheduler to run on. |
| buf1 | The input buffer containing the elements to search. |
| start_id | The starting index (inclusive) of the range to search. |
| end_id | The ending index (exclusive) of the range to search. |
Example:
values = {5.0, 2.0, 8.0, 1.0, 6.0}, start = 1, end = 4 result = 1.0 (minimum of {2.0, 8.0, 1.0})
Definition at line 130 of file reduction.cpp.
Here is the call graph for this function:
|
inline |
Generates a random mock value using default bounds.
This function generates a random value of type T using the default minimum and maximum bounds defined by shambase::VectorProperties<T>. This is a convenience function that automatically determines appropriate bounds based on the type T.
| T | The type of value to generate (supports primitive types and SYCL vectors) |
| eng | The random number generator engine to use |
Definition at line 90 of file mock_value.hpp.
| T shamalgs::primitives::mock_value | ( | Engine & | eng, |
| T | min_bound, | ||
| T | max_bound | ||
| ) |
Generates a random mock value within specified bounds.
This function generates a random value of type T within the range [min_bound, max_bound]. For integer types, the distribution is uniform over the inclusive range. For floating-point types, the distribution is uniform over the range [min_bound, max_bound). For SYCL vectors, each component is generated independently using the same bounds.
| T | The type of value to generate (supports primitive types and SYCL vectors) |
| eng | The random number generator engine to use |
| min_bound | The minimum bound for the generated value |
| max_bound | The maximum bound for the generated value |
| f32 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| f32 | min_bound, | ||
| f32 | max_bound | ||
| ) |
Definition at line 70 of file mock_value.cpp.
| f64 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| f64 | min_bound, | ||
| f64 | max_bound | ||
| ) |
Definition at line 76 of file mock_value.cpp.
| i16 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| i16 | min_bound, | ||
| i16 | max_bound | ||
| ) |
Definition at line 52 of file mock_value.cpp.
| i32 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| i32 | min_bound, | ||
| i32 | max_bound | ||
| ) |
Definition at line 58 of file mock_value.cpp.
| i64 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| i64 | min_bound, | ||
| i64 | max_bound | ||
| ) |
Definition at line 64 of file mock_value.cpp.
Definition at line 46 of file mock_value.cpp.
| sycl::vec< f32, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f32, 16 > | min_bound, | ||
| sycl::vec< f32, 16 > | max_bound | ||
| ) |
Definition at line 162 of file mock_value.cpp.
| sycl::vec< f32, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f32, 2 > | min_bound, | ||
| sycl::vec< f32, 2 > | max_bound | ||
| ) |
Definition at line 162 of file mock_value.cpp.
| sycl::vec< f32, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f32, 3 > | min_bound, | ||
| sycl::vec< f32, 3 > | max_bound | ||
| ) |
Definition at line 162 of file mock_value.cpp.
| sycl::vec< f32, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f32, 4 > | min_bound, | ||
| sycl::vec< f32, 4 > | max_bound | ||
| ) |
Definition at line 162 of file mock_value.cpp.
| sycl::vec< f32, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f32, 8 > | min_bound, | ||
| sycl::vec< f32, 8 > | max_bound | ||
| ) |
Definition at line 162 of file mock_value.cpp.
| sycl::vec< f64, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f64, 16 > | min_bound, | ||
| sycl::vec< f64, 16 > | max_bound | ||
| ) |
Definition at line 161 of file mock_value.cpp.
| sycl::vec< f64, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f64, 2 > | min_bound, | ||
| sycl::vec< f64, 2 > | max_bound | ||
| ) |
Definition at line 161 of file mock_value.cpp.
| sycl::vec< f64, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f64, 3 > | min_bound, | ||
| sycl::vec< f64, 3 > | max_bound | ||
| ) |
Definition at line 161 of file mock_value.cpp.
| sycl::vec< f64, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f64, 4 > | min_bound, | ||
| sycl::vec< f64, 4 > | max_bound | ||
| ) |
Definition at line 161 of file mock_value.cpp.
| sycl::vec< f64, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< f64, 8 > | min_bound, | ||
| sycl::vec< f64, 8 > | max_bound | ||
| ) |
Definition at line 161 of file mock_value.cpp.
| sycl::vec< i16, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i16, 16 > | min_bound, | ||
| sycl::vec< i16, 16 > | max_bound | ||
| ) |
Definition at line 158 of file mock_value.cpp.
| sycl::vec< i16, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i16, 2 > | min_bound, | ||
| sycl::vec< i16, 2 > | max_bound | ||
| ) |
Definition at line 158 of file mock_value.cpp.
| sycl::vec< i16, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i16, 3 > | min_bound, | ||
| sycl::vec< i16, 3 > | max_bound | ||
| ) |
Definition at line 158 of file mock_value.cpp.
| sycl::vec< i16, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i16, 4 > | min_bound, | ||
| sycl::vec< i16, 4 > | max_bound | ||
| ) |
Definition at line 158 of file mock_value.cpp.
| sycl::vec< i16, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i16, 8 > | min_bound, | ||
| sycl::vec< i16, 8 > | max_bound | ||
| ) |
Definition at line 158 of file mock_value.cpp.
| sycl::vec< i32, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i32, 16 > | min_bound, | ||
| sycl::vec< i32, 16 > | max_bound | ||
| ) |
Definition at line 157 of file mock_value.cpp.
| sycl::vec< i32, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i32, 2 > | min_bound, | ||
| sycl::vec< i32, 2 > | max_bound | ||
| ) |
Definition at line 157 of file mock_value.cpp.
| sycl::vec< i32, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i32, 3 > | min_bound, | ||
| sycl::vec< i32, 3 > | max_bound | ||
| ) |
Definition at line 157 of file mock_value.cpp.
| sycl::vec< i32, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i32, 4 > | min_bound, | ||
| sycl::vec< i32, 4 > | max_bound | ||
| ) |
Definition at line 157 of file mock_value.cpp.
| sycl::vec< i32, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i32, 8 > | min_bound, | ||
| sycl::vec< i32, 8 > | max_bound | ||
| ) |
Definition at line 157 of file mock_value.cpp.
| sycl::vec< i64, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i64, 16 > | min_bound, | ||
| sycl::vec< i64, 16 > | max_bound | ||
| ) |
Definition at line 156 of file mock_value.cpp.
| sycl::vec< i64, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i64, 2 > | min_bound, | ||
| sycl::vec< i64, 2 > | max_bound | ||
| ) |
Definition at line 156 of file mock_value.cpp.
| sycl::vec< i64, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i64, 3 > | min_bound, | ||
| sycl::vec< i64, 3 > | max_bound | ||
| ) |
Definition at line 156 of file mock_value.cpp.
| sycl::vec< i64, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i64, 4 > | min_bound, | ||
| sycl::vec< i64, 4 > | max_bound | ||
| ) |
Definition at line 156 of file mock_value.cpp.
| sycl::vec< i64, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i64, 8 > | min_bound, | ||
| sycl::vec< i64, 8 > | max_bound | ||
| ) |
Definition at line 156 of file mock_value.cpp.
| sycl::vec< i8, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i8, 16 > | min_bound, | ||
| sycl::vec< i8, 16 > | max_bound | ||
| ) |
Definition at line 159 of file mock_value.cpp.
| sycl::vec< i8, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i8, 2 > | min_bound, | ||
| sycl::vec< i8, 2 > | max_bound | ||
| ) |
Definition at line 159 of file mock_value.cpp.
| sycl::vec< i8, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i8, 3 > | min_bound, | ||
| sycl::vec< i8, 3 > | max_bound | ||
| ) |
Definition at line 159 of file mock_value.cpp.
| sycl::vec< i8, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i8, 4 > | min_bound, | ||
| sycl::vec< i8, 4 > | max_bound | ||
| ) |
Definition at line 159 of file mock_value.cpp.
| sycl::vec< i8, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< i8, 8 > | min_bound, | ||
| sycl::vec< i8, 8 > | max_bound | ||
| ) |
Definition at line 159 of file mock_value.cpp.
| sycl::vec< u16, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u16, 16 > | min_bound, | ||
| sycl::vec< u16, 16 > | max_bound | ||
| ) |
Definition at line 153 of file mock_value.cpp.
| sycl::vec< u16, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u16, 2 > | min_bound, | ||
| sycl::vec< u16, 2 > | max_bound | ||
| ) |
Definition at line 153 of file mock_value.cpp.
| sycl::vec< u16, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u16, 3 > | min_bound, | ||
| sycl::vec< u16, 3 > | max_bound | ||
| ) |
Definition at line 153 of file mock_value.cpp.
| sycl::vec< u16, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u16, 4 > | min_bound, | ||
| sycl::vec< u16, 4 > | max_bound | ||
| ) |
Definition at line 153 of file mock_value.cpp.
| sycl::vec< u16, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u16, 8 > | min_bound, | ||
| sycl::vec< u16, 8 > | max_bound | ||
| ) |
Definition at line 153 of file mock_value.cpp.
| sycl::vec< u32, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u32, 16 > | min_bound, | ||
| sycl::vec< u32, 16 > | max_bound | ||
| ) |
Definition at line 152 of file mock_value.cpp.
| sycl::vec< u32, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u32, 2 > | min_bound, | ||
| sycl::vec< u32, 2 > | max_bound | ||
| ) |
Definition at line 152 of file mock_value.cpp.
| sycl::vec< u32, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u32, 3 > | min_bound, | ||
| sycl::vec< u32, 3 > | max_bound | ||
| ) |
Definition at line 152 of file mock_value.cpp.
| sycl::vec< u32, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u32, 4 > | min_bound, | ||
| sycl::vec< u32, 4 > | max_bound | ||
| ) |
Definition at line 152 of file mock_value.cpp.
| sycl::vec< u32, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u32, 8 > | min_bound, | ||
| sycl::vec< u32, 8 > | max_bound | ||
| ) |
Definition at line 152 of file mock_value.cpp.
| sycl::vec< u64, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u64, 16 > | min_bound, | ||
| sycl::vec< u64, 16 > | max_bound | ||
| ) |
Definition at line 151 of file mock_value.cpp.
| sycl::vec< u64, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u64, 2 > | min_bound, | ||
| sycl::vec< u64, 2 > | max_bound | ||
| ) |
Definition at line 151 of file mock_value.cpp.
| sycl::vec< u64, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u64, 3 > | min_bound, | ||
| sycl::vec< u64, 3 > | max_bound | ||
| ) |
Definition at line 151 of file mock_value.cpp.
| sycl::vec< u64, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u64, 4 > | min_bound, | ||
| sycl::vec< u64, 4 > | max_bound | ||
| ) |
Definition at line 151 of file mock_value.cpp.
| sycl::vec< u64, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u64, 8 > | min_bound, | ||
| sycl::vec< u64, 8 > | max_bound | ||
| ) |
Definition at line 151 of file mock_value.cpp.
| sycl::vec< u8, 16 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u8, 16 > | min_bound, | ||
| sycl::vec< u8, 16 > | max_bound | ||
| ) |
Definition at line 154 of file mock_value.cpp.
| sycl::vec< u8, 2 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u8, 2 > | min_bound, | ||
| sycl::vec< u8, 2 > | max_bound | ||
| ) |
Definition at line 154 of file mock_value.cpp.
| sycl::vec< u8, 3 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u8, 3 > | min_bound, | ||
| sycl::vec< u8, 3 > | max_bound | ||
| ) |
Definition at line 154 of file mock_value.cpp.
| sycl::vec< u8, 4 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u8, 4 > | min_bound, | ||
| sycl::vec< u8, 4 > | max_bound | ||
| ) |
Definition at line 154 of file mock_value.cpp.
| sycl::vec< u8, 8 > shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| sycl::vec< u8, 8 > | min_bound, | ||
| sycl::vec< u8, 8 > | max_bound | ||
| ) |
Definition at line 154 of file mock_value.cpp.
| u16 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| u16 | min_bound, | ||
| u16 | max_bound | ||
| ) |
Definition at line 28 of file mock_value.cpp.
| u32 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| u32 | min_bound, | ||
| u32 | max_bound | ||
| ) |
Definition at line 34 of file mock_value.cpp.
| u64 shamalgs::primitives::mock_value | ( | std::mt19937 & | eng, |
| u64 | min_bound, | ||
| u64 | max_bound | ||
| ) |
Definition at line 40 of file mock_value.cpp.
Definition at line 22 of file mock_value.cpp.
| f32 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| f32 | min_bound, | ||
| f32 | max_bound | ||
| ) |
Definition at line 222 of file mock_value.cpp.
| f64 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| f64 | min_bound, | ||
| f64 | max_bound | ||
| ) |
Definition at line 228 of file mock_value.cpp.
| i16 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| i16 | min_bound, | ||
| i16 | max_bound | ||
| ) |
Definition at line 204 of file mock_value.cpp.
| i32 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| i32 | min_bound, | ||
| i32 | max_bound | ||
| ) |
Definition at line 210 of file mock_value.cpp.
| i64 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| i64 | min_bound, | ||
| i64 | max_bound | ||
| ) |
Definition at line 216 of file mock_value.cpp.
| i8 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| i8 | min_bound, | ||
| i8 | max_bound | ||
| ) |
Definition at line 198 of file mock_value.cpp.
| sycl::vec< f32, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f32, 16 > | min_bound, | ||
| sycl::vec< f32, 16 > | max_bound | ||
| ) |
Definition at line 314 of file mock_value.cpp.
| sycl::vec< f32, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f32, 2 > | min_bound, | ||
| sycl::vec< f32, 2 > | max_bound | ||
| ) |
Definition at line 314 of file mock_value.cpp.
| sycl::vec< f32, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f32, 3 > | min_bound, | ||
| sycl::vec< f32, 3 > | max_bound | ||
| ) |
Definition at line 314 of file mock_value.cpp.
| sycl::vec< f32, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f32, 4 > | min_bound, | ||
| sycl::vec< f32, 4 > | max_bound | ||
| ) |
Definition at line 314 of file mock_value.cpp.
| sycl::vec< f32, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f32, 8 > | min_bound, | ||
| sycl::vec< f32, 8 > | max_bound | ||
| ) |
Definition at line 314 of file mock_value.cpp.
| sycl::vec< f64, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f64, 16 > | min_bound, | ||
| sycl::vec< f64, 16 > | max_bound | ||
| ) |
Definition at line 313 of file mock_value.cpp.
| sycl::vec< f64, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f64, 2 > | min_bound, | ||
| sycl::vec< f64, 2 > | max_bound | ||
| ) |
Definition at line 313 of file mock_value.cpp.
| sycl::vec< f64, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f64, 3 > | min_bound, | ||
| sycl::vec< f64, 3 > | max_bound | ||
| ) |
Definition at line 313 of file mock_value.cpp.
| sycl::vec< f64, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f64, 4 > | min_bound, | ||
| sycl::vec< f64, 4 > | max_bound | ||
| ) |
Definition at line 313 of file mock_value.cpp.
| sycl::vec< f64, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< f64, 8 > | min_bound, | ||
| sycl::vec< f64, 8 > | max_bound | ||
| ) |
Definition at line 313 of file mock_value.cpp.
| sycl::vec< i16, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i16, 16 > | min_bound, | ||
| sycl::vec< i16, 16 > | max_bound | ||
| ) |
Definition at line 310 of file mock_value.cpp.
| sycl::vec< i16, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i16, 2 > | min_bound, | ||
| sycl::vec< i16, 2 > | max_bound | ||
| ) |
Definition at line 310 of file mock_value.cpp.
| sycl::vec< i16, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i16, 3 > | min_bound, | ||
| sycl::vec< i16, 3 > | max_bound | ||
| ) |
Definition at line 310 of file mock_value.cpp.
| sycl::vec< i16, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i16, 4 > | min_bound, | ||
| sycl::vec< i16, 4 > | max_bound | ||
| ) |
Definition at line 310 of file mock_value.cpp.
| sycl::vec< i16, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i16, 8 > | min_bound, | ||
| sycl::vec< i16, 8 > | max_bound | ||
| ) |
Definition at line 310 of file mock_value.cpp.
| sycl::vec< i32, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i32, 16 > | min_bound, | ||
| sycl::vec< i32, 16 > | max_bound | ||
| ) |
Definition at line 309 of file mock_value.cpp.
| sycl::vec< i32, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i32, 2 > | min_bound, | ||
| sycl::vec< i32, 2 > | max_bound | ||
| ) |
Definition at line 309 of file mock_value.cpp.
| sycl::vec< i32, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i32, 3 > | min_bound, | ||
| sycl::vec< i32, 3 > | max_bound | ||
| ) |
Definition at line 309 of file mock_value.cpp.
| sycl::vec< i32, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i32, 4 > | min_bound, | ||
| sycl::vec< i32, 4 > | max_bound | ||
| ) |
Definition at line 309 of file mock_value.cpp.
| sycl::vec< i32, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i32, 8 > | min_bound, | ||
| sycl::vec< i32, 8 > | max_bound | ||
| ) |
Definition at line 309 of file mock_value.cpp.
| sycl::vec< i64, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i64, 16 > | min_bound, | ||
| sycl::vec< i64, 16 > | max_bound | ||
| ) |
Definition at line 308 of file mock_value.cpp.
| sycl::vec< i64, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i64, 2 > | min_bound, | ||
| sycl::vec< i64, 2 > | max_bound | ||
| ) |
Definition at line 308 of file mock_value.cpp.
| sycl::vec< i64, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i64, 3 > | min_bound, | ||
| sycl::vec< i64, 3 > | max_bound | ||
| ) |
Definition at line 308 of file mock_value.cpp.
| sycl::vec< i64, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i64, 4 > | min_bound, | ||
| sycl::vec< i64, 4 > | max_bound | ||
| ) |
Definition at line 308 of file mock_value.cpp.
| sycl::vec< i64, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i64, 8 > | min_bound, | ||
| sycl::vec< i64, 8 > | max_bound | ||
| ) |
Definition at line 308 of file mock_value.cpp.
| sycl::vec< i8, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i8, 16 > | min_bound, | ||
| sycl::vec< i8, 16 > | max_bound | ||
| ) |
Definition at line 311 of file mock_value.cpp.
| sycl::vec< i8, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i8, 2 > | min_bound, | ||
| sycl::vec< i8, 2 > | max_bound | ||
| ) |
Definition at line 311 of file mock_value.cpp.
| sycl::vec< i8, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i8, 3 > | min_bound, | ||
| sycl::vec< i8, 3 > | max_bound | ||
| ) |
Definition at line 311 of file mock_value.cpp.
| sycl::vec< i8, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i8, 4 > | min_bound, | ||
| sycl::vec< i8, 4 > | max_bound | ||
| ) |
Definition at line 311 of file mock_value.cpp.
| sycl::vec< i8, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< i8, 8 > | min_bound, | ||
| sycl::vec< i8, 8 > | max_bound | ||
| ) |
Definition at line 311 of file mock_value.cpp.
| sycl::vec< u16, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u16, 16 > | min_bound, | ||
| sycl::vec< u16, 16 > | max_bound | ||
| ) |
Definition at line 305 of file mock_value.cpp.
| sycl::vec< u16, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u16, 2 > | min_bound, | ||
| sycl::vec< u16, 2 > | max_bound | ||
| ) |
Definition at line 305 of file mock_value.cpp.
| sycl::vec< u16, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u16, 3 > | min_bound, | ||
| sycl::vec< u16, 3 > | max_bound | ||
| ) |
Definition at line 305 of file mock_value.cpp.
| sycl::vec< u16, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u16, 4 > | min_bound, | ||
| sycl::vec< u16, 4 > | max_bound | ||
| ) |
Definition at line 305 of file mock_value.cpp.
| sycl::vec< u16, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u16, 8 > | min_bound, | ||
| sycl::vec< u16, 8 > | max_bound | ||
| ) |
Definition at line 305 of file mock_value.cpp.
| sycl::vec< u32, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u32, 16 > | min_bound, | ||
| sycl::vec< u32, 16 > | max_bound | ||
| ) |
Definition at line 304 of file mock_value.cpp.
| sycl::vec< u32, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u32, 2 > | min_bound, | ||
| sycl::vec< u32, 2 > | max_bound | ||
| ) |
Definition at line 304 of file mock_value.cpp.
| sycl::vec< u32, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u32, 3 > | min_bound, | ||
| sycl::vec< u32, 3 > | max_bound | ||
| ) |
Definition at line 304 of file mock_value.cpp.
| sycl::vec< u32, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u32, 4 > | min_bound, | ||
| sycl::vec< u32, 4 > | max_bound | ||
| ) |
Definition at line 304 of file mock_value.cpp.
| sycl::vec< u32, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u32, 8 > | min_bound, | ||
| sycl::vec< u32, 8 > | max_bound | ||
| ) |
Definition at line 304 of file mock_value.cpp.
| sycl::vec< u64, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u64, 16 > | min_bound, | ||
| sycl::vec< u64, 16 > | max_bound | ||
| ) |
Definition at line 303 of file mock_value.cpp.
| sycl::vec< u64, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u64, 2 > | min_bound, | ||
| sycl::vec< u64, 2 > | max_bound | ||
| ) |
Definition at line 303 of file mock_value.cpp.
| sycl::vec< u64, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u64, 3 > | min_bound, | ||
| sycl::vec< u64, 3 > | max_bound | ||
| ) |
Definition at line 303 of file mock_value.cpp.
| sycl::vec< u64, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u64, 4 > | min_bound, | ||
| sycl::vec< u64, 4 > | max_bound | ||
| ) |
Definition at line 303 of file mock_value.cpp.
| sycl::vec< u64, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u64, 8 > | min_bound, | ||
| sycl::vec< u64, 8 > | max_bound | ||
| ) |
Definition at line 303 of file mock_value.cpp.
| sycl::vec< u8, 16 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u8, 16 > | min_bound, | ||
| sycl::vec< u8, 16 > | max_bound | ||
| ) |
Definition at line 306 of file mock_value.cpp.
| sycl::vec< u8, 2 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u8, 2 > | min_bound, | ||
| sycl::vec< u8, 2 > | max_bound | ||
| ) |
Definition at line 306 of file mock_value.cpp.
| sycl::vec< u8, 3 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u8, 3 > | min_bound, | ||
| sycl::vec< u8, 3 > | max_bound | ||
| ) |
Definition at line 306 of file mock_value.cpp.
| sycl::vec< u8, 4 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u8, 4 > | min_bound, | ||
| sycl::vec< u8, 4 > | max_bound | ||
| ) |
Definition at line 306 of file mock_value.cpp.
| sycl::vec< u8, 8 > shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| sycl::vec< u8, 8 > | min_bound, | ||
| sycl::vec< u8, 8 > | max_bound | ||
| ) |
Definition at line 306 of file mock_value.cpp.
| u16 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| u16 | min_bound, | ||
| u16 | max_bound | ||
| ) |
Definition at line 180 of file mock_value.cpp.
| u32 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| u32 | min_bound, | ||
| u32 | max_bound | ||
| ) |
Definition at line 186 of file mock_value.cpp.
| u64 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| u64 | min_bound, | ||
| u64 | max_bound | ||
| ) |
Definition at line 192 of file mock_value.cpp.
| u8 shamalgs::primitives::mock_value | ( | std::mt19937_64 & | eng, |
| u8 | min_bound, | ||
| u8 | max_bound | ||
| ) |
Definition at line 174 of file mock_value.cpp.
Generates a vector of random mock values using default bounds.
This function generates a std::vector of random values of type T using the default minimum and maximum bounds defined by shambase::VectorProperties<T>. This is a convenience function that automatically determines appropriate bounds based on the type T. The function uses a deterministic random number generator seeded with the provided seed value.
| T | The type of values to generate (supports primitive types and SYCL vectors) |
| seed | The seed value for the random number generator |
| len | The length of the vector to generate |
Definition at line 100 of file mock_vector.hpp.
Here is the call graph for this function:| std::vector< T > shamalgs::primitives::mock_vector | ( | u64 | seed, |
| u32 | len, | ||
| T | min_bound, | ||
| T | max_bound | ||
| ) |
Generates a vector of random mock values within specified bounds.
This function generates a std::vector of random values of type T within the range [min_bound, max_bound]. Each element in the vector is generated independently using the same bounds. The function uses a deterministic random number generator seeded with the provided seed value, ensuring reproducible results for the same seed.
| T | The type of values to generate (supports primitive types and SYCL vectors) |
| seed | The seed value for the random number generator |
| len | The length of the vector to generate |
| min_bound | The minimum bound for the generated values |
| max_bound | The maximum bound for the generated values |
Definition at line 62 of file mock_vector.hpp.
Here is the call graph for this function:
|
inline |
Definition at line 50 of file reduction.cpp.
|
inline |
Definition at line 68 of file reduction.cpp.
| void shamalgs::primitives::scan_exclusive_sum_in_place | ( | sham::DeviceBuffer< T > & | buf1, |
| u32 | len | ||
| ) |
Compute exclusive prefix sum in-place on a device buffer.
Performs an exclusive scan (prefix sum) operation on the device buffer, modifying it in-place. For each position i, the result contains the sum of all elements from index 0 to i-1. The first element is set to 0 (the identity for addition).
The operation transforms: [a, b, c, d] -> [0, a, a+b, a+b+c]
| T | Element type - must support addition and assignment |
| buf1 | Device buffer to scan in-place (modified by this operation) |
| len | Number of elements to process from the beginning of the buffer |
Definition at line 212 of file scan_exclusive_sum_in_place.cpp.
Here is the call graph for this function:
|
inline |
Definition at line 139 of file scan_exclusive_sum_in_place.cpp.
|
inline |
Definition at line 163 of file scan_exclusive_sum_in_place.cpp.
| void shamalgs::primitives::segmented_sort_in_place< u32 > | ( | sham::DeviceBuffer< u32 > & | buf, |
| const sham::DeviceBuffer< u32 > & | offsets | ||
| ) |
Definition at line 203 of file segmented_sort_in_place.cpp.
| void shamalgs::primitives::segmented_sort_in_place< u32_2 > | ( | sham::DeviceBuffer< u32_2 > & | buf, |
| const sham::DeviceBuffer< u32 > & | offsets | ||
| ) |
Definition at line 194 of file segmented_sort_in_place.cpp.
| void shamalgs::primitives::sort_by_key | ( | const sham::DeviceScheduler_ptr & | sched, |
| sham::DeviceBuffer< Tkey > & | buf_key, | ||
| sham::DeviceBuffer< Tval > & | buf_values, | ||
| u32 | len | ||
| ) |
Sort key-value pairs using USM buffers.
Performs an in-place parallel sort of key-value pairs where the values are reordered according to the sorted order of their corresponding keys.
| Tkey | Key type - must be comparable (supports < operator) |
| Tval | Value type - can be any copyable type |
| sched | sham::DeviceScheduler_ptr for execution |
| buf_key | Device buffer containing the keys to sort by |
| buf_values | Device buffer containing the values to reorder |
| len | Length of both buffers |
| std::invalid_argument | if len is not a power of 2 |
Definition at line 159 of file sort_by_keys.hpp.
Here is the call graph for this function:| void shamalgs::primitives::sort_by_key | ( | sycl::queue & | q, |
| sycl::buffer< Tkey > & | buf_key, | ||
| sycl::buffer< Tval > & | buf_values, | ||
| u32 | len | ||
| ) |
Sort key-value pairs using sycl::buffers.
Performs an in-place parallel sort of key-value pairs where the values are reordered according to the sorted order of their corresponding keys.
| Tkey | Key type - must be comparable (supports < operator) |
| Tval | Value type - can be any copyable type |
| q | sycl::queue for device execution |
| buf_key | Buffer containing the keys to sort by |
| buf_values | Buffer containing the values to reorder |
| len | Length of both buffers |
| std::invalid_argument | if len is not a power of 2 |
Definition at line 123 of file sort_by_keys.hpp.
Here is the call graph for this function:| void shamalgs::primitives::sort_by_key_pow2_len | ( | const sham::DeviceScheduler_ptr & | sched, |
| sham::DeviceBuffer< Tkey > & | buf_key, | ||
| sham::DeviceBuffer< Tval > & | buf_values, | ||
| u32 | len | ||
| ) |
Sort key-value pairs using USM buffers (power-of-2 optimized)
Performs an in-place parallel sort of key-value pairs where the values are reordered according to the sorted order of their corresponding keys.
| Tkey | Key type - must be comparable (supports < operator) |
| Tval | Value type - can be any copyable type |
| sched | sham::DeviceScheduler_ptr for execution |
| buf_key | Device buffer containing the keys to sort by |
| buf_values | Device buffer containing the values to reorder |
| len | Length of both buffers (must be a power of 2) |
Definition at line 36 of file sort_by_keys.cpp.
| void shamalgs::primitives::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)
Performs an in-place parallel sort of key-value pairs where the values are reordered according to the sorted order of their corresponding keys.
| Tkey | Key type - must be comparable (supports < operator) |
| Tval | Value type - can be any copyable type |
| q | sycl::queue for device execution |
| buf_key | Buffer containing the keys to sort by |
| buf_values | Buffer containing the values to reorder |
| len | Length of both buffers (must be a power of 2) |
Definition at line 24 of file sort_by_keys.cpp.
| T shamalgs::primitives::sum | ( | const sham::DeviceScheduler_ptr & | sched, |
| const sham::DeviceBuffer< T > & | buf1, | ||
| u32 | start_id, | ||
| u32 | end_id | ||
| ) |
Compute the sum of elements in a device buffer within a specified range.
This function computes the sum of all elements in the buffer between start_id (inclusive) and end_id (exclusive). The computation is performed on the device using the provided scheduler.
| T | The data type of elements in the buffer (e.g., float, double, int). |
| sched | The device scheduler to run on. |
| buf1 | The input buffer containing the elements to sum. |
| start_id | The starting index (inclusive) of the range to sum. |
| end_id | The ending index (exclusive) of the range to sum. |
Example:
values = {1.0, 2.0, 3.0, 4.0, 5.0}, start = 1, end = 4 result = 9.0 (2.0 + 3.0 + 4.0)
Definition at line 105 of file reduction.cpp.
Here is the call graph for this function:
|
inline |
Unflatten a buffer that contains a flattened vector.
| buffer | The buffer to unflatten |
| std::invalid_argument | if the buffer has a size that is not a multiple of the number of components in the vector. |
| std::runtime_error | if the buffer is not a device buffer. |
Definition at line 116 of file flatten.hpp.
Here is the call graph for this function:| IS_ALL_TRUE_IMPL shamalgs::primitives::is_all_true_impl = IS_ALL_TRUE_IMPL::HOST |
Definition at line 70 of file is_all_true.cpp.
| REDUCTION_IMPL shamalgs::primitives::reduction_impl = get_default_reduction_impl() |
Definition at line 48 of file reduction.cpp.
| EXSCAN_IN_PLACE_IMPL shamalgs::primitives::scan_exclusive_sum_in_place_impl = get_default_scan_exclusive_sum_in_place_impl() |
Definition at line 136 of file scan_exclusive_sum_in_place.cpp.