DotMP
Package Functions | Static Package Attributes | Private Member Functions | Static Private Attributes | List of all members
DotMP.GPU.AcceleratorHandler Class Reference

The handler class managing GPU acceleration. More...

Package Functions

 AcceleratorHandler ()
 Default constructor. If this is the first time it's called, it initializes all relevant singleton data. More...
 
Index Get1DIdx ((int, int) range, string src)
 Precomputes and caches the indices for a 1D for loop. More...
 
ValueTuple< Index, IndexGet2DIdx ((int, int) range1,(int, int) range2, string src)
 Precomputes and caches the indices for a 2D for loop. More...
 
ValueTuple< Index, Index, IndexGet3DIdx ((int, int) range1,(int, int) range2,(int, int) range3, string src)
 Precomputes and caches the indices for a 3D for loop. More...
 
void DispatchKernel< T > ((int, int) range1, Buffer< T > buf1, Action< Index, GPUArray< T > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Action< Index, GPUArray< T >, GPUArray< U > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Buffer< D > buf11, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Buffer< D > buf11, Buffer< E > buf12, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E, F > ((int, int) range1, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Buffer< D > buf11, Buffer< E > buf12, Buffer< F > buf13, Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E >, GPUArray< F > > action, string src)
 Dispatches a linear kernel with the given number of parameters. More...
 
void DispatchKernel< T > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Action< Index, Index, GPUArray< T > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Action< Index, Index, GPUArray< T >, GPUArray< U > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Buffer< D > buf11, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > ((int, int) range1,(int, int) range2, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Buffer< D > buf11, Buffer< E > buf12, Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > > action, string src)
 Dispatches a 2D kernel with the given number of parameters. More...
 
void DispatchKernel< T > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Action< Index, Index, Index, GPUArray< T > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Action< Index, Index, Index, GPUArray< T >, GPUArray< U > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 
void DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D > ((int, int) range1,(int, int) range2,(int, int) range3, Buffer< T > buf1, Buffer< U > buf2, Buffer< V > buf3, Buffer< W > buf4, Buffer< X > buf5, Buffer< Y > buf6, Buffer< Z > buf7, Buffer< A > buf8, Buffer< B > buf9, Buffer< C > buf10, Buffer< D > buf11, Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > action, string src)
 Dispatches a 3D kernel with the given number of parameters. More...
 

Static Package Attributes

static Accelerator accelerator
 The accelerator object. More...
 

Private Member Functions

void Synchronize ()
 Synchronize pending operations. More...
 
Action< KernelConfig, Index, GPUArray< T > > GetKernel< T > (Action< Index, GPUArray< T > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U > > GetKernel< T, U > (Action< Index, GPUArray< T >, GPUArray< U > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > GetKernel< T, U, V > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > GetKernel< T, U, V, W > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > GetKernel< T, U, V, W, X > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > GetKernel< T, U, V, W, X, Y > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > GetKernel< T, U, V, W, X, Y, Z > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > GetKernel< T, U, V, W, X, Y, Z, A > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > GetKernel< T, U, V, W, X, Y, Z, A, B > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > GetKernel< T, U, V, W, X, Y, Z, A, B, C > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > GetKernel< T, U, V, W, X, Y, Z, A, B, C, D > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > > GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E >, GPUArray< F > > GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E, F > (Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E >, GPUArray< F > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T > > GetKernel< T > (Action< Index, Index, GPUArray< T > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U > > GetKernel< T, U > (Action< Index, Index, GPUArray< T >, GPUArray< U > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > GetKernel< T, U, V > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > GetKernel< T, U, V, W > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > GetKernel< T, U, V, W, X > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > GetKernel< T, U, V, W, X, Y > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > GetKernel< T, U, V, W, X, Y, Z > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > GetKernel< T, U, V, W, X, Y, Z, A > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > GetKernel< T, U, V, W, X, Y, Z, A, B > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > GetKernel< T, U, V, W, X, Y, Z, A, B, C > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > GetKernel< T, U, V, W, X, Y, Z, A, B, C, D > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > > GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > (Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T > > GetKernel< T > (Action< Index, Index, Index, GPUArray< T > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U > > GetKernel< T, U > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > GetKernel< T, U, V > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > GetKernel< T, U, V, W > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > GetKernel< T, U, V, W, X > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > GetKernel< T, U, V, W, X, Y > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > GetKernel< T, U, V, W, X, Y, Z > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > GetKernel< T, U, V, W, X, Y, Z, A > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > GetKernel< T, U, V, W, X, Y, Z, A, B > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > GetKernel< T, U, V, W, X, Y, Z, A, B, C > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > > action, string src)
 Get the kernel associated with this lambda. More...
 
Action< KernelConfig, Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > GetKernel< T, U, V, W, X, Y, Z, A, B, C, D > (Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > > action, string src)
 Get the kernel associated with this lambda. More...
 

Static Private Attributes

static bool initialized = false
 Determines if a GPU context has been initialized yet. More...
 
static Context context
 The GPU context. More...
 
static int block_size
 Block size to use for kernels. More...
 
static Dictionary< string, Delegate > kernels = new Dictionary<string, Delegate>()
 Kernel cache. More...
 
static Dictionary< string, ValueTuple< int, int, Buffer< int > > > indices1d = new Dictionary<string, ValueTuple<int, int, Buffer<int>>>()
 Index cache for 1D kernels. More...
 
static Dictionary< string, ValueTuple< int, int, int, int, Buffer< int >, Buffer< int > > > indices2d
 Index cache for 2D kernels. More...
 
static Dictionary< string, ValueTuple< ValueTuple< int, int >, ValueTuple< int, int >, ValueTuple< int, int >, Buffer< int >, Buffer< int >, Buffer< int > > > indices3d
 Index cache for 3D kernels. More...
 

Detailed Description

The handler class managing GPU acceleration.

Constructor & Destructor Documentation

◆ AcceleratorHandler()

DotMP.GPU.AcceleratorHandler.AcceleratorHandler ( )
inlinepackage

Default constructor. If this is the first time it's called, it initializes all relevant singleton data.

Member Function Documentation

◆ DispatchKernel< T >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T > ( (int, int)  range1,
Buffer< T >  buf1,
Action< Index, GPUArray< T > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 

◆ DispatchKernel< T >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Action< Index, Index, GPUArray< T > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 

◆ DispatchKernel< T >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Action< Index, Index, Index, GPUArray< T > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 

◆ DispatchKernel< T, U >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Action< Index, GPUArray< T >, GPUArray< U > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 

◆ DispatchKernel< T, U >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Action< Index, Index, GPUArray< T >, GPUArray< U > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 

◆ DispatchKernel< T, U >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 

◆ DispatchKernel< T, U, V >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 

◆ DispatchKernel< T, U, V >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 

◆ DispatchKernel< T, U, V >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 

◆ DispatchKernel< T, U, V, W >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 

◆ DispatchKernel< T, U, V, W >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 

◆ DispatchKernel< T, U, V, W >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 

◆ DispatchKernel< T, U, V, W, X >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 

◆ DispatchKernel< T, U, V, W, X >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 

◆ DispatchKernel< T, U, V, W, X >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D >() [1/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Buffer< D >  buf11,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
buf11Buffer #11 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D >() [2/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Buffer< D >  buf11,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
buf11Buffer #11 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D >() [3/3]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D > ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Buffer< D >  buf11,
Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > >  action,
string  src 
)
inlinepackage

Dispatches a 3D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
buf11Buffer #11 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E >() [1/2]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Buffer< D >  buf11,
Buffer< E >  buf12,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
buf11Buffer #11 to run the kernel with.
buf12Buffer #12 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 
E :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E >() [2/2]

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > ( (int, int)  range1,
(int, int)  range2,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Buffer< D >  buf11,
Buffer< E >  buf12,
Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > >  action,
string  src 
)
inlinepackage

Dispatches a 2D kernel with the given number of parameters.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
buf11Buffer #11 to run the kernel with.
buf12Buffer #12 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 
E :unmanaged 

◆ DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E, F >()

void DotMP.GPU.AcceleratorHandler.DispatchKernel< T, U, V, W, X, Y, Z, A, B, C, D, E, F > ( (int, int)  range1,
Buffer< T >  buf1,
Buffer< U >  buf2,
Buffer< V >  buf3,
Buffer< W >  buf4,
Buffer< X >  buf5,
Buffer< Y >  buf6,
Buffer< Z >  buf7,
Buffer< A >  buf8,
Buffer< B >  buf9,
Buffer< C >  buf10,
Buffer< D >  buf11,
Buffer< E >  buf12,
Buffer< F >  buf13,
Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E >, GPUArray< F > >  action,
string  src 
)
inlinepackage

Dispatches a linear kernel with the given number of parameters.

Parameters
range1The range of the for loop.
buf1Buffer #1 to run the kernel with.
buf2Buffer #2 to run the kernel with.
buf3Buffer #3 to run the kernel with.
buf4Buffer #4 to run the kernel with.
buf5Buffer #5 to run the kernel with.
buf6Buffer #6 to run the kernel with.
buf7Buffer #7 to run the kernel with.
buf8Buffer #8 to run the kernel with.
buf9Buffer #9 to run the kernel with.
buf10Buffer #10 to run the kernel with.
buf11Buffer #11 to run the kernel with.
buf12Buffer #12 to run the kernel with.
buf13Buffer #13 to run the kernel with.
actionThe kernel to run on the GPU.
srcThe originating caller location.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 
E :unmanaged 
F :unmanaged 

◆ Get1DIdx()

Index DotMP.GPU.AcceleratorHandler.Get1DIdx ( (int, int)  range,
string  src 
)
inlinepackage

Precomputes and caches the indices for a 1D for loop.

Parameters
rangeThe range of the for loop.
srcThe calling location in the source code.
Returns
The calculated index.

◆ Get2DIdx()

ValueTuple<Index, Index> DotMP.GPU.AcceleratorHandler.Get2DIdx ( (int, int)  range1,
(int, int)  range2,
string  src 
)
inlinepackage

Precomputes and caches the indices for a 2D for loop.

Parameters
range1The outer range of the for loop.
range2The inner range of the for loop.
srcThe calling location in the source code.
Returns
A tuple of calculated indices.

◆ Get3DIdx()

ValueTuple<Index, Index, Index> DotMP.GPU.AcceleratorHandler.Get3DIdx ( (int, int)  range1,
(int, int)  range2,
(int, int)  range3,
string  src 
)
inlinepackage

Precomputes and caches the indices for a 3D for loop.

Parameters
range1The outer range of the for loop.
range2The middle range of the for loop.
range3The inner range of the for loop.
srcThe calling location in the source code.
Returns
A tuple of calculated indices.

◆ GetKernel< T >() [1/3]

Action<KernelConfig, Index, GPUArray<T> > DotMP.GPU.AcceleratorHandler.GetKernel< T > ( Action< Index, GPUArray< T > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 

◆ GetKernel< T >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T> > DotMP.GPU.AcceleratorHandler.GetKernel< T > ( Action< Index, Index, GPUArray< T > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 

◆ GetKernel< T >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T> > DotMP.GPU.AcceleratorHandler.GetKernel< T > ( Action< Index, Index, Index, GPUArray< T > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 

◆ GetKernel< T, U >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U > ( Action< Index, GPUArray< T >, GPUArray< U > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 

◆ GetKernel< T, U >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U > ( Action< Index, Index, GPUArray< T >, GPUArray< U > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 

◆ GetKernel< T, U >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 

◆ GetKernel< T, U, V >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 

◆ GetKernel< T, U, V >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 

◆ GetKernel< T, U, V >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 

◆ GetKernel< T, U, V, W >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 

◆ GetKernel< T, U, V, W >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 

◆ GetKernel< T, U, V, W >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 

◆ GetKernel< T, U, V, W, X >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 

◆ GetKernel< T, U, V, W, X >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 

◆ GetKernel< T, U, V, W, X >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 

◆ GetKernel< T, U, V, W, X, Y >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 

◆ GetKernel< T, U, V, W, X, Y >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 

◆ GetKernel< T, U, V, W, X, Y >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C, D >() [1/3]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C>, GPUArray<D> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C, D > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C, D >() [2/3]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C>, GPUArray<D> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C, D > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C, D >() [3/3]

Action<KernelConfig, Index, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C>, GPUArray<D> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C, D > ( Action< Index, Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E >() [1/2]

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C>, GPUArray<D>, GPUArray<E> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 
E :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E >() [2/2]

Action<KernelConfig, Index, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C>, GPUArray<D>, GPUArray<E> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E > ( Action< Index, Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 
E :unmanaged 

◆ GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E, F >()

Action<KernelConfig, Index, GPUArray<T>, GPUArray<U>, GPUArray<V>, GPUArray<W>, GPUArray<X>, GPUArray<Y>, GPUArray<Z>, GPUArray<A>, GPUArray<B>, GPUArray<C>, GPUArray<D>, GPUArray<E>, GPUArray<F> > DotMP.GPU.AcceleratorHandler.GetKernel< T, U, V, W, X, Y, Z, A, B, C, D, E, F > ( Action< Index, GPUArray< T >, GPUArray< U >, GPUArray< V >, GPUArray< W >, GPUArray< X >, GPUArray< Y >, GPUArray< Z >, GPUArray< A >, GPUArray< B >, GPUArray< C >, GPUArray< D >, GPUArray< E >, GPUArray< F > >  action,
string  src 
)
inlineprivate

Get the kernel associated with this lambda.

Parameters
actionThe action provided on the CPU.
srcThe calling location.
Returns
The GPU kernel.
Type Constraints
T :unmanaged 
U :unmanaged 
V :unmanaged 
W :unmanaged 
X :unmanaged 
Y :unmanaged 
Z :unmanaged 
A :unmanaged 
B :unmanaged 
C :unmanaged 
D :unmanaged 
E :unmanaged 
F :unmanaged 

◆ Synchronize()

void DotMP.GPU.AcceleratorHandler.Synchronize ( )
private

Synchronize pending operations.

Member Data Documentation

◆ accelerator

Accelerator DotMP.GPU.AcceleratorHandler.accelerator
staticpackage

The accelerator object.

◆ block_size

int DotMP.GPU.AcceleratorHandler.block_size
staticprivate

Block size to use for kernels.

◆ context

Context DotMP.GPU.AcceleratorHandler.context
staticprivate

The GPU context.

◆ indices1d

Dictionary<string, ValueTuple<int, int, Buffer<int> > > DotMP.GPU.AcceleratorHandler.indices1d = new Dictionary<string, ValueTuple<int, int, Buffer<int>>>()
staticprivate

Index cache for 1D kernels.

◆ indices2d

Dictionary<string, ValueTuple<int, int, int, int, Buffer<int>, Buffer<int> > > DotMP.GPU.AcceleratorHandler.indices2d
staticprivate
Initial value:
=
new Dictionary<string, ValueTuple<int, int, int, int, Buffer<int>, Buffer<int>>>()

Index cache for 2D kernels.

◆ indices3d

Dictionary<string, ValueTuple<ValueTuple<int, int>, ValueTuple<int, int>, ValueTuple<int, int>, Buffer<int>, Buffer<int>, Buffer<int> > > DotMP.GPU.AcceleratorHandler.indices3d
staticprivate
Initial value:
=
new Dictionary<string, ValueTuple<ValueTuple<int, int>, ValueTuple<int, int>, ValueTuple<int, int>, Buffer<int>, Buffer<int>, Buffer<int>>>()

Index cache for 3D kernels.

◆ initialized

bool DotMP.GPU.AcceleratorHandler.initialized = false
staticprivate

Determines if a GPU context has been initialized yet.

◆ kernels

Dictionary<string, Delegate> DotMP.GPU.AcceleratorHandler.kernels = new Dictionary<string, Delegate>()
staticprivate

Kernel cache.


The documentation for this class was generated from the following file: