|
| template<reduce_op Op, uint NDim, typename Lambda, typename T> |
| static void | parallel_reduce (const uint(&limits)[NDim], Lambda loop_body, T &sum) |
| template<reduce_op Op, uint NDim, uint NReductions, typename Lambda, typename T> |
| static void | parallel_reduce (const uint(&limits)[NDim], Lambda loop_body, T(&sum)[NReductions]) |
| template<reduce_op Op, uint NDim, typename Lambda, typename T> |
| static void | parallel_reduce (const uint(&limits)[NDim], Lambda loop_body, std::vector< T > &sum) |
| __host__ static __forceinline__ void | device_mempool_check (uint64_t threshold_new) |
| __host__ static __forceinline__ void * | allocate (size_t bytes) |
| __host__ static __forceinline__ void * | allocate (size_t bytes, cudaStream_t stream) |
| template<typename T> |
| __host__ static __forceinline__ void | free (T *ptr) |
| template<typename T> |
| __host__ static __forceinline__ void | free (T *ptr, cudaStream_t stream) |
| template<typename T> |
| static __forceinline__ void | memcpy_h2d (T *dst, T *src, size_t bytes) |
| template<typename T> |
| static __forceinline__ void | memcpy_h2d (T *dst, T *src, size_t bytes, cudaStream_t stream) |
| template<typename T> |
| static __forceinline__ void | memcpy_d2h (T *dst, T *src, size_t bytes) |
| template<typename T> |
| static __forceinline__ void | memcpy_d2h (T *dst, T *src, size_t bytes, cudaStream_t stream) |
| template<typename T> |
| static __forceinline__ void | host_register (T *ptr, size_t bytes) |
| template<typename T> |
| static __forceinline__ void | host_unregister (T *ptr) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[1], T *__restrict__ thread_data, Lambda loop_body) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[2], T *__restrict__ thread_data, Lambda loop_body) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[3], T *__restrict__ thread_data, Lambda loop_body) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[4], T *__restrict__ thread_data, Lambda loop_body) |
| template<uint NDim, typename Lambda, typename T> |
| __device__ static __forceinline__ void | loop_eval (const uint idx_glob, const uint *__restrict__ lims, T *__restrict__ thread_data, Lambda loop_body) |
| template<uint Blocksize, reduce_op Op, uint NDim, uint NReduStatic, typename Lambda, typename T> |
| static __global__ void | __launch_bounds__ (ARCH_BLOCKSIZE_R) reduction_kernel(Lambda loop_body |
| | if (Op==reduce_op::null) |
| | for (uint i=0;i< n_reductions;i++) |
| | if (idx_glob< n_total) |
| template<reduce_op Op, uint NReduStatic, uint NDim, typename Lambda, typename T> |
| static __forceinline__ void | parallel_reduce_driver (const uint(&limits)[NDim], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| __device__ static __forceinline__ void | atomicMax (double *address, double val2) |
| __device__ static __forceinline__ void | atomicMin (double *address, double val2) |
| __device__ static __forceinline__ void | atomicMax (float *address, float val2) |
| __device__ static __forceinline__ void | atomicMin (float *address, float val2) |
| __host__ static __forceinline__ void | device_mempool_check (uint64_t threshold_new) |
| __host__ static __forceinline__ void * | allocate (size_t bytes) |
| __host__ static __forceinline__ void * | allocate (size_t bytes, hipStream_t stream) |
| template<typename T> |
| __host__ static __forceinline__ void | free (T *ptr) |
| template<typename T> |
| __host__ static __forceinline__ void | free (T *ptr, hipStream_t stream) |
| template<typename T> |
| static __forceinline__ void | memcpy_h2d (T *dst, T *src, size_t bytes) |
| template<typename T> |
| static __forceinline__ void | memcpy_h2d (T *dst, T *src, size_t bytes, hipStream_t stream) |
| template<typename T> |
| static __forceinline__ void | memcpy_d2h (T *dst, T *src, size_t bytes) |
| template<typename T> |
| static __forceinline__ void | memcpy_d2h (T *dst, T *src, size_t bytes, hipStream_t stream) |
| template<typename T> |
| static __forceinline__ void | host_register (T *ptr, size_t bytes) |
| template<typename T> |
| static __forceinline__ void | host_unregister (T *ptr) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[1], T *__restrict__ thread_data, Lambda loop_body) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[2], T *__restrict__ thread_data, Lambda loop_body) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[3], T *__restrict__ thread_data, Lambda loop_body) |
| template<typename Lambda, typename T> |
| __device__ static __forceinline__ void | lambda_eval (const uint(&idx)[4], T *__restrict__ thread_data, Lambda loop_body) |
| template<uint NDim, typename Lambda, typename T> |
| __device__ static __forceinline__ void | loop_eval (const uint idx_glob, const uint *__restrict__ lims, T *__restrict__ thread_data, Lambda loop_body) |
| template<uint Blocksize, reduce_op Op, uint NDim, uint NReduStatic, typename Lambda, typename T> |
| static __global__ void | __launch_bounds__ (ARCH_BLOCKSIZE_R) reduction_kernel(Lambda loop_body |
| template<reduce_op Op, uint NReduStatic, uint NDim, typename Lambda, typename T> |
| static __forceinline__ void | parallel_reduce_driver (const uint(&limits)[NDim], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| static void * | allocate (size_t bytes) |
| static void | free (void *ptr) |
| template<typename T> |
| static void | memcpy_h2d (T *dst, T *src, size_t bytes) |
| template<typename T> |
| static void | memcpy_d2h (T *dst, T *src, size_t bytes) |
| template<typename T> |
| static void | host_register (T *ptr, size_t bytes) |
| template<typename T> |
| static void | host_unregister (T *ptr) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T> |
| static void | parallel_reduce_driver (const uint(&limits)[1], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T, typename = typename std::enable_if<std::is_void<typename std::invoke_result<Lambda, uint, uint, T*>::type>::value>::type> |
| static void | parallel_reduce_driver (const uint(&limits)[2], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T, typename = typename std::enable_if<!std::is_void<typename std::invoke_result<Lambda, uint, uint, T*>::type>::value>::type, typename = void> |
| static void | parallel_reduce_driver (const uint(&limits)[2], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T, typename = typename std::enable_if<std::is_void<typename std::invoke_result<Lambda, uint, uint, uint, T*>::type>::value>::type> |
| static void | parallel_reduce_driver (const uint(&limits)[3], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T, typename = typename std::enable_if<!std::is_void<typename std::invoke_result<Lambda, uint, uint, uint, T*>::type>::value>::type, typename = void> |
| static void | parallel_reduce_driver (const uint(&limits)[3], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T, typename = typename std::enable_if<std::is_void<typename std::invoke_result<Lambda, uint, uint, uint, uint, T*>::type>::value>::type> |
| static void | parallel_reduce_driver (const uint(&limits)[4], Lambda loop_body, T *sum, const uint n_redu_dynamic) |
| template<reduce_op Op, uint NReductions, uint NDim, typename Lambda, typename T, typename = typename std::enable_if<!std::is_void<typename std::invoke_result<Lambda, uint, uint, uint, uint, T*>::type>::value>::type, typename = void> |
| static void | parallel_reduce_driver (const uint(&limits)[4], Lambda loop_body, T *sum, const uint n_redu_dynamic) |