|
AndroMeta
2.0.0
|
Compile and execute an MPL kernel on the GPU. More...
#include <MPLKernel.h>
Public Member Functions | |
| MPLKernel () | |
| ~MPLKernel () | |
| template<typename T > | |
| void | compile (MVector< T > &ov, mnode n) |
| template<typename T > | |
| void | compile (std::vector< T > &ov, mnode n) |
| void | compile (MPLObject **ov, size_t count, mnode n) |
| void | start () |
| void | await () |
| void | run () |
Static Public Member Functions | |
| static void | setWorkSize (size_t workSize) |
Compile and execute an MPL kernel on the GPU.
Constructor.
Destructor.
| void Meta::MPLKernel::await | ( | ) |
Await completion of a kernel that was previously started by calling start().
| void Meta::MPLKernel::compile | ( | MVector< T > & | ov, |
| mnode | n | ||
| ) | [inline] |
Compile the specified objects and code in n for execution on the GPU. This is a "same program multiple data" SPMD paradigm. The objects are assumed to be identical or isomorphic in the sense that they contain the fields in common which are referenced by the code in n using the same data layout within the MPLObject subclass.
| void Meta::MPLKernel::compile | ( | std::vector< T > & | ov, |
| mnode | n | ||
| ) | [inline] |
See the previous description of compile().
| void Meta::MPLKernel::compile | ( | MPLObject ** | ov, |
| size_t | count, | ||
| mnode | n | ||
| ) |
See the previous description of compile().
| void Meta::MPLKernel::run | ( | ) |
Begin executing the kernel and await completion.
| static void Meta::MPLKernel::setWorkSize | ( | size_t | workSize | ) | [static] |
| workSize | The preferred work group size. This should correspond to the number of cores on the GPU and directly relates to the performance of running the kernel. For best perfomance, the size of the compiled object vector should be an even multiple of work size. The default value is 512. |
| void Meta::MPLKernel::start | ( | ) |
Begin executing the kernel but do not block for completion.
1.7.6.1