|
| template<class T, class indexer = unsigned int> |
| using | CaloRecGPU::Helpers::CPU_array = SimpleContainer<T, indexer, MemoryContext::CPU, true> |
| | Holds a run-time specified amount of objects of type T in CPU memory.
|
| template<class T, class indexer = unsigned int> |
| using | CaloRecGPU::Helpers::CUDA_array = SimpleContainer<T, indexer, MemoryContext::CUDAGPU, true> |
| | Holds a run-time specified amount of objects of type T in CUDA GPU memory.
|
| template<class T, class indexer = unsigned int> |
| using | CaloRecGPU::Helpers::CUDA_kernel_array = SimpleContainer<T, indexer, MemoryContext::CUDAGPU, false> |
| | Non-owning pointer to an array of T in CUDA GPU memory.
|
| template<class T> |
| using | CaloRecGPU::Helpers::CPU_object = SimpleHolder<T, MemoryContext::CPU, true> |
| | Holds an object of type T in CPU memory.
|
| template<class T> |
| using | CaloRecGPU::Helpers::CUDA_object = SimpleHolder<T, MemoryContext::CUDAGPU, true> |
| | Holds an object of type T in CUDA GPU memory.
|
| template<class T> |
| using | CaloRecGPU::Helpers::CUDA_kernel_object = SimpleHolder<T, MemoryContext::CUDAGPU, false> |
| | Non-owning pointer to an object of type T in CUDA GPU memory.
|
| template<class T> |
| using | CaloRecGPU::Helpers::CUDA_pinned_CPU_object = SimpleHolder<T, MemoryContext::CUDAPinnedCPU, true> |
| | Holds an object of type T in CUDA GPU memory.
|
|
| void * | CaloRecGPU::CUDA_Helpers::allocate (const size_t num) |
| | Allocates and returns the address of num bytes from GPU memory.
|
| void | CaloRecGPU::CUDA_Helpers::deallocate (void *address) |
| | Deallocates address in GPU memory.
|
| void * | CaloRecGPU::CUDA_Helpers::allocate_pinned (const size_t num) |
| | Allocates and returns the address of num bytes from CPU pinned memory.
|
| void | CaloRecGPU::CUDA_Helpers::deallocate_pinned (void *address) |
| | Deallocates address in CPU pinned memory.
|
| void | CaloRecGPU::CUDA_Helpers::GPU_to_CPU (void *dest, const void *const source, const size_t num) |
| | Copies num bytse from source in GPU memory to dest in CPU memory.
|
| void | CaloRecGPU::CUDA_Helpers::CPU_to_GPU (void *dest, const void *const source, const size_t num) |
| | Copies num bytes from source in CPU memory to dest in GPU memory.
|
| void | CaloRecGPU::CUDA_Helpers::GPU_to_GPU (void *dest, const void *const source, const size_t num) |
| | Copies num bytes from source to dest, both in GPU memory.
|
| void | CaloRecGPU::CUDA_Helpers::GPU_to_CPU_async (void *dest, const void *const source, const size_t num, CUDAStreamPtrHolder stream={}) |
| | Copies num bytes from source in GPU memory to dest in CPU memory, asynchronously.
|
| void | CaloRecGPU::CUDA_Helpers::CPU_to_GPU_async (void *dest, const void *const source, const size_t num, CUDAStreamPtrHolder stream={}) |
| | Copies num bytes from source in CPU memory to dest in GPU memory, asynchronously.
|
| void | CaloRecGPU::CUDA_Helpers::GPU_to_GPU_async (void *dest, const void *const source, const size_t num, CUDAStreamPtrHolder stream={}) |
| | Copies num bytes from source to dest, both in GPU memory, asynchronously.
|
| void | CaloRecGPU::CUDA_Helpers::GPU_synchronize (CUDAStreamPtrHolder stream={}) |
| | Synchronizes the stream.
|
| void | CaloRecGPU::CUDA_Helpers::optimize_block_and_grid_size (void *func, int &block_size, int &grid_size, const int dynamic_memory=0, const int block_size_limit=0) |
| | Optimizes block and grid size according to cudaOccupancyMaxPotentialBlockSize.
|
| void | CaloRecGPU::CUDA_Helpers::optimize_block_and_grid_size_for_cooperative_launch (void *func, int &block_size, int &grid_size, const int dynamic_memory=0, const int block_size_limit=0) |
| | Optimizes block and grid size for a cooperative launch.
|
| bool | CaloRecGPU::CUDA_Helpers::supports_cooperative_launches () |
| bool | CaloRecGPU::CUDA_Helpers::supports_dynamic_parallelism () |
| std::string | CaloRecGPU::CUDA_Helpers::GPU_name () |
| template<class T1, class T2> |
| constexpr auto | CaloRecGPU::Helpers::int_ceil_div (const T1 num, const T2 denom) |
| | Returns the ceiling of num/denom, with proper rounding.
|
| template<class T1, class T2> |
| constexpr auto | CaloRecGPU::Helpers::int_floor_div (const T1 num, const T2 denom) |
| | Returns the floor of num/denom, with proper rounding.
|
| template<class Base = float, class Exp = int> |
| constexpr Base | CaloRecGPU::Helpers::compile_time_pow2 (const Exp exp) |
| | Returns 2 to the power of exp.
|
| template<class T> |
| constexpr unsigned int | CaloRecGPU::Helpers::int_ceil_log_2 (T num) |
| | Returns the ceiling of the base-2 logarithm of a number (i.
|
| template<class T> |
| constexpr unsigned char | CaloRecGPU::Helpers::Pearson_hash (const T number) |
| | Calculates a Pearson hash from @ number.
|
| template<class T> |
| constexpr unsigned short | CaloRecGPU::Helpers::Pearson_hash_16_bit (const T number) |
| | Calculates a 16-bit Pearson hash from @ number.
|
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::erf_inv_wrapper (const float x) |
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::regularize_angle (const float b, const float a=0.f) |
| static CUDA_HOS_DEV double | CaloRecGPU::Helpers::regularize_angle (const double b, const double a=0.) |
| template<class T> |
| static CUDA_HOS_DEV T | CaloRecGPU::Helpers::angular_difference (const T x, const T y) |
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::eta_from_coordinates (const float x, const float y, const float z) |
| static CUDA_HOS_DEV double | CaloRecGPU::Helpers::eta_from_coordinates (const double x, const double y, const double z) |
| static CUDA_HOS_DEV void | CaloRecGPU::Helpers::partial_kahan_babushka_neumaier_sum (const float &to_add, float &sum, float &corr) |
| | Implements one step of a Kahan-Babushka-Neumaier sum by adding to_add to sum with the correction term corr.
|
| template<class ... Floats, class disabler = std::enable_if_t < (std::is_same_v<std::decay_t<Floats>, float> && ...) >> |
| CUDA_HOS_DEV float | CaloRecGPU::Helpers::sum_kahan_babushka_neumaier (const Floats &... fs) |
| | Adds a list of floats using the Kahan-Babushka-Neumaier algorithm for greater precision (at the cost of additional operations).
|
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::product_sum_cornea_harrison_tang (const float a, const float b, const float c, const float d) |
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::corrected_dot_product (const float a_1, const float a_2, const float a_3, const float b_1, const float b_2, const float b_3) |
| CUDA_HOS_DEV float | CaloRecGPU::Helpers::corrected_dot_product (const float(&a)[3], const float(&b)[3]) |
| static CUDA_HOS_DEV void | CaloRecGPU::Helpers::corrected_cross_product (float(&res)[3], const float a1, const float a2, const float a3, const float b1, const float b2, const float b3) |
| static CUDA_HOS_DEV void | CaloRecGPU::Helpers::corrected_cross_product (float(&res)[3], const float(&x)[3], const float(&y)[3]) |
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::corrected_magn_cross_product (const float a1, const float a2, const float a3, const float b1, const float b2, const float b3) |
| static CUDA_HOS_DEV float | CaloRecGPU::Helpers::corrected_magn_cross_product (const float(&x)[3], const float(&y)[3]) |