YAKL
YAKL_parallel_for_c_unused_doc_only.h
Go to the documentation of this file.
1 
2 #pragma once
3 // IMPORTANT: THIS FILE IS FOR DOCUMENTATION ONLY AND IS NOT USED!
4 
5 namespace yakl {
6  namespace c {
7 
8  // The functions are declared below so that I can document them in doxygen inside the appropriate namespace.
33  template <class F, int N, bool simple, int VecLen=YAKL_DEFAULT_VECTOR_LEN , bool B4B = false>
34  inline void parallel_for( char const * str , Bounds<N,simple> const &bounds , F const &f ,
35  LaunchConfig<VecLen,B4B> config = LaunchConfig<>() );
36 
42  template <class F, int N, bool simple, int VecLen=YAKL_DEFAULT_VECTOR_LEN , bool B4B = false>
43  inline void parallel_for( Bounds<N,simple> const &bounds , F const &f ,
44  LaunchConfig<VecLen,B4B> config = LaunchConfig<>() );
45 
95  template <class F, int N, bool simple, int VecLen=YAKL_DEFAULT_VECTOR_LEN, bool B4B = false>
96  inline void parallel_outer( char const * str , Bounds<N,simple> const &bounds , F const &f ,
97  LaunchConfig<VecLen,B4B> config = LaunchConfig<>() );
98 
104  template <class F, int N, bool simple, int VecLen=YAKL_DEFAULT_VECTOR_LEN, bool B4B = false>
105  inline void parallel_outer( Bounds<N,simple> const &bounds , F const &f ,
106  LaunchConfig<VecLen,B4B> config = LaunchConfig<>() );
107 
131  template <class F, int N, bool simple>
132  YAKL_INLINE void parallel_inner( Bounds<N,simple> const &bounds , F const &f , InnerHandler handler );
133 
144  template <class F>
145  YAKL_INLINE void single_inner( F const &f , InnerHandler handler );
146 
147  }
148 }
149 
yakl::InnerHandler
struct yakl::InnerHandlerEmpty InnerHandler
This class is necessary for coordination of two-level parallelism.
yakl::c::parallel_for
void parallel_for(char const *str, Bounds< N, simple > const &bounds, F const &f, LaunchConfig< VecLen, B4B > config=LaunchConfig<>())
[ASYNCHRONOUS] Launch the passed functor in parallel.
YAKL_INLINE
#define YAKL_INLINE
Used to decorate functions called from kernels (parallel_for and parallel_outer) or from CPU function...
Definition: YAKL_defines.h:140
yakl::c::single_inner
YAKL_INLINE void single_inner(F const &f, InnerHandler handler)
Launch the passed functor to only use one of the inner threads (still parallel over outer threads)
yakl::c::parallel_outer
void parallel_outer(char const *str, Bounds< N, simple > const &bounds, F const &f, LaunchConfig< VecLen, B4B > config=LaunchConfig<>())
[ASYNCHRONOUS] Launch the passed functor in parallel in the coarsest-level parallelism on the device.
yakl::c::parallel_inner
YAKL_INLINE void parallel_inner(Bounds< N, simple > const &bounds, F const &f, InnerHandler handler)
Launch the passed functor in parallel in the finenst-level parallelism on the device.
yakl